用迭代法求方程 在x=0.5附近的根,精度要求10-3,此方程的牛顿迭代公式为:
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/15 08:42:07
#include#includeusingnamespacestd;intmain(){doublediedai(doublea,doubleb,doublec,doubled,doublex);
symsxx0=2;f=x^3-3*x-1;eps=1e-6;maxcnt=1000;fx=diff(f,x);x1=x0;cnt=1;whilecnt
#includefloatsolution(floatx){floatx1,y,k;do{k=6*x*x-8*x+3;y=2*x*x*x-4*x*x+3*x-6;x1=x-y/k;x=x1;}whil
#include#includeintmain(){doublex0,x=1.5;do{x0=x;x=x0-(2*pow(x0,3)-4*pow(x0,2)+3*x0-6)/(6*pow(x0,2)-
1,用公式X(k+1)=e^(-X(k))将初值X(k)=1.5代入不断迭代,比较两次迭代值是否满足精度要求2,底下的来两个题自己看看他们的原理,直接代公式就可以了
牛顿迭代法建议你先好好看看数值分析
f(x)=2x^3-4x^2+3x-6f'(x)=6x^2-8x+3x(n+1)=xn-(2xn^3-4xn^2+3xn-6)/(6xn^2-8xn+3)x1=1.5x2=2.3333x3=2.061
f(x)=x^3+x^2-3x-3f'(x)=3x^2+2x-3x(n+1)=xn-f(xn)/f'(xn)令x1=1.5x2=1.777778x3=1.733361x4=1.732052x5=1.7
用^即可表示上标,10^(-5)可以表示10的-5次方.#include#includedoublef(doublex){returnx*x*x+9.2*x*x+16.7*x+4;}doublefdx
牛顿法的迭代序列:x(n+1)=x(n)-f(x(n))/f'(x(n)).代码如下:#include#includemain(){floatx,x0,f,f1;x0=1.5;do{f=4*x0*x0
#include#includeintmain(){doublediedai(doublee,doublex);doublee,x;x=0.5;printf("输入系数e:");scanf("%lf"
建立m文件:function[result,k]=newton(fun,x0,e)%调用形式:%[xk]=newton(fun,x0,e)%功能:%用差商求导的牛顿法求解一元非线性方程的根%输入:%-
你没有重新计算你定义的a循环最后加一条语句while(a>10e-6){..a=fabs(x0-x1);}
x1=0Dox0=X1f1=x0^5-3*x0^2+2*x0+1f2=5*x0^4-6*x0+2X1=x0-f1/f2LoopWhileAbs(X1-x0)>0.000001PrintX1
C++行么?这两天忙考试,过两天可以帮你改成C的,实验报告我也,有电子档的2简单迭代法#include#includeusingnamespacestd;doublef(double);//申明函数i
#include#include#include#defineN100#definePS1e-5//定义精度#defineTA1e-5//定义精度floatNewton(float(*f)(float
牛顿迭代法的步骤大概是这样的:首先给定一个初始值x0,用它来进行迭代.迭代的方法就是在点(x0,f(x0))处做曲线的切线,与横轴得到一个交点(x1,0),x1就是第一次迭代的结果,也就是方程解的一个
迭代公式x(k+1)=x(k)-f'(x(k))/f''(x(k))k=1,2.,直到你要的精度x(1)=1当|x(k+1)-x(k)|
x=0.57224982960923程序如下:usingSystem;namespaceTest{classProgram{staticvoidMain(string[]args){doublea=0