c语言牛顿迭代法解 y=x三次方减去4倍的x的平方减去10等于0在1.0和-5附近的解要求误差小于10的-3次方后天俺们就交上去了

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/06 04:10:42

c语言牛顿迭代法解 y=x三次方减去4倍的x的平方减去10等于0在1.0和-5附近的解要求误差小于10的-3次方后天俺们就交上去了
c语言牛顿迭代法解 y=x三次方减去4倍的x的平方减去10等于0在1.0和-5附近的解要求误差小于10的-3次方
后天俺们就交上去了

c语言牛顿迭代法解 y=x三次方减去4倍的x的平方减去10等于0在1.0和-5附近的解要求误差小于10的-3次方后天俺们就交上去了
// 下面是方法和例子,自己去搞定.
牛顿迭代法,是用于求方程或方程组近似根的一种常用的算法设计方法.设方程为f(x)=0,用某种数学方法导出等价的形式 x(n+1) = g(x(n)) = x(n)–f(x(n))/f‘(x(n)).然后按以下步骤执行:
(1) 选一个方程的近似根,赋给变量x1;
(2) 将x0的值保存于变量x1,然后计算g(x1),并将结果存于变量x0;
(3) 当x0与x1的差的绝对值还小于指定的精度要求时,重复步骤(2)的计算.
若方程有根,并且用上述方法计算出来的近似根序列收敛,则按上述方法求得的x0就
认为是方程的根.
例1:已知f(x) = cos(x) - x. x的初值为3.14159/4,用牛顿法求解方程f(x)=0的近似值,要求精确到10E-6.
算法分析:f(x)的Newton代法构造方程为:x(n+1) = xn - (cos(xn)-xn) / (-sin(xn)-1).
#include
double F1(double x); //要求解的函数
double F2(double x); //要求解的函数的一阶导数函数
double Newton(double x0, double e);//通用Newton迭代子程序
int main()
{
double x0 = 3.14159/4;
double e = 10E-6;

printf("x = %f\n", Newton(x0, e));
getchar();
return 0;
}
double F1(double x) //要求解的函数
{
return cos(x) - x;
}
double F2(double x) //要求解的函数的一阶导数函数
{
return -sin(x) - 1;
}
double Newton(double x0, double e)//通用Newton迭代子程序
{
double x1;
do
{
x1 = x0;
x0 = x1 - F1(x1) / F2(x1);
} while (fabs(x0 - x1) > e);

return x0; //若返回x0和x1的平均值则更佳
}
例2:用牛顿迭代法求方程x^2 - 5x + 6 = 0,要求精确到10E-6.
算法分析:取x0 = 100; 和 x0 = -100;
f(x)的Newton代法构造方程为: x(n+1) = xn - (xn*xn – 5*xn + 6) / (2*xn - 5)
#include
double F1(double x); //要求解的函数
double F2(double x); //要求解的函数的一阶导数函数
double Newton(double x0, double e);//通用Newton迭代子程序
int main()
{
double x0;
double e = 10E-6;
x0 = 100;
printf("x = %f\n", Newton(x0, e));
x0 = -100;
printf("x = %f\n", Newton(x0, e));
getchar();
return 0;
}
double F1(double x) //要求解的函数
{
return x * x - 5 * x + 6;
}
double F2(double x) //要求解的函数的一阶导数函数
{
return 2 * x - 5;
}
double Newton(double x0, double e)//通用Newton迭代子程序
{
double x1;
do {
x1 = x0;
x0 = x1 - F1(x1) / F2(x1);
} while (fabs(x0 - x1) > e);

return (x0 + x1) * 0.5;
}
具体使用迭代法求根时应注意以下两种可能发生的情况:
(1) 如果方程无解,算法求出的近似根序列就不会收敛,迭代过程会变成死循环,因此在使用迭代算法前应先考察方程是否有解,并在程序中对迭代的次数给予限制;
(2) 方程虽然有解,但迭代公式选择不当,或迭代的初始近似根选择不合理,也会导
致迭代失败.选初值时应使:|df(x)/dx|

c语言牛顿迭代法解 y=x三次方减去4倍的x的平方减去10等于0在1.0和-5附近的解要求误差小于10的-3次方后天俺们就交上去了 哪位大虾帮用c语言编程:牛顿迭代法解方程用牛顿迭代法求解方程X*e^x-1=0(x乘以e的x次方再减去1等于0)在0.5附近的一个根.提示:解F(x)=x-e^xF’(x)=1+e^-x牛顿迭代式为X=Xk-(Xk-e^-Xk)/(1+e^-Xk),k=0 用牛顿迭代法求方程的根:lg(x)+x-2=0.用C语言, 用牛顿迭代法求方程f(x)等于2x的3次方减去4x的平方加上3x减去7等于0 在x=2.5附近的实根,直到满足两个相邻两个实根的差的绝对值小于10的负6次方 为止.用C语言编写 用C语言编程求牛顿迭代法求方程f(x)=0的根.( C语言编程,用牛顿抚迭代法求方程2X*X*X-4X*X+3X-6=0在1.5附近的根 C语言编程:牛顿迭代法求方程的根2*x*x*x-4*x*x+3*x-6=0 c语言问题:为什么我的牛顿迭代法求方程3*x*x+4*x-10=0时总是说迭代次数达到上限,不成功 用C语言编程 牛顿迭代法 计算f(x)=X2-7X+10的最优值 C语言牛顿迭代法解方程X^2 -1 = 0求算法只是想知道怎么求2个根的,求算法啊~~~ 用C语言求牛顿迭代法求方程4x3-8x2+6x-12=0在1.5附近的根 C语言牛顿迭代法求方程根不知哪里错了#include #include #define e 1.0e-6 f(double x) { double y; y=2*x*x*x-4*x*x+3*x-6; return y;} f1(double x) { double y; y=6*x*x-8*x+3; return y;} main() { double d=1,x=1.5; while(fabs(d)>e) {d=f(x)/f1 C语言用牛顿迭代法求方程(xe^x)-1=0在0.5附近的近似根,要求精确到10^-5明天就考试了 牛顿迭代法求一个方程的解 MATLAB用MATLAB求方程y=x-c*sin(y+k)其中,x,c,k都为已知就是求y就好了 c语言 用牛顿迭代法求f(x);用牛顿迭代法求高次方程f(X)=2x3-4x2+5x-18=0的根.牛顿迭代公式为:Xn=Xn-1-f(Xn-1)/f’(Xn-1),其中f’(Xn-1)为导函数在点Xn-1的值.#include stdio.h#include math.hmain(){float x,f,f1 C语言用牛顿迭代法球X的平方根 程序错误怎么改啊main(){ float x,s=1,y,m;printf(input x=);scanf(%f,&x);do{y=s;s=0.5*(y+x/y);}while(fabs(y-s)>1e-6);printf(%f,s);getch();} 我运行得到了5,这个程序运行好像只执行了 用迭代法求方程的根C语言编程:用迭代法求方程X的3次方-X的平方-1=0在X=1.5附近的根.要求误差小于10的-6次方. 牛顿迭代法求方程的根用迭代法求x3+9.2x2+16.7x+4=0在x=0附近的实根,迭代精度10-5(这里似乎不能打上标这是10的-5次 凑合看吧不好意思)刚刚接触C语言不懂得太多 我自己写出来了一个 运行对了