Matlab 里编写的牛顿迭代法,不知道什么出错了,请大家帮帮忙function newton(f,a)g=diff(f);for n=1:20 x=a; fa=eval(f); ga=eval(g); a=a-fa/ga; X=a; format longdisp(X)%output 'approximate value of a'end 当我用x^3+x^2+5

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/28 05:11:34
Matlab 里编写的牛顿迭代法,不知道什么出错了,请大家帮帮忙function newton(f,a)g=diff(f);for n=1:20   x=a;   fa=eval(f);   ga=eval(g);   a=a-fa/ga;   X=a;   format longdisp(X)%output 'approximate value of a'end   当我用x^3+x^2+5

Matlab 里编写的牛顿迭代法,不知道什么出错了,请大家帮帮忙function newton(f,a)g=diff(f);for n=1:20 x=a; fa=eval(f); ga=eval(g); a=a-fa/ga; X=a; format longdisp(X)%output 'approximate value of a'end 当我用x^3+x^2+5
Matlab 里编写的牛顿迭代法,不知道什么出错了,请大家帮帮忙
function newton(f,a)
g=diff(f);
for n=1:20
x=a;
fa=eval(f);
ga=eval(g);
a=a-fa/ga;
X=a;
format long
disp(X)%output 'approximate value of a'
end
当我用x^3+x^2+5=0来检查的时候,答案是正确的;当我用cos(x)-x来检查的时候,输出的东西非常奇怪
» newton('cos(x)-x',10)
-13.77099420154660
1.993511775153038e+002
-2.020292634287075e+004
3.159234177166328e+004
1.005958011583579e+004
1.671119202654307e+003
-4.338983151322527e+002
2.360027467552869e+002
-1.424684491875079e+002
-67.31957649476091
-33.34425589894090
4.884120479595355e+002
-8.719276647547400e+004
4.703381773171524e+005
-1.806200566117338e+006
-9.030749196921680e+005
-4.156637151853491e+005
-1.182332523540095e+005
1.468631133479570e+005
-9.370856705585728e+003
不知道哪里出错了,请大家帮帮忙把,答案应该是0.7左右

Matlab 里编写的牛顿迭代法,不知道什么出错了,请大家帮帮忙function newton(f,a)g=diff(f);for n=1:20 x=a; fa=eval(f); ga=eval(g); a=a-fa/ga; X=a; format longdisp(X)%output 'approximate value of a'end 当我用x^3+x^2+5
首先你的代码run不了,大小写x需改正,diff没用的,修改如下
function newton(f,g,a)
for n=1:20
x=a;
fa=eval(f);
ga=eval(g);
a=a-fa/ga;
x=a;
format long
disp(x)%output 'approximate value of a'
end
其次算法没错,错的是你的初值,newton算法是需要很好初值的,不然会发散
所以你必须选一个离真解很近的值,例如1,0.7,我算了是对的

Matlab 里编写的牛顿迭代法,不知道什么出错了,请大家帮帮忙function newton(f,a)g=diff(f);for n=1:20 x=a; fa=eval(f); ga=eval(g); a=a-fa/ga; X=a; format longdisp(X)%output 'approximate value of a'end 当我用x^3+x^2+5 我知道牛顿迭代法解方程的Matlab程序如何编写了,但不知道输入什么命令才能运行!求详解求12-3x+2cosx=0在【2,4】内的解,Matlab程序如下:clear; %清除所有内存数据;f=inline('12-3*x+2*cos(x)');format long matlab牛顿迭代法求方程根程序求大神帮写个牛顿迭代法解方程的程序. 牛顿迭代法什么样的函数 不适用 数值分析课程设计,编制一般迭代法、牛顿法、弦截法求解方程组的计算机程序,并分析它们的特点不过,有matlab编写的程序吗? 用matlab如何编写牛顿迭代法问题,X^3-X-1=0在闭区间【1,2】内的近似根 要求精度达到10^(-5) 用fortran怎么编写牛顿迭代法 FORTRAN 95 牛顿迭代法用FORTRAN编写:用牛顿迭代法求a**(1.0/3.0)的近似值,取精度为10的负5次方. Matlab 牛顿加速迭代法 急…………Matlab 牛顿加速迭代法 急…………记住是 牛顿“加速”迭代法解方程是x=e^(-x)在x=0.5附近的根 matlab中牛顿法程序我手里有两个牛顿迭代法的程序,但是两种程序计算出来的数值有误差,而我又对数值的要求很高,我是初学牛顿法,所以不知道应该采用哪个.请大家帮我看看!最好能解释一下 牛顿迭代法的具体算法 如何用牛顿法求方程的根——编程.方程是随便的方程,不知道是什么方程.牛顿法,切线法,迭代法都可以. 请问怎么用matlab编程,使用牛顿迭代法求根号5的立方的近似值? 求解非线性方程组的牛顿迭代法的具体思想及方法并附有matlab 源程序 f(x)=x^[(n+1)/2]*esp^(-x/2)的牛顿迭代法MATLAB程序 牛顿迭代法的收敛条件是什么? 具体描述一下牛顿迭代法的使用方法 用牛顿迭代法求115的平方根