1 / 19
文档名称:

《矩阵与数值分析》实验报告.docx

格式:docx   大小:107KB   页数:19页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

《矩阵与数值分析》实验报告.docx

上传人:cjc201601 2022/7/8 文件大小:107 KB

下载得到文件列表

《矩阵与数值分析》实验报告.docx

相关文档

文档介绍

文档介绍:《矩阵与数值分析》实验报告
学院:土木市政工程 姓名:徐博书 学号:教师:张宏伟 班级:2班
一、为了逼近飞行中的野鸭的顶部轮廓曲线,已经沿着这条曲线选择了一组点。见下表。
.对这些数据构造三次自然样条插值函数,并画出得到的三次自然样1
k1=feval(dyfun,x(n),y(n));
y(n+1)=y(n)+h*k1;
k2=feval(dyfun,x(n+1),y(n+1));
y(n+1)=y(n)+h*(k1+k2)/2;
end
x=x';y=y';
在MATLA瑜令窗口中输入
dyfun=inline('u-tA2+1');[t,u]=euler2(dyfun,[0,2],,;[t,u]
回车运行得到
ans =
=的 4 阶经典的 Runge-Kutta 法
完整MATLA叁序
新建M-文件,建立rungekutta函数,保存至系统默认路径。
function [x,y]=rungekutta(dyfun,xspan,y0,h)
x=xspan(1):h:xspan(2);y(1)=y0;
for n=1:length(x)-1
k1=feval(dyfun,x(n),y(n));
k2=feval(dyfun,x(n)+h/2,y(n)+h/2*k1);
k3=feval(dyfun,x(n)+h/2,y(n)+h/2*k2);
k4=feval(dyfun,x(n+1),y(n)+h*k3);
y(n+1)=y(n)+h*(k1+2*k2+2*k3+k4)/6;
End
x=x';y=y';
在MATLA瑜令窗口中输入
dyfun=inline('u-tA2+1');[t,u]=rungekutta(dyfun,[0,2],,;[t,u]
回车运行得到
ans =
4. 精确解
在MATLA瑜令窗口中输入
t=0::2;u=(1+t).A.*exp(t);[t',u']
回车运行得到
ans =

计算值对比
h-白Euler 法
h=的改进的
Euler 法
h= 的 4 阶
Runge-Kutta 法
精确解
本例说明卜二的4阶Runge-Kutta法与真值最为接近。
三、用Newton迭代法求方程f x arctan x 0的根时,分别取初始值 x0 , x0 ;
用Newton迭代法求方程fx x3 x 3 0时,分别取初始值x0 , x0 ;
xA3-x-3
3*xA2-1
解:
.求解 f x arctan x 0
⑴取初始值
完整MATLA叁序
新建M-文件,建立newton函数,保存至系统默认路径。
function [nx,k]=newton(fname,dfname,x0,ep,nmax)
if nargin<5 nmax=500; end
if nargin<4 ep=1e-5; end
x=x0;x0=x+2*ep;k=0;
while abs(x0-x)>ep&k<nmax k=k+1;
x0=x;x=x0-feval(fname,x0)/feval(dfname,x0);
end
nx=x;
if k==nmax warning('已迭代上限次数');end
⑵取初始值
在MATLA瑜令窗口中输入
fname=inline('atan(x)');
dfname=inline('1/(1+xA2)');
[nx,k]=newton(fname,dfname,
回车运行可得
nx =
NaN
k =
14
说明取初值时newton 法对于 y=arctan(x)=0 不收敛。
在MATLA瑜令窗口中输入
fname=inline('atan(x)');
dfname=inline('1/(1+xA2)');
[nx,k]=newton(fname,dfname,
回车运行可得
nx =
0
k =
4
说明取初值时newton 法对于 y=arctan(x)=0 收敛。
. 求解 f xx3 x 3 0
⑴取初始值0
在MATLA瑜令窗口中输入
fname=inline(' xA3-x-3');
dfname=inline('3*xA2-1');
[nx,k]=newton(fname,dfname,0)
回车运行可得