matlab迭代法解方程的程序
时间: 2023-11-07 20:06:13 浏览: 185
雅克比(Jacobi)迭代法解线性方程组(Matlab程序).rar_雅克比_雅克比迭代_雅克比迭代法
5星 · 资源好评率100%
以下是MATLAB迭代法解方程的程序,其中包括牛顿迭代法和二分法两种方法:
```matlab
% 牛顿迭代法解方程
function x = newton_interation(fun, dfun, x0, EPS)
% fun即迭代函数,dfun即迭代函数的一阶导数,x0为迭代初值,EPS为精度
x1 = x0 - fun(x0) / dfun(x0); % 牛顿迭代公式
d = norm(x1 - x0); % 计算误差
while d >= EPS
x0 = x1;
x1 = x0 - fun(x0) / dfun(x0);
d = norm(x1 - x0);
end
x = x1; % 将符合条件的结果输出
% 二分法解方程
function x = bisection_method(fun, a, b, EPS)
% fun即迭代函数,a和b为迭代区间,EPS为精度
if fun(a) * fun(b) >= 0
error('函数在该区间内无根或有多个根');end
while (b - a) / 2 >= EPS
c = (a + b) / 2;
if fun(c) == 0
break;
elseif fun(c) * fun(a) < 0
b = c;
else
a = c;
end
end
x = (a + b) / 2; % 将符合条件的结果输出
```
阅读全文