MATLAB 求重根的 Newton 迭代法:方程 f(x) = x^4 - 4x^2 + 4 = 0
以下是使用求重根的 Newton 迭代法求解方程 f(x) = x^4 - 4x^2 + 4 = 0 的根,并进行计算精度比较和绘制函数图像的 MATLAB 代码:
% 定义方程
f = @(x) x^4 - 4*x^2 + 4;
% 定义方程的导数
df = @(x) 4*x^3 - 8*x;
% 初始猜测值
x0 = 1.5;
% 计算精度
desired_error = 1e-5;
% Newton 迭代法求解重根
x_prev = x0;
x_next = x_prev - f(x_prev)/df(x_prev);
error = abs(x_next - x_prev);
while error > desired_error
x_prev = x_next;
x_next = x_prev - f(x_prev)/df(x_prev);
error = abs(x_next - x_prev);
end
% 输出结果
root = x_next;
disp('计算结果:');
disp('找到的根:');
disp(root);
% 绘制函数图像
x_vals = linspace(-2, 2, 100);
y_vals = arrayfun(f, x_vals);
figure;
plot(x_vals, y_vals, 'b-', 'LineWidth', 1.5);
hold on;
plot(root, f(root), 'ro', 'MarkerSize', 8, 'LineWidth', 1.5);
xlabel('x');
ylabel('f(x)');
title('Function Plot');
grid on;
解释说明:
- 在 MATLAB 中,我们可以使用求重根的 Newton 迭代法找到方程的根,并进行计算精度比较和绘制函数图像。
- 上述代码中,我们首先定义了方程
f和方程的导数df。 - 然后,我们给出初始猜测值
x0和计算精度desired_error。 - 使用 Newton 迭代法来逼近根的值。
- 在每次迭代中,我们计算下一个近似根的值,并计算误差。
- 当误差小于设定的计算精度时,迭代停止。
- 最后,输出找到的根,并绘制函数图像,标记出根的位置。
希望以上代码能够满足你的需求,如有其他问题,请随时追问。
原文地址: https://www.cveoy.top/t/topic/4Wo 著作权归作者所有。请勿转载和采集!