
求上机代码和清晰的思路分析。(二分法 牛顿迭代法的定义与在此题中的具体应用 )
第一个问题:运行结果如下:

f = @(x) exp(x) + 10*x - 2; % 定义函数
a = 0; % 区间左端点
b = 1; % 区间右端点
tol = 1/2*10^(-3); % 精度要求
while (b-a)/2 > tol
c = (a+b)/2; % 取区间中点
if f(c) == 0 % 精确命中
break
elseif f(c)*f(a) < 0 % 根在左半区间
b = c;
else % 根在右半区间
a = c;
end
end
root = (a+b)/2 % 输出近似根
第二个问题:

f = @(x) exp(x) + 10*x - 2; % 定义函数
x0 = 0; % 初值
tol = 1/2*10^(-3); % 精度要求
x = x0;
k = 1;
while abs(f(x)) > tol && k <= 100 % k <= 100 为防止死循环
x = (2-f(x)*k)/10; % 选代公式
k = k + 1;
end
root = x % 输出近似根
第三个问题:运行结果:

f = @(x) exp(x) + 10*x - 2; % 定义函数
df = @(x) exp(x) + 10; % 定义导数
x0 = 0; % 初值
tol = 1/2*10^(-3); % 精度要求
x = x0;
k = 1;
while abs(f(x)) > tol && k <= 100 % k <= 100 为防止死循环
x = x - f(x)/df(x); % 牛顿迭代公式
k = k + 1;
end
root = x % 输出近似根
三种方法的计算量比较:
二分法:每次迭代区间减半,因此需要进行 $\log_2(n)$ 次迭代,其中 $n$ 是区间长度与精度要求的比值的倒数,即 $n=2/\epsilon$。每次迭代需要计算函数值一次,因此总共需要计算函数值 $\log_2(n)+1$ 次。
选代过程:每次迭代只需要计算一次函数值,因此总共需要计算函数值 $k$ 次。当 $k=100$ 时迭代停止。
牛顿迭代法:每次迭代需要计算函数值和导数值各一次,因此总共需要计算函数值和导数值 $k$ 次。当 $k=100$ 时迭代停止。
综上,选代过程最简单,二分法和牛顿迭代法计算量相当。