文档详情

数值分析上机题4,6.doc

发布:2017-04-20约6.07千字共5页下载文档
文本预览下载声明
上机题4 3次样条插值函数: 编制求第一型3次样条插值函数的通用程序; 已知汽车门曲线型值点的数据如下: i012345xi012345yi2.513.304.044.705.225.54i678910xi678910yi5.785.405.575.705.80端点条件为y0’=0.8,y10’=0.2,用所编程序求车门的3次样条插值函数S(x),并打印出S(i+0.5),i=0,1,2,…,9。 Matlab代码: x=[0,1,2,3,4,5,6,7,8,9,10]; %输入x y=[2.51,3.3,4.04,4.7,5.22,5.54,5.78,5.4,5.57,5.7,5.8]; %输入y y0=0.8; %输入第一类端点条件 y10=0.2; [m,n]=size(x); %读取矩阵大小 h=zeros(m,n); %初始化各矩阵 u=zeros(m,n-1); v=zeros(m,n-1); p=zeros(m,n-1); f=zeros(m,n-2); d=zeros(m,n); M=zeros(m,n); S=zeros(m,n); for i=1:1:n-1 %h(i)值计算 h(i)=x(i+1)-x(i); end for i=1:1:n-2 u(i)=h(i)/(h(i)+h(i+1)); %u(i)、v(i)值计算 v(i)=1-u(i); end for i=1:1:n-1 p(i)=(y(i+1)-y(i))/(x(i+1)-x(i)); %一阶差商f[xi,xi+1]计算 end for i=1:1:n-2 %二阶差商f[xi,xi+1,xi+2]计算 f(i)=(p(i+1)-p(i))/(x(i+2)-x(i)); end d(1)=(p(1)-y0)/(x(2)-x(1))*6; %d(1)、d(n)值计算 d(n)=(y10-p(10))/(x(n)-x(n-1))*6; for i=2:1:n-1 %d(i)值计算 d(i)=6*f(i-1); end A=zeros(n); A(1,1)=1;A(1,2)=2; A(n,n)=2;A(n,n-1)=1; for i=2:1:n-1 %系数矩阵构造 A(i,i)=2; A(i,i-1)=u(i-1); A(i,i+1)=v(i-1); end N=inv(A)*d; %M(i)矩阵求解 M=N; for i=1:1:n-1 S(i)=y(i)+(p(i)-(M(i)/3+M(i+1)/6)*h(i))*0.5+M(i)/2*0.5^2+(M(i+1)-M(i))/6/h(i)*0.5^3; %S(i)求解 j=i-1+0.5; s=S(i); fprintf(s[%3.1f]=%5.4f\n,j,s) %输出S(i) end 上机题6 常微分方程初值问题数值解: 编制RK4方法通用程序; 编制AB4方法通用程序(由RK4提供初值); 编制AB4-AM4预测校正方法通用程序(由RK4提供初值) 编制带改进的AB4-AM4预测校正方法通用程序(由RK4提供初值) 对于初值问题 取步长,应用(1)~(4)中的四种方法进行计算,并将计算结果和精确解作比较; 通过本上机题,你能得到哪些结论? Matlab代码: x=zeros(1,16); y=zeros(1
显示全部
相似文档