计算方法实验指导书.docx
- 文档编号:29055982
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:15
- 大小:18.41KB
计算方法实验指导书.docx
《计算方法实验指导书.docx》由会员分享,可在线阅读,更多相关《计算方法实验指导书.docx(15页珍藏版)》请在冰豆网上搜索。
计算方法实验指导书
计算方法实验指导书
河北大学电子信息工程学院
2007年9月
计算方法实验教学计划…………………………………………………………2
实验一MATLAB基本操作……………………………………………………..3
实验二插值法…………………………………………………………………..5
实验三线性方程组的直接解法………………………………………………..7
实验四线性方程组的迭代方法………………………………………………10
实验五函数逼近与曲线拟合…………………………………………….….12
计算方法实验教学计划
指导教师:
李昆仑
学时数:
10学时周4学时2次实验,共3周6次实验,第7—9教学周,
每次实验2学时
所用仪器设备:
实验软件系统
实验指导书:
Matlab实验指导书自编
实验参考书:
《计算方法》,徐萃薇等编着,高等教育出版社,
《数值分析与实验》,薛毅编着,北京工业大学出版社,
实验项目:
A,MATLAB基本操作
内容:
矩阵操作,基本数学函数,逻辑函数操作等;
要求:
完成一些基本练习题
B,插值法
内容:
Lagrange插值、分段线性插值、三次样条在计算机上用MATLAB软件实现
要求:
完成一些基本练习题
C,线性方程组的求解——直接解法
内容:
高斯消元法,列主元素法及其误差分析等在计算机上用MATLAB软件实现。
要求:
用实例在计算机上计算和作图。
D,线性方程组的求解——迭代法
内容:
向量和矩阵的范数,雅可比迭代法,高斯-赛德尔迭代法及其收敛性等在计算机上用MATLAB软件实现。
要求:
用实例在计算机上计算。
E,函数逼近与曲线拟合
内容:
曲线拟和与最小二乘方法在计算机上用MATLAB软件实现,并用实例在计算机上计算和作图。
要求:
用实例在计算机上计算。
实验一MATLAB基本操作
实验目的
熟悉MATLAB的使用方法及特点;学会建立MATLAB搜索路径;熟悉MATLAB工作空间、MATLAB集成环境、命令窗口;掌握MATLAB的通用命令、管理命令和函数、管理变量和工作空间的使用方法;
掌握MATLAB基本操作及矩阵基础知识,包括:
输入矩阵、矩阵的转置、矩阵元素求和、矩阵下际、矩阵连接、矩阵行列删除、矩阵产生和操作、逻辑和关系运算、操作符和特殊字符、基本矩阵和矩阵操作、基本矩阵和阵列;掌握特殊变量和常数;掌握基本数学函数。
二、实验内容
利用基本矩阵产生3x3和15x8的单位阵,全1阵,全0阵,均匀分布的随机阵([-1,1]之间),正态分布随机阵(方差4,均值1)
2.利用diag()函数和rot90()产生下列矩阵:
008204
a=0-75b=050
230708
然后求解a阵的逆矩阵aa及b阵的特征值和对应特征向量,并利用reshape将aa阵变换成行向量。
产生一均匀分布在(-5,5)随机阵(50x2),精确到小数点后一位。
4.编程实现当α∈[-π,π],间隔为1o时,求解正弦和余弦的值,并利用plot()函数绘制正弦,余弦曲线。
5.利用rand函数产生(0,1)间均匀分布的10x10随机矩阵a,然后统计a中大于等于的元素个数。
6.利用randn函数产生均值为0,方差为1的10x10正态分布随机阵,然后统计其中大于,小于的元素个数。
7.编程实现下表功能:
ab
b<=
b>
a<1
显示‘case1’
显示‘case2’
a>=1
显示‘case3’
显示‘error’
8.有一矩阵a,找出矩阵中其值大于1的元素,并将他们重新排列成列向量b。
9.在一保定市区9月份平均气温变化测量矩阵temp_Baoding_sep中(48x30),存在有奇异值(大于42oC,小于0oC),编程实现删除奇异值所在的行。
10.在给定的100x100矩阵中,删除整行内容全为0的行,删除整列内容全为0的列。
三、实验要求
要求在实验前必须预习,将实验内容事先准备好,否则不允许上机。
上机过程中由指导老师检查结果后方可做其他内容。
每次实验结束后完成实验报告并在下次实验之前由学委统一交给指导教师。
实验二插值法
一、实验目的和要求
(1)学会Langrange插值、Newton插值和Hermite插值等基本插值方法.
(2)学会Matlab提供的插值函数的使用方法,会用这些函数解决实际问题
(3)按照题目要求完成实验内容、写出相应的Matlab程序给出实验结果.
(4)对实验结果进行分析讨论.
(5)写出相应的实验报告.
实验内容
1.Lagrange插值公式.
Matlab程序:
按照Lagrange插值公式编写Matlab程序(函数名:
functionyi=agrange(x,y,xi)
%Lagrange插值多项式,其中,
%x为向量,全部的插值节点;
%y为向量,插值节点处的函数值;
%xi为标量,被估计函数的自变量:
%yi为xi处的函数估计值.
n=length(x);m=1ength(y);
%输入的插值点与它的函数值应有相同的个数
ifn~=m
error('ThelengthofXmustbeequal!
');
return;
end
p=zeros(1,n);
fork=1:
n
t=ones(1,n);
forj=1:
n
ifj~=k
%输入的插值节点必须互异
ifabs(x(k)—x(j)) error('theDATAiserroe! '); return; end end p(k)=prod(t); end yi=sum(y.*p); 练习1: 已知,,,利用Lagrange插值法求的值。 练习2: 已知,,,利用Newton插值法求的值,并与上题的结果进行比较。 三、实验要求 要求在实验前必须预习,将实验内容事先准备好,否则不允许上机。 上机过程中由指导老师检查结果后方可做其他内容。 每次实验结束后完成实验报告并在下次实验之前由学委统一交给指导教师。 实验三线性方程组的直接解法 实验目的 (1)学会用Gauss消去法和Matab函数求线性方程组解。 (2)学会对矩阵进行各种分解,如LU分解、Cholskey分解等,并研究相应的Matlab函数。 (3)按照题日要求完成实验内容,写出相应的Matlab程序,给出实验结果.对实验结果进行分析讨论.写出相应的实验报告. 二、实验内容 1.按照Gauss列主元消去法的算法写出其Matlab程序()。 Matlab程序 function[x,det,index]=Gauss(A,b)) %求线性方程组的列主元Gauss消去法,其中, %A为方程组的系数矩阵; %b为方程组的右瑞项; %x为方程组的解; %det为系数矩阵A的行列式的值; %index为指标变量,index=0表示计算失败,index=1表示计算成功. [n,m]=size(A);nb=length(b); %当方程纽行与列的维数不相等时,停止计算,并输出出错信息. ifn~=m error('TherowsandcolumnsofmatrixAmustbeequal'); return end %当方程组与右瑞项的维数不匹配时,停止计算,并输出出错信息 ifm~=nb error('ThecolumnsofAmustbeequalthelengthofb! '); return; end %开始计算,先赋初值 index=1;det=1;x=zeros(n,1); fork=1: n-1 %选主元 a_max=0 fori=k: n ifabs(A(i,k))>a_max a_max=abs(A(i,k));r=i; end end ifa_max<1e-10 index=0;return; end %交换两行 ifr>k forj=k: n z=A(k,j);A(k,j)=A(r,j);A(r,j)=z; end %消元过程 fori=k+11: H m=A(i,k)/A(k,L); fori=k十1: n m=A(i,k)/A(k,k); forj=k+1: n A(i,j)=A(i,j)-m*A(k,j); end b(i)=b(i)-m*b(k); end det=det*A(k,k); end det=det*A(n,n); %回代过程 ifabs(A(n,n))<1e-10 index=0;return; end fork=n: -1: 1 forj=k+1: n b(k)=b(k)-A(k,j)*x(j) end x(k)=b(k)/A(k,k) end 练习题1: 用列主元法求解线性方程组 注意: 在Matlab函数中,求解线性方程组的命令非常简单。 只需使用矩阵除法。 如X=A\b,或利用矩阵的逆X=inv(A)*b。 而求行列式的函数为det(A).请同学自行比较计算结果。 练习题2: 编写Matlab程序,求列矩阵的LU分解。 三、实验要求 要求在实验前必须预习,将实验内容事先准备好,否则不允许上机。 上机过程中由指导老师检查结果后方可做其他内容。 每次实验结束后完成实验报告并在下次实验之前由学委统一交给指导教师。 实验四线性方程组的迭代解法 实验目的 (1)学会用Jacobi迭代法、Gauss-Seidel迭代法和超松弛迭代法求线性方程组解 (2)学会对各种迭代法作收敛性分析,研究求方程组解的最优迭代方法. (3)按照题目要求完成实验内容,写出相应的Matlab程序,给出实验结果. (4)对实验结果进行分析讨论. (5)写出相应的实验报告. 二、实验内容 1.熟悉Jacobi迭代法,并编写Matlab程序 matlab程序 按照算法(Jacobi迭代法)编写Matlab程序 function[x,k,index]=Jacobi(A,b,ep,it_max) %求解线性方程组的Jacobi迭代法,其中, %A为方程组的系数矩阵; %b为方程组的右端项; %ep为精度要求,缺省值1e-5; %it_max为最大选代次数,缺省值100; %x为方程组的解; %k为迭代次数; %index为指标变量index=1表示迭代收敛到指定要求, %,index=0表示迭代失败. ifnargin<4it_max=100;end ifnargin<3ep=1e-5;end n=length(A);k=0; x=zeros(n,1);y=x;index=1; whilel fori=1: n y(i)=b(i) forj=1: n ifj=i y(i)=y(i)-A(i,j)*x(j); end end ifabs(A(i,i))<1e-10|k==it_max index=0;return; end y(i)=y(i)/A(i,i); end ifnorm(y-x,inf) break; end e=y;k=k+1; end 2.熟悉Gauss-Seidel迭代法,并编写Matlab程序 3.练习 练习题1.用Jacobi迭代法求方程组 的解。 练习题2.用Gauss-Seidel迭代法求解上题的线性方程组,取。 三、实验要求 要求在实验前必须预习,将实验内容事先准备好,否则不允许上机。 上机过程中由指导老师检查结果后方可做其他内容。 每次实验结束后完成实验报告并在下次实验之前由学委统一交给指导教师。 实验五函数逼近与数据拟合 实验目的 (1)学会函数的最佳平方逼近,理解最佳平方逼近的意义. (2)学会数据的最小二乘拟合. (3)按照题目要求完成实验内容,写出相应的Matlab程序,给出实验结果. (4)对实验结果进行分析讨论. (5)写出相应的实验报告. 二、实验内容 1.最小二乘算法Matlab程序 算法: (1)输入数据和权系数选择函数逼近系。 (2)求解法方程组。 (3)求出最小二乘逼近。 Matlab程序: 编写成Matlab程序(函数名: 计算数据最小二乘拟合系数. functionS=square_least(x,y,n,w) %数据的最小二乘拟合,其中 %x,y为数据的(x,y)坐标; %n为数据拟合的次数,缺省时n=1; %w为权值,缺省值w=1; %S为数据拟合的系数; %需要另写的外部函数. %phi(x)为基函数,通常为多项式1,x,x^2,... global;global; ifnargin<4w=1;end ifnargin<3n=1;end phi2=zeros(n+1); fori=0: n fori=0: n phi2(i+1,j+1)=sum(w.*phi_k(x,i)).*phi_k(x,j); end end phiF=zeros(n+1,1); end S=phi\phiF 1.数据的最小二乘拟和 假定某天的气温变化记录如表所示 时间(t) 0 1 2 3 4 5 6 7 8 9 10 11 12 温度(x(t)) 15 14 14 14 14 15 16 18 20 22 23 25 28 时间(t) 13 14 15 16 17 18 19 20 21 22 23 24 温度(x(t)) 31 32 31 29 27 25 24 22 20 18 17 16 试用最小二乘法确定这一天的气温变化规律。 三、实验要求 要求在实验前必须预习,将实验内容事先准备好,否则不允许上机。 上机过程中由指导老师检查结果后方可做其他内容。 每次实验结束后完成实验报告并在下次实验之前由学委统一交给指导教师。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算方法 实验 指导书