东南大学计算方法实验报告matlab版
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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)) m=-floor(log10(abs(y1-y)))+ ceil (log10(y1)); 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)) m=-floor(log10(abs(y2-y)))+ ceil (log10(y2)); else m=-floor(log10(abs(y2-y)))+ ceil (log10(y2))-1; end fprintf('%s%d','有效位数',m); 四、程序运行结果 3 实验三 一、实验目的和意义:p225 二、程序设计 P225.m eps=5e-6; delta=1e-6; N=1000; k=0; x0=0.5; while(1); x1=x0-fp225_1(x0)/fp225_1_1(x0); k=k+1; if(k>N||abs(x1) disp('Newton methon failed'); break; end if abs(x1)<1; d=x1-x0; else d=(x1-x0)/x1; end x0=x1; if(abs(d) end end fprintf('%f',x0); fp225_1.m function y= fp225_1( x ) y=x*exp(x)-1; end fp225_1_1.m 4 function y =fp225_1_1( x ) y=exp(x)*(1+x); end 三、程序运行结果 >> p225 0.567143 实验四 一、实验题目:曲线拟合p250.2 二、程序设计 qxnh.m x=[1 2.5 3.5 4];y=[3.8 1.5 26.0 33]; fun1=inline('c(1)+c(2)*x.^2','c','x'); %拟合函数 c=lsqcurvefit(fun1,[0,0],x,y) %求拟合系数 ['y=',num2str(c(1)),'+',num2str(c(2)),'x^2']%拟合函数表达式 y1=c(1)+c(2)*x.^2; %拟合函数表达式值 三、程序运行结果 >>qxnh -3.4957 2.2052 ans = y=-3.4957+2.2052x^2 实验五 一、实验题目:常微分方程数值解法p269.1.1 二、程序设计 qxnh.m x=[1 2.5 3.5 4];y=[3.8 1.5 26.0 33]; fun1=inline('c(1)+c(2)*x.^2','c','x'); %拟合函数 c=lsqcurvefit(fun1,[0,0],x,y) %求拟合系数 ['y=',num2str(c(1)),'+',num2str(c(2)),'x^2']%拟合函数表达式 5