例题1:求解方程 \(x^3 - 2x - 5 = 0\)
定义函数和导数
```matlab
% 定义函数 f(x)
f = @(x) x^3 - 2*x - 5;
% 定义函数 f'(x)
f_prime = @(x) 3*x^2 - 2;
```
设定初始值
```matlab
x0 = 1;
```
执行牛顿迭代法
```matlab
x = x0 - f(x0) / f_prime(x0);
```
输出结果
```matlab
disp(x);
```
运行上述代码后,将会输出方程 \(x^3 - 2x - 5 = 0\) 的根。
例题2:绘制复平面上的牛顿法迭代过程
定义函数
```matlab
% 定义函数 f(x)
f = @(x) x^3 - 2*x - 5;
% 定义函数 f'(x)
f_prime = @(x) 3*x^2 - 2;
```
设定初始值
```matlab
x0 = 1;
```
执行牛顿迭代法并绘制图形
```matlab
N = 160;
warning off;
[X,Y] = meshgrid((-N:N)/N*2);
[m,n] = find(X==0&Y==0);
X(m,n) = 1;
Y(m,n) = 1;
R = zeros(321);
G = R;
B = R;
for k = 1:30;
Xn = 2*X/3 + (X.^2 - Y.^2) / (3*(X.^2 + Y.^2));
Yn = 2*Y/3 - 2*X.*Y./(3*(X.^2 + Y.^2));
X = Xn;
Y = Yn;
end
R(X > 0.8) = 1;
G(Y > 0.5) = 1;
imshow(cat(3,R,G,B));
```
运行上述代码后,将会在复平面上绘制出牛顿法迭代过程的结果。
例题3:求解方程 \(2x^3 - 4x^2 + 3x - 6 = 0\)
定义函数
```matlab
f = @(x) 2*x^3 - 4*x^2 + 3*x - 6;
```
设定初始值
```matlab
x0 = 1.5;
```
执行牛顿迭代法
```matlab
while(1)
m = 2*x0*x0*x0 - 4*x0*x0 + 3*x0 - 6;
n = 6*x0*x0 - 8*x0 + 3;
t = x0;
x0 = x0 - m / n;
if abs(x0 - t) < 1e-6
break;
end
end
```
输出结果
```matlab
disp(x0);
```
运行上述代码后,将会输出方程 \(2x^3 - 4x^2 + 3x - 6 = 0\) 的根。
这些例题展示了如何使用MATLAB实现牛顿迭代法来求解不同类型的方程。通过这些例子,你可以更好地理解牛顿迭代法的基本原理和实现方法。