Newnton 迭代法求解单个方程 MATLAB 代码例子实现

 代码实现

function x=Newnton_iteration(f,x0,error)
%牛顿迭代法求方程解
%x0为初值
%error为误差
format long
syms x;
g=diff(f,x);
g=matlabFunction(g);%将符号函数转化为数值函数
f=matlabFunction(f);
n=1;
x(1)=vpa(x0-feval(f,x0)/feval(g,x0));
e=logical(x(1)-x0);
while abs(e)>error
    x(n+1)=vpa(x(n)-feval(f,x(n))/feval(g,x(n)));
    e=x(n+1)-x(n);
    n=n+1;
end
x=[(1:n)',x'];
end

将其保存为Newton_iteration.m文件。

例子

用Newton迭代法求方程xe^{^{x}}-1=0在x0=0.5附近的根,允许误差为0.5*10^(-4).《数值计算方法》()

syms x;
f=x*exp(x)-1;
Newnton_iteration(f,0.5,0.5*10^(-4))

运行结果

ans =
 
[1, 0.57102043980842220882720994268311]
[2, 0.56715556874411447037891428344197]
[3, 0.56714329053326100150408312501929]
[4, 0.56714329040978387301245641951102]
%第一列对应的是运行次数,第二列为运行结果

通过结果可以看到运行三次的时候就达到题目要求。

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-23 04:50:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-23 04:50:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-23 04:50:02       87 阅读
  4. Python语言-面向对象

    2024-04-23 04:50:02       96 阅读

热门阅读

  1. 爬虫f12跳转和debugger检测

    2024-04-23 04:50:02       35 阅读
  2. C#面:如何避免类型转换时的异常?

    2024-04-23 04:50:02       35 阅读
  3. 网络安全之痕迹清理

    2024-04-23 04:50:02       39 阅读
  4. 【前端】常见问题汇总

    2024-04-23 04:50:02       36 阅读
  5. 了解监控易(33):工单管理

    2024-04-23 04:50:02       39 阅读