东南大学计算方法实验报告matlab版

Southeast University

计算方法实验报告

学 生 院 系 : 学 生 姓 名 : 学 生 学 号 :

实验一

一、实验题目:插值法p245 二、程序设计

P245_main.m

x=[0.3 0.42 0.5 0.58 0.66 0.72];

y=[1.04403 1.08462 1.11803 1.15603 1.19817 1.23223]; P245(x,y,0.46); P245(x,y,0.55); P245(x,y,0.6);

P245.m

function newtint( x,y,xhat ) n=length(y); c=y(:); for j=2:n for i=n:-1:j

c(i)=(c(i)-c(i-1))/(x(i)-x(i-j+1)); end end

yhat=c(n); for i=n-1:-1:1

yhat=yhat*(xhat-x(i))+c(i); end

fprintf('N(%f)= %f' ,xhat,yhat) disp('/n' ) end

三、程序运行结果

N(0.460000)= 1.100724/n N(0.550000)= 1.141271/n N(0.600000)= 1.166194/n

2

实验二

一、实验题目:舍入误差与数值稳定性p217_4 二、程序设计

n=input('输入N=\\n'); y1=0; y2=0;

digits(40); format long;

y=0.5*(1.5-1/n-1/(n+1)); for j=2:n

y1=y1+1/(j*j-1); end

fprintf('%s y1=%g\\n','从小到大计算结果',y1);

if floor(log10(abs(y1-y)))-log10(abs(y1-y))

else m=-floor(log10(abs(y1-y)))+ceil(log10(y1))-1; end

fprintf('%s%d','有效位数',m); for j=n:-1:2

y2=y2+1/(j*j-1); end

disp('\\n')

fprintf('%s y2=%g\\n','从大到小计算结果',y2);

if floor(log10(abs(y2-y)))-log10(abs(y2-y))

else m=-floor(log10(abs(y2-y)))+ ceil (log10(y2))-1; end

fprintf('%s%d','有效位数',m);

四、程序运行结果

3

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4