- 1、本文档共13页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
工程常用算法作业第一次
《工程常用算法》综合实践作业一
作业名称:非线性方程求根 完成日期: 2016年3月 28 组号:52
班级
学号
姓名
主要工作说明
自评成绩2013071421
辛超俊
设计算法,编写程序
A2013071524
张宁
用Visio软件绘制流程图
作业题目:
已知方程,请分别用二分法、牛顿法和割线法求此方程的根。误差限取:。注意先确定出方程的有根区间
程序框图:
牛顿法:
二分法:
割线法:
牛顿法源程序:
#includestdio.h
#includemath.h
#includestring.h
double NextNumber(double a)//产生下一个数
{
return a-(a*a*a+2*a*a-exp(a))/(3*a*a+4*a);
}
double func(double x)//原函数
{
return x*x*x+2*x*x-exp(x);
}
void main()
{
double a=1;//A(k)
int i=1;
double fx=0;
double b=NextNumber(1);//A(k+1)
double ex=pow(10.0,-12);//精度
fx=func(b);
printf(第%2d次 X=%.12f f(x)=%.12f\n,i,a,fx);
while(fabs(a-b)exfx!=0)
{
i++;
a=b;
b=NextNumber(a);
fx=func(b);
printf(第%2d次 X=%.12f f(x)=%.12f\n,i,a,fx);
}
getchar();
}
牛顿法运行结果:
二分法源程序:
#includestdio.h
#includemath.h
#includestring.h
double func(double x)//原函数
{
return x*x*x+2*x*x-exp(x);
}
/* 输入参数:区间[a,b]、区间精度ex、函数精度ey */
void main(void)
{
double a=0;//前一个数
double b=5;//后一个数
double c=0;//中间的数
double fx=0;//函数结果
int i=1;
double ex=pow(10.0,-12);
c=(a+b)/2.0;
fx=func(c);
printf(第%2d次 X=%.12f f(x)=%.12f\n,i,c,fx);
while((b-a)exfx!=0)
{
i++;
c=(a+b)/2.0;
fx=func(c);
if(fx==0)
{
b=c;
printf(第%2d次 X=%.12f f(x)=%.12f\n,i,c,fx);
break;
}
else
{
if(fx0)
b=c;
else
a=c;
printf(第%2d次 X=%.12f f(x)=%.12f\n,i,c,fx);
}
}
getchar();
}}
二分法运行结果:
割线法源程序:
#includestdio.h
#includemath.h
#includestring.h
double func(double x)//原函数
{
return x*x*x+2*x*x-exp(x);
}
double NextNumber(double a,double b)//产生下一个数
{
double fx=b-func(b)*(b-a)/(func(b)-func(a));
return fx;
}
void main()
{
double a=0;//A(k-1)
double b=3.0;//A(k)
int i=1;
double c=0;// A(k+1)
double ex=pow(10.0,-12);//精度
double fx=0;
c=NextNumber(b,a);//
fx=func(c);
printf(第%d次 X=%.12f f(x)=%.12f\n,i,
您可能关注的文档
最近下载
- 2017-2025历年高考英语语法填空题汇总(含答案).pdf VIP
- 中国糖尿病防治指南(2024版)解读PPT课件.pptx VIP
- 1.3.3 植物体的结构层次(新教材课件)七年级生物上册(人教版2024).pptx VIP
- 欠条电子合同模版 .pdf VIP
- 新人教版初三化学全册导学案.doc VIP
- 衡水中学状元手写笔记高中版 物理.docx VIP
- 2025年基层医疗卫生机构信息化建设与医疗信息化市场前景分析报告.docx
- 切实提高领导干部战略思维、创新思维、辩证思维能力(余颖雄).ppt VIP
- 2025年全科医生考试试卷及答案.docx VIP
- 秦皇岛至沈阳高速公路至京秦高速段可研报告.docx
文档评论(0)