计算方法实验指导书

  • 格式:doc
  • 大小:93.01 KB
  • 文档页数:14

计算方法实验指导书 河北大学电子信息工程学院 2007年9月 1

目 录 计算方法实验教学计划…………………………………………………………2 实验一MATLAB基本操作……………………………………………………..3 实验二 插值法…………………………………………………………………..5 实验三 线性方程组的直接解法………………………………………………..7 实验四 线性方程组的迭代方法………………………………………………10 实验五 函数逼近与曲线拟合……………………………………………. …. 12 2

计算方法实验教学计划 指导教师:李昆仑 学时数:10学时 周4学时2次实验,共3周6次实验,第7—9教学周, 每次实验2学时 所用仪器设备:MATLAB7.0实验软件系统 实验指导书:Matlab实验指导书 自编 实验参考书: 《计算方法》, 徐萃薇等编著,高等教育出版社,2003.7 《数值分析与实验》,薛毅编著,北京工业大学出版社,2005.3 实验项目: A, MATLAB基本操作 内容:矩阵操作,基本数学函数,逻辑函数操作等; 要求:完成一些基本练习题 B, 插值法 内容:Lagrange插值、分段线性插值、三次样条在计算机上用MATLAB软件实现 要求:完成一些基本练习题 C, 线性方程组的求解——直接解法 内容:高斯消元法,列主元素法及其误差分析等在计算机上用MATLAB软件实现。 要求:用实例在计算机上计算和作图。 D, 线性方程组的求解——迭代法 内容:向量和矩阵的范数,雅可比迭代法,高斯-赛德尔迭代法及其收敛性等在计算机上用MATLAB软件实现。 要求:用实例在计算机上计算。 E, 函数逼近与曲线拟合 内容:曲线拟和与最小二乘方法在计算机上用MATLAB软件实现,并用实例在计算机上计算和作图。 要求:用实例在计算机上计算。 3

实验一 MATLAB基本操作 一、 实验目的 1. 熟悉MATLAB的使用方法及特点;学会建立MATLAB搜索路径;熟悉MATLAB工作空间、MATLAB集成环境、命令窗口;掌握MATLAB的通用命令、管理命令和函数、管理变量和工作空间的使用方法; 2. 掌握MATLAB基本操作及矩阵基础知识,包括:输入矩阵、矩阵的转置、矩阵元素求和、矩阵下际、矩阵连接、矩阵行列删除、矩阵产生和操作、逻辑和关系运算、操作符和特殊字符、基本矩阵和矩阵操作、基本矩阵和阵列;掌握特殊变量和常数;掌握基本数学函数。 二、实验内容

1. 利用基本矩阵产生3x3和15x8的单位阵,全1阵,全0阵,均匀分布的随机阵([-1,1]之间),正态分布随机阵(方差4,均值1) 2.利用diag()函数和rot90()产生下列矩阵: 0 0 8 2 0 4 a= 0 -7 5 b= 0 5 0 2 3 0 7 0 8 然后求解a阵的逆矩阵aa及b阵的特征值和对应特征向量,并利用reshape将aa阵变换成行向量。 3. 产生一均匀分布在(-5,5)随机阵(50x2),精确到小数点后一位。

4.编程实现当α∈[-π,π],间隔为1o时,求解正弦和余弦的值,并利用plot()函数绘制正弦,余弦曲线。 5.利用rand函数产生(0,1)间均匀分布的10x10随机矩阵a,然后统计a中大于等于0.6的元素个数。 6.利用randn函数产生均值为0,方差为1的10x10正态分布随机阵,然后统计其中大于-0.5,小于0.5的元素个数。 7.编程实现下表功能: 4

a b b<=0.5 b>0.5 a<1 显示‘case 1’ 显示‘case 2’

a>=1 显示‘case 3’ 显示‘error’ 8.有一矩阵a,找出矩阵中其值大于1的元素,并将他们重新排列成列向量b。 9.在一保定市区9月份平均气温变化测量矩阵temp_Baoding_sep中(48x30),存在

有奇异值(大于42o C,小于0o C),编程实现删除奇异值所在的行。 10.在给定的100x100矩阵中,删除整行内容全为0的行,删除整列内容全为0的列。 三、实验要求 要求在实验前必须预习,将实验内容事先准备好,否则不允许上机。 上机过程中由指导老师检查结果后方可做其他内容。每次实验结束后完成实验报告并在下次实验之前由学委统一交给指导教师。 5

实验二 插值法 一、实验目的和要求 (1)学会Langrange插值、Newton插值和Hermite插值等基本插值方法. (2)学会Matlab提供的插值函数的使用方法,会用这些函数解决实际问题 (3) 按照题目要求完成实验内容、写出相应的Matlab程序给出实验结果. (4)对实验结果进行分析讨论. (5)写出相应的实验报告. 二、 实验内容

1. Lagrange插值公式. Matlab 程序: 按照Lagrange插值公式编写Matlab程序(函数名:Lagrange.m) function yi=agrange(x,y,xi) %Lagrange插值多项式,其中, %x为向量,全部的插值节点; %y为向量,插值节点处的函数值; %xi为标量,被估计函数的自变量: %yi为xi处的函数估计值. n=length(x);m=1ength(y); %输入的插值点与它的函数值应有相同的个数 ifn~=m error('The length of X must be equal!'); return; end p=zeros(1,n); for k=1:n t=ones(1,n); for j=1:n 6

if j~=k %输入的插值节点必须互异 if abs(x(k)—x(j))< eps error('the DATA is erroe!'); return; end end p(k)=prod(t); end yi=sum(y.*p);

练习1:已知11,42,93,利用Lagrange插值法求5的值。 练习2:已知11,42,93,利用Newton插值法求5的值,并与上题的结果进行比较。

三、实验要求 要求在实验前必须预习,将实验内容事先准备好,否则不允许上机。 上机过程中由指导老师检查结果后方可做其他内容。每次实验结束后完成实验报告并在下次实验之前由学委统一交给指导教师。 7

实验三 线性方程组的直接解法 一、 实验目的 (1)学会用Gauss消去法和Matab函数求线性方程组解。 (2)学会对矩阵进行各种分解,如LU分解、Cholskey分解等,并研究相应的Matlab函数。 (3) 按照题日要求完成实验内容,写出相应的Matlab程序,给出实验结果.对实验结果进行分析讨论.写出相应的实验报告. 二、实验内容

1. 按照Gauss列主元消去法的算法写出其Matlab程序(Gauss.m)。 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); %当方程纽行与列的维数不相等时,停止计算,并输出出错信息. if n~ = m error('The rows and columns of matrix A must be equal'); return end %当方程组与右瑞项的维数不匹配时,停止计算,并输出出错信息 if m~ = nb error('The columns of A must be equal the length of b!'); return; 8

end %开始计算, 先赋初值 index=1; det=1; x=zeros(n,1); for k=1:n-1 %选主元 a_max=0 for i=k:n if abs(A(i,k))>a_max a_max=abs(A(i,k)); r=i; end end if a_max< 1e-10 index=0; return; end %交换两行 if r>k for j=k:n z=A(k,j);A(k,j)=A(r,j);A(r,j)=z; end %消元过程 for i=k+11:H m=A(i,k)/A(k,L); for i=k十1:n m=A(i,k)/A(k,k); for j=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);