用C語言編寫6次方程的通解程序?
這可用牛頓迭代法求解。
#include<stdio.h>
#include<math.h>
double
f(double
x)
/*函數*/
{
double
fx;
fx=cos(x)-x;
return
fx;
}
double
Df(double
x)
/*函數的導數*/
{
double
fx;
fx=-sin(x)-1;
return
fx;
}
main()
{
double
epsilon1,epsilon2,alpha;
int
N,n;
double
root;
double
x0,x1,F,DF,tol,k;
printf("請輸入初值alpha:");
scanf("%lf",&alpha);
printf("請輸入精度epsilon1:");
scanf("%lf",&epsilon1);
printf("請輸入精度epsilon2:");
scanf("%lf",&epsilon2);
printf("請輸入最大迭代次數N:");
scanf("%d",&N);
x0=alpha;
for(n=1;n<=N;n++)
{
F=f(x0);
DF=Df(x0);
if(abs(F-x0)<epsilon1)
{
printf("%lf",&x0);
goto
end;
}
else
if(abs(DF)<epsilon2)
{
printf("失??!");
goto
end;
}
else
{
x1==x0-F/DF;
tol=abs(x1-x0);
if(tol<epsilon1)
{
printf("%lf",&x1);
goto
end;
}
}
x0=x1;
k=k+1;
}
end:
printf("結束!");
}
上一篇什剎海住哪個酒店好
下一篇jnpf開發平臺靠譜嗎