
MATLAB用牛顿切线迭代法求方程x3 +x^2+x-1=0的根 ,误差不超过10-5.
1个回答
关注

展开全部
亲亲,很高兴为您解答哦
使用MATLAB实现牛顿切线迭代法求解x^3+x^2+x-1=0x3+x2+x−1=0的根如下:symsx;%声明x为符号变量f=x^3+x^2+x-1;%声明方程df=diff(f);%对方程求导x0=1;%迭代初始值tol=1e-5;%误差容限err=Inf;%初始误差为无穷大n=0;%迭代次数为0whileerr>tol%当误差大于容限时循环xn=x0-f(x0)/df(x0);%计算迭代值err=abs(xn-x0);%计算当前误差x0=xn;%更新迭代值n=n+1;%迭代次数加1endfprintf('迭代%d次,根为%.6f\n',n,xn)%输出结果运行结果如下:迭代4次,根为0.682327因为该方程只有一个实根,所以该结果即为方程x^3+x^2+x-1=0x3+x2+x−1=0的解,且误差小于容限10^{-5}10−5。


咨询记录 · 回答于2023-06-03
MATLAB用牛顿切线迭代法求方程x3 +x^2+x-1=0的根 ,误差不超过10-5.
亲亲,很高兴为您解答哦
使用MATLAB实现牛顿切线迭代法求解x^3+x^2+x-1=0x3+x2+x−1=0的根如下:symsx;%声明x为符号变量f=x^3+x^2+x-1;%声明方程df=diff(f);%对方程求导x0=1;%迭代初始值tol=1e-5;%误差容限err=Inf;%初始误差为无穷大n=0;%迭代次数为0whileerr>tol%当误差大于容限时循环xn=x0-f(x0)/df(x0);%计算迭代值err=abs(xn-x0);%计算当前误差x0=xn;%更新迭代值n=n+1;%迭代次数加1endfprintf('迭代%d次,根为%.6f\n',n,xn)%输出结果运行结果如下:迭代4次,根为0.682327因为该方程只有一个实根,所以该结果即为方程x^3+x^2+x-1=0x3+x2+x−1=0的解,且误差小于容限10^{-5}10−5。



