写一个函数,用牛顿迭代法求一元三次方程的近似解。方程形式为:ax3+bx2+cx+d=0。系数a、b、c、d由键盘输入。注意:只允许在/******start******/和/******end******/之间添加代码。牛顿迭代法(又称为牛顿切线法,牛顿下山法)算法如图:
设:f(x) = ax3+bx2+cx+d1. 对任意选择的x0,求出对应的方程值f(x0)和曲线上该点的切线的斜率(一阶导数)f'(x0)。 f(x)的一阶导数方程为: f'(x) = 3ax2+2bx+c2. 根据f(x0)和f'(x0),求x1:x1=X0-f(x0)/f'(x0)。3. 求f(x1), 当该值小于10-5时,x1为方程的近似解。否则继续求x2, x3, ...。本题计算中,取x0=1。图示中1 2 3 4是键盘输入。
题:
#include <stdio.h> #include <math.h>
/******start******/
/******end******/
int main(){ double a,b,c,d=0; double y;
printf("input a b c d:"); scanf("%lf%lf%lf%lf", &a, &b, &c, &d);
y = Resolve(a,b,c,d);
printf("output:\n%.4lf\n", y);
return 0;}
/******start******/
/******end******/
C语言编程:牛顿迭代法求方程的根
① 赋值x0=1.5,即迭代初值;② 用初值x0代入方程中计算此时的f(x0)及f’(x0),程序中用变量f描述方程的值,用fd描述方程求导之后的值;③ 计算增量d=f\/fd;④ 计算下一个x,x=x0-d;⑤ 把新产生的x替换x0,为下一次迭代做好准备;⑥ 若d绝对值大于1e-3,则重复②③④⑤步。源程...
C语言编程——内容:用牛顿迭代法求一元三次方程的根。要求:由主函数调...
x=root(a,b,c,d);printf("%.1fX^3+%.1fX^2+%.1fX+%.1f=0 its root near x=1.5 is :%.4f\\n",a,b,c,d,x);getch();}
C语言 用牛顿迭代法求方程的根,并且输出迭代的次数
printf("the time is d%\\n",i,);printf("附近的根是:%5.2f\\n",x1);
C语言用牛顿迭代法求方程的根,运行正常但是输出结果错误,求助
if((fabs(x)-fabs(y))<1e-5)\/\/应该是这句错了,逻辑上不对。\/*应该改为:*\/if (fabs(x - y) < 1e-5)
C语言编程 牛顿迭代法是什么 求解
牛顿迭代法是一种常用的计算方法,这个大学大三应该学过。具体为:设r是f(x) = 0的根,选取x0作为r初始近似值,过点(x0,f(x0))做曲线y = f(x)的切线L,L的方程为y = f(x0)+f'(x0)(x-x0),求出L与x轴交点的横坐标 x1 = x0-f(x0)\/f'(x0),称x1为r的一次近似值。...
牛顿迭代法的求方程的根(用C实现)
void main(){ float root(float a,float b,float c,float d);float a,b,c,d,x;printf("please input a,b,c,d:");scanf("%f%f%f",&a,&b,&c,&d); \/\/\/原来的输入格式不好,我换一下 x=root(a,b,c,d);printf("x=%10.7f\\n",x);} float root(float a,float b,float...
用牛顿迭代法编写c语言程序求方程x-e^-x=0的根
include <stdio.h> include <math.h> int main(void){ double x, x0, d;x0 = 0;do { x = x0 - (x0 - exp(-x0)) \/ (1 + exp(-x0));d = x - x0;x0 = x;} while (d >= 1e-10);printf("%.10f", x);return 0;} ...
跪求高人用C语言帮我编一个题目:迭代法求x^5-x^4+4x^2-1=0的根算法...
h"\/*牛顿迭代法求根*\/ void main(){ double x0,x;double f,g;x0=1; \/*给一个初始值*\/ do { x=x0;f=pow(x,5)-pow(x,4)+4*x*x-1;g=5*pow(x,4)-4*pow(x,3)+8*x;x0=x-f\/g;}while(fabs(x-x0)>1e-6);printf("%f\\n",x);} 程序运行结果:0.508132 ...
在C#中利用牛顿迭代法求解一元二次方程的根
注意:a、b、c三个变量由一条输入语句输入,中间用逗号分隔,无需考虑虚根情况。输入输出示例 include <stdio.h> include <math.h> int main(void){ float a,b,c,x,p,q,x1,x2;scanf("%f,%f,%f",&a,&b,&c);b*b-4*a*c>=0;p = (-b)\/(2*a);q = sqrt(b*b-4*a*c)\/(...
C语言编程,指针,编写函数,用牛顿迭代法求方程f(x)=2x3-4x2+3x-6=0在...
return 2*x*x*x-4*x*x+3*x-6;} double fp(double x){ return 6*x*x-8*x+3;} int main(){ double x=1.5,y,eps=1e-08;printf("input eps 1e-08\\n"); scanf("%lf",&eps);y = root(fx,fp,x,eps);printf("%lf\\n",y);return 0;} double root(double (*f)(...