数值分析.docx
- 文档编号:30140957
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:20
- 大小:244.13KB
数值分析.docx
《数值分析.docx》由会员分享,可在线阅读,更多相关《数值分析.docx(20页珍藏版)》请在冰豆网上搜索。
数值分析
实验报告
课程名称:
计算方法
院系:
数学科学系
专业班级:
数学与应用数学
学号:
学生姓名:
指导教师:
开课时间:
2015至2016学年第二学期
一、学生撰写要求
按照实验课程培养方案的要求,每门实验课程中的每一个实验项目完成后,每位参加实验的学生均须在实验教师规定的时间内独立完成一份实验报告,不得抄袭,不得缺交。
学生撰写实验报告时应严格按照本实验报告规定的内容和要求填写。
字迹工整,文字简练,数据齐全,图表规范,计算正确,分析充分、具体、定量。
二、教师评阅与装订要求
1.实验报告批改要深入细致,批改过程中要发现和纠正学生实验报告中的问题,给出评语和实验报告成绩,签名并注明批改日期。
实验报告批改完成后,应采用适当的形式将学生实验报告中存在的问题及时反馈给学生。
2.实验报告成绩用百分制评定,并给出成绩评定的依据或评分标准(附于实验报告成绩登记表后)。
对迟交实验报告的学生要酌情扣分,对缺交和抄袭实验报告的学生应及时批评教育,并对该次实验报告的分数以零分处理。
对单独设课的实验课程,如学生抄袭或缺交实验报告达该课程全学期实验报告总次数三分之一以上,不得同意其参加本课程的考核。
3.各实验项目的实验报告成绩登记在实验报告成绩登记表中。
本学期实验项目全部完成后,给定实验报告综合成绩。
4.实验报告综合成绩应按课程教学大纲规定比例(一般为10-15%)计入实验课总评成绩;实验总评成绩原则上应包括考勤、实验报告、考核(操作、理论)等多方面成绩;
5.实验教师每学期负责对拟存档的学生实验报告按课程、学生收齐并装订,按如下顺序装订成册:
实验报告封面、实验报告成绩登记表、实验报告成绩评定依据、实验报告(按教学进度表规定的实验项目顺序排序)。
装订时统一靠左侧按“两钉三等分”原则装订。
实验名称
MATLAB基本操作与插值
实验时间
2016年3月30日
学生姓名
实验地点
9#405数学实验室
1、实验所用软件
WINDOWNSXP操作系统、Matlab2012a
2、实验目的
熟悉Matlab编程环境,理解和掌握Matlab执行命令的方式,会做一些简单函数的图像。
通过用Matlab编程解决数值分析问题,更深一步的体会计算方法这门课的重要性。
设计一个程序,可以实现Lagrange插值方法的程序。
使学生掌握插值算法的基本理论,并提高学生在程序设计中发现问题、分析问题和解决问题的能力。
3、实验内容
(一)、Matlab操作界面
1、命令窗口(commandwindow)
2、命令历史窗口(commandhistory)
3、工作空间管理窗口(workspace)
4、当前路径窗口(currentdirectory)
(二)、具体练习
(1)MATLAB基本操作
1、简单矩阵
的输入步骤。
2、绘制函数
在
上
的图形。
3、绘制马鞍面图形
的取值范围是
。
4、复数矩阵求行列式。
(2)MATLAB的Lagrange插值
已知数据如下:
x=[0.56160,0.56280,0.56410,0.56521]对应的y=[0.82741,0.82659,0.82577,0.82495],试用Lagrange插值多项式求xi=0.5626,0.2635,0.5645时的函数近似值。
4、实验方法、步骤
1、了解matlab的硬件和软件必备环境;
2、启动matlab;
3、熟悉标题栏,菜单栏,工具栏,元素选择窗口,状态栏,控制栏以及系统布局区;
4.学习一些简单函数图形的绘制及命令的编写
5、实验数据记录与分析
1、简单矩阵
的输入步骤。
(1)打开Matlab软件,在“>>”处用键盘上输入下列内容
A=[123;456;789]
(2)按【Enter】键,指令被执行。
(3)在指令执行后,MATLAB指令窗中将显示以下结果:
A=
123
456
789
2、绘制函数
在
上的图形。
输入命令:
>>fplot('sin(x)./x',[-5050-0.31.1]),
gtext('sinx/x')
运行后图形显示
3、绘制马鞍面图形
的取值范围是
。
输入命令程序:
>>x=-3:
0.1:
3;y=x;
[x,y]=meshgrid(x,y);
z=(x.^2)/9-(y.^2)/4;
figure;surf(x,y,z);
title('马鞍面图形')
axisoff
运行后图形显示:
4、复数矩阵求行列式。
输入命令程序:
>>A=[1+i2+5i;i3i];
>>det(A)
ans=
2.0000+1.0000i
(2)MATLAB的Lagrange插值
输入命令程序:
>>functionyy=lagrange(x,y,xi)
m=length(x);n=length(y);
ifm~=n,error('向量x与y的长度必须一致');
end
fork=1:
length(xi)
s=0;
fori=1:
mz=1;
forj=1:
n
ifj~=i
z=z*(xi(k)-x(j))/(x(i)-x(j));
end
ends=s+z*y(i);
endyy=s
end
结果:
>>x=[0.56160,0.56280,0.56410,0.56521]
>>y=[0.82741,0.82659,0.82577,0.82495]
>>xi=[0.5626,0.2635,0.5645]
>>yi=lagrange(x,y,xi)
yi=
0.86280.82610.8254
6、实验结论
通过一节课的认真学习,我学会Matlab数学软件的基础知识与运用。
我们这节课的主要目的是认识了解Matlab编程环境,理解和掌握Matlab命令执行的方式,会做一些简单函数的图像。
通过运用Matlab软件编程解决数值分析问题,更深一步的了解计算方法这门课。
做了一些练习后,学会了很多,但仍有些不足之处,例如对软件掌握不够熟练,需要课下多练习,继续努力。
指导教师评语和成绩评定
实验内容
完成
基本完成
未完成
实验方法与步骤
合理
基本合理
不合理
实验数据记录与分析
完整
基本完整
不完整
实验结论
完备
基本完备
不完备
实验目的
达到
基本达到
未达到
实验成绩
指导教师签字:
年月日
实验名称
MATLAB插值
实验时间
2016年4月13日
学生姓名
实验地点
9#405数学实验室
1、实验所用软件
WINDOWNSXP操作系统、Matlab2012a
2、实验目的
熟悉Matlab编程环境,理解和掌握Matlab执行命令的方式,会做一些简单函数的图像。
通过用Matlab编程解决数值分析问题,更深一步的体会计算方法这门课的重要性。
设计一个程序,可以实现Lagrange插值方法的程序。
使学生掌握插值算法的基本理论,并提高学生在程序设计中发现问题、分析问题和解决问题的能力。
3、实验内容
(1)运用拉格朗日插值、埃特金插值和牛顿插值公式,以课本例5(p23)为例,分别给出相应的程序。
4、实验方法、步骤
1、掌握拉格朗日插值的步骤和流程。
2、埃特金插值的承继性的过程;
3、分别给出差商和差分形式的牛顿插值的Matlab程序。
5、实验数据记录与分析
在MALTAB中输入程序为:
Functionfy=f5(x)
%拉格朗日插值formatlongclc
Xi=0.3:
0.1:
0.7;
Yi=[f(xi)]
Fv=0
Fori=1:
length(xi)
t=1
forj=1:
length(xi)
ifj`=i
i=t*(x=xi(j))/(xi(i)-xi(j))
end
fv=fv+t*yi(i)
end运行结果与书中表中所给的一致
6、实验结论
通过对MALTAB软件的运用,我们可以更方便的计算数值分析中的插值、差商和微分问题。
通过运用Matlab软件编程解决数值分析问题,更深一步的了解计算方法这门课。
做了一些练习后,学会了很多,但仍有些不足之处,需要课下多练习,继续努力。
指导教师评语和成绩评定
实验内容
完成
基本完成
未完成
实验方法与步骤
合理
基本合理
不合理
实验数据记录与分析
完整
基本完整
不完整
实验结论
完备
基本完备
不完备
实验目的
达到
基本达到
未达到
实验成绩
指导教师签字:
年月日
实验名称
线性方程组的迭代法与直接法
实验时间
2016年5月13日
学生姓名
实验地点
9#405数学实验室
1、实验所用软件
WINDOWNSXP操作系统、Matlab2012a
2、实验目的
设计程序,可以实现雅可比迭代法,高斯-赛德尔迭代法等算法的程序。
设计程序,可以实现Gauss消去法、选主元素法和追赶法求线性方程组根的程序。
使学生掌握线性方程组数值求解的基本理论,并提高学生在程序设计中发现问题、分析问题和解决问题的能力。
3、实验内容
1.用判别雅可比迭代收敛性的MATLAB主程序,判别由下列方程组的雅可比迭代产生的序列是否收
敛?
(1)
(2)
2.用高斯-塞德尔迭代定义的MATLAB主程序解下列线性方程组,取初始值
,要求当
时,迭代终止.
(1)
(2)
3.用Gauss消元法和MATLAB程序求解下面的非齐次线性方程组,并且用逆矩阵解方程组的方法验
证.
4.用列主元消元法解线性方程组的MATLAB程序解方程组
5.已知
求三角线性方程组的解。
4、实验方法、步骤
1.
首先保存名为j.m的判别雅可比迭代收敛性的MATLAB主程序的M文件
functiona=jspb(A)
[nm]=size(A);
forj=1:
m
a(j)=sum(abs(A(:
j)))-2*(abs(A(j,j)));
end
fori=1:
n
ifa(i)>=0
disp('请注意:
系数矩阵A不是严格对角占优的,此雅可比迭代不一定收敛')
return
end
end
ifa(i)<0
disp('请注意:
系数矩阵A是严格对角占优的,此方程组有唯一解,且雅可比迭代收敛')
end
在MATLAB工作窗口输入程序
>>A=[10-1-2;-110-2;-1-15];
a=jspb(A)
在MATLAB工作窗口输入程序
>>A=[10-1-2;-110-2;-1-10.5];
a=jspb(A)
2.
首先保存名为y.m的M文件
functionX=gsdddy(A,b,X0,P,wucha,max1)
D=diag(diag(A));U=-triu(A,1);L=-tril(A,-1);dD=det(D);
ifdD==0
disp('请注意:
因为对角矩阵D奇异,所以此方程组无解.')
else
disp('请注意:
因为对角矩阵D非奇异,所以此方程组有解.')
iD=inv(D-L);B2=iD*U;f2=iD*b;jX=A\b;X=X0;
[nm]=size(A);
fork=1:
max1
X1=B2*X+f2;djwcX=norm(X1-X,P);
xdwcX=djwcX/(norm(X,P)+eps);
if(djwcX return else k,X1',k=k+1;X=X1; end end if(djwcX disp('请注意: 高斯-塞德尔迭代收敛,此A的分解矩阵D,U,L和方程组的精确解jX和近似解X如下: ') else disp('请注意: 高斯-塞德尔迭代的结果没有达到给定的精度,并且迭代次数已经超过最大迭代次数max1,方程组的精确解jX和迭代向量X如下: ') X=X';jX=jX' end end X=X';D,U,L,jX=jX' 在MATLAB工作窗口输入程序 >>A=[10-1-2;-110-2;-1-10.5];b=[7.2;8.3;4.2]; X0=[000]'; X=gsdddy(A,b,X0,inf,0.001,100) 在MATLAB工作窗口输入程序 >>A=[34-57;2-83-2;451-1316;7-2213]; b=[5;2;-1;21]; X0=[0000]';X=gsdddy(A,b,X0,inf,0.001,100) 3. 保存用高斯消元法解线性方程组 的MATLAB程序的文件 function[RA,RB,n,X]=gaus(A,b) B=[Ab];n=length(b);RA=rank(A); RB=rank(B);zhica=RB-RA; ifzhica>0, disp('请注意: 因为RA~=RB,所以此方程组无解.') return end ifRA==RB ifRA==n disp('请注意: 因为RA=RB=n,所以此方程组有唯一解.') X=zeros(n,1);C=zeros(1,n+1); forp=1: n-1 fork=p+1: n m=B(k,p)/B(p,p); B(k,p: n+1)=B(k,p: n+1)-m*B(p,p: n+1); end end b=B(1: n,n+1);A=B(1: n,1: n);X(n)=b(n)/A(n,n); forq=n-1: -1: 1 X(q)=(b(q)-sum(A(q,q+1: n)*X(q+1: n)))/A(q,q); end else disp('请注意: 因为RA=RB end End 在MATLAB工作窗口输入程序 >>A=[1-11-3;0-1-11;2-2-46;1-2-41]; b=[1;0;-1;-1]; [RA,RB,n,X]=gaus(A,b) 4. 保存用列主元消元法解线性方程组 的MATLAB程序的文件 function[RA,RB,n,X]=liezhu(A,b) B=[Ab];n=length(b);RA=rank(A); RB=rank(B);zhica=RB-RA; ifzhica>0, disp('请注意: 因为RA~=RB,所以此方程组无解.') return end ifRA==RB ifRA==n disp('请注意: 因为RA=RB=n,所以此方程组有唯一解.') X=zeros(n,1);C=zeros(1,n+1); forp=1: n-1 [Y,j]=max(abs(B(p: n,p)));C=B(p,: ); B(p,: )=B(j+p-1,: );B(j+p-1,: )=C; fork=p+1: n m=B(k,p)/B(p,p); B(k,p: n+1)=B(k,p: n+1)-m*B(p,p: n+1); end end b=B(1: n,n+1);A=B(1: n,1: n);X(n)=b(n)/A(n,n); forq=n-1: -1: 1 X(q)=(b(q)-sum(A(q,q+1: n)*X(q+1: n)))/A(q,q); end else disp('请注意: 因为RA=RB end end 在MATLAB工作窗口输入程序 >>A=[0-1-11;1-11-3;2-2-46;1-2-41]; b=[0;1;-1;-1]; [RA,RB,n,X]=liezhu(A,b) 5.程序 >>A=[1,2,0,0,0;2,3,1,0,0; 0,-3,4,2,0;0,0,4,7,1;0,0,0,-5,6]; d=[59219-4]'; n=length(d); U=zeros(n); L=eye(n); y=zeros(n,1);x=y; %---------追-------- U(1,1)=A(1,1);y (1)=d (1); fori=2: n L(i,i-1)=A(i,i-1)/U(i-1,i-1); U(i,i)=A(i,i)-L(i,i-1)*A(i-1,i); y(i)=d(i)-L(i,i-1)*y(i-1); U(i-1,i)=A(i-1,i);%U的上次对角线即为A的上次对角线 end L U y %------赶-------- x(n)=y(n); fori=n-1: -1: 1 x(i)=(y(i)-A(i,i+1)*x(i+1))/U(i,i); end x 5、实验数据记录与分析 1. (1)运行后输出结果 请注意: 系数矩阵A是严格对角占优的,此方程组有唯一解,且雅可比迭代收敛 a= -8-8-1 (2)运行后输出结果 请注意: 系数矩阵A不是严格对角占优的,此雅可比迭代不一定收敛 a= -8.0000e+000-8.0000e+0003.5000e+000 2. (1)运行后输出结果 请注意: 因为对角矩阵D非奇异,所以此方程组有解. 请注意: 高斯-塞德尔迭代收敛,此A的分解矩阵D,U,L和方程组的精确解jX和近似解X如下: (2)运行后输出结果 请注意: 因为对角矩阵D非奇异,所以此方程组有解. 请注意: 高斯-塞德尔迭代的记过没有达到给定的精度,并且迭代次数已经超过最大迭代 次数max1,方程组的精确解jX和迭代向量X如下: jX= 0.1821-0.25710.72861.3036 X=1.0e+142* 0.28830.10620.3622-3.1374 3.运行后输出结果: 请注意: 因为RA=RB=n,所以此方程组有唯一解. X= 0 -0.5000 0.5000 0 RA= 4 RB= 4 n= 4 4.运行后输出结果: 请注意: 因为RA=RB=n,所以此方程组有唯一解. RA=4,RB=4,n=4,X=[0-0.50.50]’ 5.运行后输出结果 L= 10000 21000 03100 00410 00051 U= 12000 0-1100 00120 000-11 00001 y= 5 -1 5 -1 1 x= 1 2 1 2 1 6、实验结论 通过这次实验了解并尝试运用雅可比迭代法、高斯-赛德尔迭代法、Gauss消去法、选主元素法和追赶法求线性方程组根的程序并且得到了相应的实验结果。 在本次试验中也出现了一些问题,在编写程序时出现很多错误等。 在今后的学习中,多动手加强自己的动手操作能力,要多练多思考,做到理论与实践相结合,在做题时要更加仔细认真。 指导教师评语和成绩评定 实验内容 完成 基本完成 未完成 实验方法与步骤 合理 基本合理 不合理 实验数据记录与分析 完整 基本完整 不完整 实验结论 完备 基本完备 不完备 实验目的 达到 基本达到 未达到 实验成绩 指导教师签字: 年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数值 分析