for j = 1:19 k = 21-j; y2(k-1) = (1-y2(k))/k; %利用递推公式二得到的实际值二 j = j+1; end y10 = y1-y0; y20 = y2-y0; for i = 1:20; wucha10 = sum(( y1(i)-y0(i))/y0(i)+eps)^2; %利用递推公式一计算时产生的相对误差 wucha20 = sum(( y2(i)-y0(i))/y0(i)+eps)^2; %利用递推公式二计算时产生的相对误差 end figure(1) %图象一 n = 1:20; xlabel('n的取值') plot(n,y0,'-r'); hold on plot(n,y1,'*b'); title('利用递推公式一计算与定积分值的结果散点图') figure (2) %图象二 plot(n,y0,'-r'); hold on plot(n,y2,'*g'); title('利用递推公式二计算与定积分值的结果散点图') figure (3) %图象三 plot(n,y10,'*r') hold on plot(n,y20,'-g') title('利用递推公式计算时的误差走势图') C题的求解程序 function [E] = Stability(x) %% 递推函数的稳定性的检验 % 输入:x:迭代的次数 % 输出:E:误差的百分比 clc y1(1) = sqrt(2); for i = 2:(x+1) y1(i) = 10*y1(i-1) - 1; end % 准确值的计算 y2(1) = 1.41; for i = 2:(x+1) y2(i) = 10*y2(i-1) - 1; end % 运用近似值的计算方法计算 Error = abs(y1 - y2)./y1; E = Error(x+1); clc clear %% 主程序(C) x = 10; %迭代的次数 [E] = Stability(x); fprintf('计算的误差为:') E D题的求解程序 9
clc clear %% D题中的第一种方法 x1 = 0; for i = 0:9 x11 = ((-1)^i)*(5^i)/factorial(i); x1 = x1+x11; end %% D题中的第二种方法 x2 = 0; for i = 0:9 x21 = (5^i)/factorial(i); x2 = x2+x21; end x2 = x2^(-1); e1 = (exp(-5)-x1)/exp(-5) e2 = (exp(-5)-x2)/exp(-5) %% e1,e2分别是方法一,二的误差百分比
实验总结(由学生填写):
10