c语言 求方程x^3-2x-5=0在区间[1.5,2.5]的实根 麻烦写下程序和关键步骤的说明 谢谢
这个程序的一些步骤没看懂......floatx,x=2.0,f,f0;do{x=x0;f=x*x*x-2*x-5;f0=3*x*x-2;(导数这步有什么用)x0=x-f...
这个程序的一些步骤没看懂
......
float x,x=2.0,f,f0;
do
{x=x0;
f=x*x*x-2*x-5;
f0=3*x*x-2;(导数这步有什么用)
x0=x-f/f0;(这步没看懂)
}while(fabs(x-x0)>=1e-6);(这又是何意义)
printf(%.2f",x);
...... 展开
......
float x,x=2.0,f,f0;
do
{x=x0;
f=x*x*x-2*x-5;
f0=3*x*x-2;(导数这步有什么用)
x0=x-f/f0;(这步没看懂)
}while(fabs(x-x0)>=1e-6);(这又是何意义)
printf(%.2f",x);
...... 展开
2个回答
展开全部
牛顿迭代法是牛顿在17世纪提出的一种求解方程f(x)=0.多数方程不存在求根公式,从而求精确根非常困难,甚至不可能,从而寻找方程的近似根就显得特别重要。
设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的一次近似值,过点(x1,f(x1))做曲线y=f(x)的切线,并求该切线与x轴的横坐标 x2=x1-f(x1)/f'(x1)称x2为r的二次近似值,重复以上过程,得r的近似值序列{Xn},其中Xn+1=Xn-f(Xn)/f'(Xn),称为r的n+1次近似值。上式称为牛顿迭代公式。
用牛顿迭代法求解方程x^3-2x-5=0的实根的过程是:
1.你想在谁附近求解,这个范围或者这个数值大多是题目已经给定了(本例是[1.5,2.5])
2.令f(x)=x*x*x-2*x-5
3.x1=X
4.求f(x1)
5.对f(x)求导,得到f1(x),求f1(x1)
6.调整x,使x=x1-f(x1)/f1(x1)
7.符合条件x-x1>1e-6,转到第3步
8.不符合条件x-x1>1e-6,则x1就是我们要求的实根
设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的一次近似值,过点(x1,f(x1))做曲线y=f(x)的切线,并求该切线与x轴的横坐标 x2=x1-f(x1)/f'(x1)称x2为r的二次近似值,重复以上过程,得r的近似值序列{Xn},其中Xn+1=Xn-f(Xn)/f'(Xn),称为r的n+1次近似值。上式称为牛顿迭代公式。
用牛顿迭代法求解方程x^3-2x-5=0的实根的过程是:
1.你想在谁附近求解,这个范围或者这个数值大多是题目已经给定了(本例是[1.5,2.5])
2.令f(x)=x*x*x-2*x-5
3.x1=X
4.求f(x1)
5.对f(x)求导,得到f1(x),求f1(x1)
6.调整x,使x=x1-f(x1)/f1(x1)
7.符合条件x-x1>1e-6,转到第3步
8.不符合条件x-x1>1e-6,则x1就是我们要求的实根
参考资料: http://blog.csdn.net/sibling520/archive/2010/12/20/6086504.aspx
展开全部
我先写完再发
下面的是一元三次方程求实根的方法。
有点累。没细看。有点复杂。
供大家学习下
下面的是一元三次方程求实根的方法。
有点累。没细看。有点复杂。
供大家学习下
更多追问追答
追问
这样太复杂了 我要的只是c语言写程序的求根
追答
你以为C语言要怎么求根?就是先了解对方的过程,用编程的方式去实现而已。
你都不了解算法,怎么可能得到想要的结果。楼下的算法你也可以采用。
有算法才能知道怎样去实现。
希望对你有帮助。暂时比较忙,今天可能没时间去帮你完成C语言程序的编写。
参考资料: http://wenku.baidu.com/view/08847e5f804d2b160b4ec0a8.html
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询