牛顿迭代法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#define eps le-6
⅛define eta le-8
float Newton(float(*f)(float),float(*fl)(float),float xθ) ( float xl,d;
int k=0;
do
xl=xθ-(*f)(xθ)∕(*fl)(xθ);
if(k++>N∣∣fabs((*fl)(xl))<eps)
(
printf(ll∖n Newton 迭代发散”);
break;
)
d=fabs(xl)<l?xl-xO:(xl-xO)/xl;
xθ=xl;
printf("x(%d)=%Λt",k,×O);
)
while(fabs(d)>eps&&fabs((*f)(xl))>eta);
return xl;
)
float f(float x)
(
return x*exp(x)-l;
)
float fl(float x)
(
return exp(x)+x*exp(x);
)
void main()
(
float xθ,yθ;
Printf("请输入迭代初值xθ∖n");
scanf("%f"ΛxO);
printf("x(O)=%Λn",xO);
#define eps le-6
⅛define eta le-8
yO=Newton(f,fl,xO);
Printf(',方程的根为%f∖n,,,yθ);
#define eps le-6
⅛define eta le-8
float Newton(float(*f)(float),float(*fl)(float),float xθ) ( float xl,d;
int k=0;
do
xl=xθ-(*f)(xθ)∕(*fl)(xθ);
if(k++>N∣∣fabs((*fl)(xl))<eps)
(
printf("∖n Newton 迭代发散”);
break;
)
d=fabs(xl)<l?xl-xO:(xl-xO)/xl;
xθ=xl;
printf("x(%d)=%Λt",k,xO);
)
while(fabs(d)>eps&&fabs((*f)(xl))>eta);
return xl;
)
float f(float x)
(
return lgx+x-2;
)
float fl(float x)
(
return (lnlθ)∕x+l;
)
void main()
(
float xθ,yθ;
Printf("请输入迭代初值xθ∖n");
scanf("%f"ΛxO);
printf("x(O)=%Λ∩,l,xO);
#define eps le-6
⅛define eta le-8
y0=Newton(f,fl,×0);
Printf("方程的根为%f∖n",yθ); )。

相关文档
最新文档