C语言牛顿迭代法求2x^3-4x^2+3x-6=0在1.5附近的根
答案:2 悬赏:80 手机版
解决时间 2021-11-08 23:45
- 提问者网友:两耳就是菩提
- 2021-11-08 20:31
C语言牛顿迭代法求2x^3-4x^2+3x-6=0在1.5附近的根
最佳答案
- 五星知识达人网友:duile
- 2021-11-08 21:32
c = sqrt(x); 这句是错的,sqrt是求根,应该是c = pow(x, 2);
全部回答
- 1楼网友:街头电车
- 2021-11-08 22:44
#include
#include
float Newton(float a,float b,float c,float d)
{
float x=1,x0,f,f1;
do
{
x0=x;
f=((a*x0+b)*x0+c)*x0+d;
f1=(3*a*x0+2*b)*x0+c;
x=x0-f/f1;
}
while(fabs(x-x0)>=1e-5);
return x;
}
int main()
{
float a,b,c,d;
scanf("%f%f%f%f\n",&a,&b,&c,&d);
printf("%.2fx^3+%.2fx^2+%.2fx+%.2f=0\n",a,b,c,d);
printf("x=%.5f\n",Newton(a,b,c,d));
return 0;
}
我写了一个通用的,键盘输入系数从高次到低次,
你参考一下。
#include
float Newton(float a,float b,float c,float d)
{
float x=1,x0,f,f1;
do
{
x0=x;
f=((a*x0+b)*x0+c)*x0+d;
f1=(3*a*x0+2*b)*x0+c;
x=x0-f/f1;
}
while(fabs(x-x0)>=1e-5);
return x;
}
int main()
{
float a,b,c,d;
scanf("%f%f%f%f\n",&a,&b,&c,&d);
printf("%.2fx^3+%.2fx^2+%.2fx+%.2f=0\n",a,b,c,d);
printf("x=%.5f\n",Newton(a,b,c,d));
return 0;
}
我写了一个通用的,键盘输入系数从高次到低次,
你参考一下。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯