用牛顿切线法的局部收敛性判别方程 e x sin x = 4 的近似根时,分别由不同 的初始值 x0 : ⑴ x0 = - 1; ⑵ x0 = 0; ⑶ x0 = 1; ⑷ x0 = 2; ⑸ x0 = 5.5 ; ⑹ x0 = 8 , 考 察 产 生 的 迭 代 序 列 是 否 收 敛 ? 再 用 抛 物 线 法 求 方 程 f (x) = e 2 x 一3x 2 = 0 的一个实根的近似值xk ,使精确到 = 10 一4 MATLAB代码
时间: 2024-02-15 10:27:03 浏览: 165
首先,牛顿切线法的迭代公式为:
x_(n+1) = x_n - f(x_n)/f'(x_n)
其中,f(x) = exsinx - 4
f'(x) = excosx + exsinx
接下来,我们可以使用 MATLAB 编写求解牛顿切线法的代码:
% 牛顿切线法求解方程exsinx-4=0的近似根
tol = 1e-6; % 精度要求
maxiter = 100; % 最大迭代次数
x0 = [-1, 0, 1, 2, 5.5, 8]; % 不同的初始值
for i = 1:length(x0)
x = x0(i);
k = 0;
while k < maxiter
f = exp(x)*sin(x) - 4;
df = exp(x)*(cos(x) + sin(x));
x_new = x - f/df;
if abs(x_new - x) < tol % 满足精度要求,停止迭代
fprintf('初始值为%.1f时,迭代收敛,近似根为%.6f\n', x0(i), x_new);
break;
end
x = x_new;
k = k + 1;
end
if k >= maxiter % 超过最大迭代次数,迭代失败
fprintf('初始值为%.1f时,迭代失败\n', x0(i));
end
end
接下来,我们使用 MATLAB 编写抛物线法求解方程f(x) = e^(2x) - 3x^2 = 0的一个实根的近似值:
% 抛物线法求解方程e^(2x)-3x^2=0的一个实根的近似值
tol = 1e-4; % 精度要求
maxiter = 100; % 最大迭代次数
x0 = 1.5; % 初始值
x1 = 2; % 初始值
f = @(x)exp(2*x) - 3*x^2; % 定义函数句柄
k = 0;
while k < maxiter
m = (f(x1) - f(x0))/(x1 - x0);
a = (m - f(x1))/(x1 - x0)^2;
b = f(x1)/(x1 - x0) - m*(x1 + x0)/(x1 - x0)^2;
x_new = (-b + sqrt(b^2 - 4*a*f(x1)))/(2*a); % 取正根
if abs(x_new - x1) < tol % 满足精度要求,停止迭代
fprintf('迭代收敛,近似根为%.4f\n', x_new);
break;
end
x0 = x1;
x1 = x_new;
k = k + 1;
end
if k >= maxiter % 超过最大迭代次数,迭代失败
fprintf('迭代失败\n');
end
阅读全文