重庆大学数值分析实验.doc
《重庆大学数值分析实验.doc》由会员分享,可在线阅读,更多相关《重庆大学数值分析实验.doc(153页珍藏版)》请在沃文网上搜索。
1、数值分析实验何光辉数理学院数学实验教学中心2008年3月目 录0 Matlab介绍入门知识31 绪论161.1 例题解答161.2 Matlab中数值计算精度192 线性方程组的直接解法202.1 例题解答202.2 Matlab解线性方程组常用命令介绍343 线性方程组的迭代解法353.1 例题解答353.2 Matlab迭代解法用到的函数介绍484 方阵特征值和特征向量的计算484.1 例题解答484.2 Matlab关于方阵特征值为特征向量函数介绍565 非线性方程求根575.1 例题解答575.2 Matlab非线性方程求根的命令796 插值法796.1 例题解答796.2 Matla
2、b插值函数介绍957 数据拟合和最佳平方逼近967.1 例题解答967.2 Matlab数据拟合命令介绍1068 数值积分与数值微分1078.1 例题解答1079 常微分方程数值解法1309.1 例题解答1309.2 Matlab常微分方程数值解常用命令介绍1460 Matlab介绍入门知识1. Matlab简介MATLAB的含义是矩阵实验室(MATRIX LABORATORY),主要用于方便矩阵的存取,其基本元素是无须定义维数的矩阵.MATLAB自问世以来,就是以数值计算称.MATLAB进行数值计算的基本单位是复数数组(或称阵列),这使得MATLAB高度“向量化”.经过十几年的完善和扩充,现
3、已发展成为线性代数课程的标准工具.由于它不需定义数组的维数,并给出矩阵函数、特殊矩阵专门的库函数,使之在求解诸如信号处理、建模、系统识别、控制、优化等领域的问题时,显得大为简捷、高效、方便,这是其它高级语言所不能比拟的.MATLAB中包括了被称作工具箱(TOOLBOX)的各类应用问题的求解工具.工具箱实际上是对MATLAB进行扩展应用的一系列MATLAB函数(称为M文件),它可用来求解各类学科的问题,包括信号处理、图象处理、控制系统辨识、神经网络等.随着MATLAB版本的不断升级,其所含的工具箱的功能也越来越丰富,因此,应用范围也越来越广泛,MATLAB提供的工具箱已覆盖信号处理、系统控制、统
4、计计算、优化计算、神经网络、小波分析、偏微分方程、模糊逻辑、动态系统模拟、系统辨识和符号运算等领域.当前它的使用范围涵盖了工业、电子、医疗、建筑等各行各业.MATLAB中包括了图形界面编辑GUI,让使用者也可以象VB、VC、VJ、DELPHI等那样进行一般的可视化的程序编辑.在命令窗口(matlab command window)键入simulink,就出现(SIMULINK) 窗口.以往十分困难的系统仿真问题,用SIMULINK只需拖动鼠标即可轻而易举地解决问题,这也是近来受到重视的原因所在. MATLAB 语言由美国 The MathWorks 开发,最早是由C.Moler用Fortran
5、语言编写的,用来方便地调用LINPACK和EISPACK矩阵代数软件包的程序.后来他创立了MATHHWORKS公司,对MATLAB作了大量的、坚持不懈的改进.Cleve B.Moler是The MathWork公司的主席和首席科学家.曾任密歇系教授.他在两个计算机硬件制造商Intel公司的Hypercube组织和Arden Computers 公司工作了五年.他的主要专业兴趣在于数值分析和科学计算.他是MATLAB软件的创始者,也是著名的矩阵计算软件包LINPACK和EISPACK的著作这一,已撰写了三本有相关数值方法的教材.同时,他在SIAM(美国工业与应用数学学会)历任期刊编辑、委员会成员
6、和副总裁,并从1996年开始担任理事会成员.2. Matlab入门知识Matlab变量名是以字母开头,后接字母、数字或下划线的字符序列,最多63个字符.在MATLAB中,变量名区分字母的大小写.赋值语句:变量=表达式 或 表达式其中表达式是用运算符将有关运算量连接起来的式子,其结果是一个矩阵.clear命令用于删除MATLAB工作空间中的变量.who和whos这两个命令用于显示在MATLAB工作空间中已经驻留的变量名清单.who命令只显示出驻留变量的名称,whos在给出变量名的同时,还给出它们的大小、所占字节数及数据类型等信息.利用MAT文件可以把当前MATLAB工作空间中的一些有用变量长久地
7、保留下来,扩展名是.mat.MAT文件的生成和装入由save和load命令来完成.常用格式为:save 文件名 变量名表 -append-asciiload 文件名 变量名表 -ascii其中,文件名可以带路径,但不需带扩展名.mat,命令隐含一定对.mat文件进行操作.变量名表中的变量个数不限,只要内存或文件中存在即可,变量名之间以空格分隔.当变量名表省略时,保存或装入全部变量.-ascii选项使文件以ASCII格式处理,省略该选项时文件将以二进制格式处理.save命令中的-append选项控制将变量追加到MAT文件中.(1) 向量的创建用步长生成法:数组=初值:步长(增量):终值 a=1:
8、0.5:3a =1.0000 1.5000 2.0000 2.5000 3.0000用linspace生成:数组=linspace(初值,终值,等分点数目) b=linspace(1,3,5)b =1.0000 1.5000 2.0000 2.5000 3.0000列向量用分号(;)作为分行标记: c=1;2;3;4;c = 1 2 3 4若不想输出结果,在每一条语句后用分号作为结束符,若留空或用逗号结束,则在执行该语句后会把结果输出来. a+b; a+bans = 2 3 4 5 6(2) 矩阵的创建直接输入:最简单的建立矩阵的方法是从键盘直接输入矩阵的元素.具体方法如下:将矩阵的元素用方括
9、号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用空格或逗号分隔,不同行的元素之间用分号分隔. A=1 2 3;4 5 6;2 3 5A = 1 2 3 4 5 6 2 3 5利用矩阵函数创建: B=magic(3)%魔方阵B = 8 1 6 3 5 7 4 9 2 C=hilb(3)%3阶Hilbert矩阵C = 1.0000 0.5000 0.3333 0.5000 0.3333 0.25000.3333 0.2500 0.2000Matlab中用%引导注释其它创建矩阵函数还有:eye(m,n):生成m行n列单位矩阵.zeros(m,n):生成m行n列全零矩阵.ones(m,n):生
10、成全1矩阵.rand(m,n):生成随机矩阵.rand:生成一个随机数.diag(A):取A的对角线元素.tril(A):取A的下三角元素.triu(A):取A的上三角元素.hilb(n):生成n维Hilbert矩阵.randn(n):产生均值为0,方差为1的标准正态分布随机矩阵.vander(V):生成以向量V为基础向量的范得蒙矩阵.invhilb(n): 求n阶的希尔伯特矩阵的逆矩阵.toeplitz(x,y): 生成一个以x为第一列,y为第一行的托普利兹矩阵compan(p): 生成伴随矩阵, p是一个多项式的系数向量,高次幂系数排在前,低次幂排在后.pascal(n): 生成一个n阶帕
11、斯卡矩阵.compan: 生成伴随矩阵(3) 矩阵运算MATLAB的基本算术运算有:(加)、(减)、*(乘)、/(右除)、(左除)、(乘方).加法: A+Bans = 9 3 9 7 10 13 6 12 7减法: B-Aans = 7 -1 3 -1 0 1 2 6 -3乘法: A*Bans = 26 38 26 71 83 7145 62 43除法: magic(3)/hilb(3)ans = 1.0e+003 * 0.2160 -1.1760 1.1400 0.0570 -0.4080 0.4500 -0.2280 1.2240 -1.1400在MATLAB中,有一种特殊的运算,因为其运
12、算符是在有关算术运算符前面加点,所以叫点运算.点运算符有.*、./、.和.两矩阵进行点运算是指它们的对应元素进行相关运算,要求两矩阵的维参数相同. A.*Bans = 8 2 18 12 25 42 8 27 10MATLAB提供了6种关系运算符:(小于)、(大于)、=(大于或等于)、=(等于)、=(不等于). ABans = 0 1 0 1 0 0 0 0 1MATLAB提供了3种逻辑运算符:&(与)、|(或)和(非). 在逻辑运算中,确认非零元素为真,用1表示,零元素为假,用0表示.设参与逻辑运算的是两个标量a和b,那么, a&b a,b全为非零时,运算结果为1,否则为0. a|b a,b
13、中只要有一个非零,运算结果为1. a 当a是零时,运算结果为1;当a非零时,运算结果为0.3. 矩阵操作和矩阵函数矩阵通过下标引用矩阵的元素,矩阵元素的序号就是相应元素在内存中的排列顺序.在MATLAB中,矩阵元素按列存储,先第一列,再第二列,依次类推.(1) 矩阵拆分利用冒号表达式获得子矩阵.A(:,j)表示取A矩阵的第j列全部元素;A(i,:)表示A矩阵第i行的全部元素;A(i,j)表示取A矩阵第i行、第j列的元素.A(i:i+m,:)表示取A矩阵第ii+m行的全部元素;A(:,k:k+m)表示取A矩阵第kk+m列的全部元素,A(i:i+m,k:k+m)表示取A矩阵第ii+m行内,并在第k
14、k+m列中的所有元素.此外,还可利用一般向量和end运算符来表示矩阵下标,从而获得子矩阵.end表示某一维的末尾元素下标.(2) 利用空矩阵删除矩阵的元素在MATLAB中,定义为空矩阵.给变量X赋空矩阵的语句为X=.(3) 矩阵的转置转置运算符是单撇号().(4) 矩阵的旋转利用函数rot90(A,k)将矩阵A旋转90o的k倍,当k为1时可省略.(5) 矩阵的左右翻转对矩阵实施左右翻转是将原矩阵的第一列和最后一列调换,第二列和倒数第二列调换,依次类推.MATLAB对矩阵A实施左右翻转的函数是fliplr(A).(6) 矩阵的上下翻转MATLAB对矩阵A实施上下翻转的函数是flipud(A).(
15、7) 方阵A的逆矩阵inv(A) A=magic(3)A = 8 1 6 3 5 7 4 9 2 B=inv(A)B = 0.1472 -0.1444 0.0639 -0.0611 0.0222 0.1056 -0.0194 0.1889 -0.1028 A*Bans = 1.0000 0 -0.0000 -0.0000 1.0000 00.0000 0 1.0000(8) 方阵的行列式 det(A)ans = -360(9) 矩阵的迹 C=trace(A)C =15(10) 一些常用的基本初等三角函数三角函数:sin(x),cos(x),tan(x)反三角函数:asin(x),acos(x)
16、,atan(x)指数函数:exp(x)自然对数:log(x)常用对数:log10(x)以2为底的对数:log2(x)开平方:sqrt(x)绝对值:abs(x)计算一般函数值:eval(f)求虚部函数: imag(x)求实部函数: real(x)角相位函数:angle(x)共轭复数函数:conj(x)沿零方向取整 :fix (x)舍入取整:round(x)沿负无穷大方向取整:floor (x)沿正无穷大方向取整:ceil(x)求除法的余数: rem 符号函数:sign(x)最大公约数:gcd()4. 图形可视化(1) 二维绘图指令plotplot函数的基本调用格式为:plot(x,y,)其中x和
17、y为长度相同的向量,分别用于存储x坐标和y坐标数据.plot(x)plot函数最简单的调用格式.当x是实向量时,以该向量元素的下标为横坐标,元素值为纵坐标画出一条连续曲线.实际上是绘制折线图.plot(x1,y1,x2,y2,xn,yn)当输入参数都为向量时,x1和y1,x2和y2,xn和yn分别组成一组向量对,每一组向量对的长度可以不同.每一向量对可以绘制出一条曲线,可以在同一坐标内绘制出多条曲线.plotyy(x1,y1,x2,y2)绘制出具有不同纵坐标标度的两个图形.hold on/off保持原有图形还是刷新原有图形,不带参数的hold命令在两种状态之间进行切换.plot(x1,y1,选
18、项1,x2,y2,选项2,xn,yn,选项n)设置曲线样式进行绘图.选项字段见下表:表 Matlab常用线形与颜色标记表符号线型符号线型符号线型颜色含义-实线.实点标记朝上三角g绿色-虚线o圆圈朝右三角c青色-.点划线+加号p五角星m洋红*星号h六角形y黄色s方块k黑色d菱形w白色v朝下三角b蓝色(2) 图形标注:title(图形名称):图形标题xlabel(x轴说明)ylabel(y轴说明)text(x,y,图形说明)legend(图例1,图例2,)gtext(用鼠标确定位置的字符说明)(3) 坐标控制axis axis(xmin xmax ymin ymax zmin zmax)axis函
19、数功能丰富,常用的格式还有:axis equal:纵、横坐标轴采用等长刻度.axis square:产生正方形坐标系(缺省为矩形).axis auto:使用缺省设置.axis off:取消坐标轴.axis on:显示坐标轴.grid on/off:网格开/关box on/off:加/不加边框线上述命令示例如下: x=1:length(peaks); plot(x,peaks); box on; title(绘制混合图形); xlabel(X轴); ylabel(Y轴);绘制图像为:(4) 二维数值函数的专用绘图函数fplotfplot(functionname,a,b,tol,选项)其中fun
20、ctionname为函数名,以字符串形式出现,a,b为绘图区间,tol为相对允许误差,其系统默认值为2e-3.选项定义与plot函数相同. fplot(x)tan(x),sin(x),cos(x), 2*pi*-1 1 -1 1);(5) 二维符号函数曲线专用命令ezplotf = f(x)时:ezplot(f):在默认区间-2x2绘制f = f(x)的图形.ezplot(f, a,b):在区间axb绘制f = f(x)的图形f = f(x,y)时:ezplot(f):在默认区间-2x2和-2y2绘制f(x,y) = 0的图形.ezplot(f, xmin,xmax,ymin,ymax):在区
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
10 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 重庆大学 数值 分析 实验