- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Newton法、一般迭代法Steffensen法、弦截法C语言代码
一、#includemath.h
#includestdio.h
double f(double x)
{
return (3*x*x-exp(x));
}
double f1(double x)
{
return (6*x-exp(x));
}
void main()
{
double x1=1,x;
do
{
x=x1;
x1=x-f(x)/f1(x);
printf(x=%.9lf\n,x1);
}while(fabs(x1-x)0.000005);
}
说明:f 原函数,f1f的导函数x1为初始值,通过x=%.9lf“控制输入输出格式
、#include stdio.h
#include math.h
int main()
{
double x=1,x1;
while(1)
{
x1=pow(3*x+1,0.2);
printf(x=%.6lf\n,x1);
if(fabs(x1-x)0.000005 )
break;
x=x1;
}
return 0;
}
说明:x1初始值x1=pow(3*x+1,0.2);为迭代格式,0.000005误差通过x=%.6lf“控制输入输出格式
、#includestdio.h
#includemath.h
#define phi(x) pow(3*(x)+1,0.2);
void main()
{
double x,x0,del,y,z;
printf(x0=); scanf(%lf,x0);
printf(\ndel=:); scanf(%lf,del);
while(1)
{
y=phi(x0); z=phi(y);
x=x0-(y-x0)*(y-x0)/(z-2*y+x0);
printf(\n%.6lf,x);
if(fabs(x-x0)del) break;
x0=x;
}
}
说明:x0初始值,pow(3*(x)+1,0.2);φ(x)格式del为允许误差通过x=%.6lf“控制输入输出格式、#includemath.h
#includestdio.h
double f(double x)
{ //计算f(x)的值
return pow(2,x)+pow(3,x)-pow(4,x);
}
double point(double x1,double x2)
{
//计算与x轴交点的x值
printf(x=%.5f\n,(x1*f(x2)-x2*f(x1))/(f(x2)-f(x1)));
return (x1*f(x2)-x2*f(x1))/(f(x2)-f(x1));
}
int main()
{
//输入两个数x1,x2
double x1,x2,x;
do
{
printf(输入两个数x1,x2:);
scanf(%lf%lf,x1,x2);
}while (f(x1)*f(x2)= 0); // 当输入两个数大于0为真时,继续重新输入
//关键循环步骤:
do
{
x=point(x1,x2);//得到交点的值
if(f(x)*f(x1)0)
x1=x;//新的x1
else
x2=x;
}while (fabs(f(x)) 0.000005);
}
文档评论(0)