1、河南城建学院第 1 页一 熟悉 Matlab 工作环境1、熟悉 Matlab 的 5 个基本窗口思考题:(1)变量如何声明,变量名须遵守什么规则、是否区分大小写。答:变量一般不需事先对变量的数据类型进行声明,系统会依据变量被赋值的类型自动进行类型识别,也就是说变量可以直接赋值而不用提前声明。变量名要遵守以下几条规则:变量名必须以字母开头,只能由字母、数字或下划线组成。变量名区分大小写。变量名不能超过 63 个字符。关键字不能作为变量名。最好不要用特殊常量作为变量名。(2)试说明分号、逗号、冒号的用法。分号:分隔不想显示计算结果的各语句;矩阵行与行的分隔符。逗号:分隔欲显示计算结果的各语句;变量
2、分隔符;矩阵一行中各元素间的分隔符。冒号:用于生成一维数值数组;表示一维数组的全部元素或多维数组某一维的全部元素。(3)linspace()称为“线性等分”函数,说明它的用法。LINSPACE Linearly spaced vector. 线性等分函数LINSPACE(X1, X2) generates a row vector of 100 linearlyequally spaced points between X1 and X2.以 X1 为首元素,X2 为末元素平均生成 100 个元素的行向量。LINSPACE(X1, X2, N) generates N points betwe
3、en X1 and X2.For N pians =3.1416 sin(pi); exist(pi)ans =5 pi=0; exist(pi)ans =1 pipi =0 clear exist(pi)ans =5 pians =3.1416答:3 次执行的结果不一样。exist()函数是返回变量搜索顺序的一个函数。在第一次执行时返回 5 代表变量 pi 是由 Matlab 构建的变量。在第二次执行时已经通过赋值语句定义了变量 pi,返回 1 代表 pi 是工作空间变量。第三次执行前清除了工作空间,此时 pi 为系统默认常量,和第一次执行时性质一样,所以又返回 5。(2)圆周率 pi 是系
4、统默认常量,为什么会被改变为 0。pi=0 为赋值语句,此时 pi 不再是系统默认常量,而是定义的变量了。二 MATLAB 语言基础1、向量的生成和运算练习:使用 logspace()创建 14 的有 10 个元素的行向量。 A=logspace(0,1.0992,10)A =1.0000 1.3247 1.7550 2.3249 3.0799 4.0801 5.4051 7.1603 9.4856 12.56612、矩阵的创建、引用和运算(1)矩阵的创建和引用练习:创建以下矩阵:A 为 34 的全 1 矩阵、B 为 33 的 0 矩阵、C 为 33 的单位矩阵、D 为 33 的魔方阵、E 由
5、 C 和 D 纵向拼接而成、F 抽取 E 的 25 行元素生成、G 由 F 经变形为 34 的矩阵而得、以 G 为子矩阵用复制函数生成 68 的大矩阵 H。 A=ones(3,4),B=zeros(3,3),C=eye(3,3),D=magic(3)A = 1 1 1 1河南城建学院第 3 页1 1 1 11 1 1 1B =0 0 00 0 00 0 0C =1 0 00 1 00 0 1D =8 1 63 5 74 9 2 E=C;D, F=E(2:5,:), G=reshape(F,3,4)E =1 0 00 1 00 0 18 1 63 5 74 9 2F =0 1 00 0 18 1
6、 63 5 7G =0 3 1 10 1 5 68 0 0 7 H=repmat(G,2)H =0 3 1 1 0 3 1 10 1 5 6 0 1 5 68 0 0 7 8 0 0 70 3 1 1 0 3 1 1河南城建学院第 4 页0 1 5 6 0 1 5 68 0 0 7 8 0 0 72)矩阵运算练习:1)用矩阵除法求下列方程组的解 x=1;2;3;61+32+43=321+52+73=481233=7 A=6 3 4;-2 5 7;8 -1 -3,B=3;-4;-7A =6 3 4-2 5 78 -1 -3B =3-4-7 x=ABx =1.0200-14.00009.72002
7、)求矩阵的秩; r=rank(A)r =33)求矩阵的特征值与特征向量 X,Lamda=eig(A)X =0.8013 -0.1094 -0.16060.3638 -0.6564 0.86690.4749 0.7464 -0.4719Lamda =9.7326 0 00 -3.2928 00 0 1.56024)矩阵的乘幂(平方)与开方 A2ans =62 29 33河南城建学院第 5 页34 12 626 22 34 A1=sqrtm(A)A1 =2.2447 + 0.2706i 0.6974 - 0.1400i 0.9422 - 0.3494i-0.5815 + 1.6244i 2.100
8、5 - 0.8405i 1.7620 - 2.0970i1.9719 - 1.8471i -0.3017 + 0.9557i 0.0236 + 2.3845i5)矩阵的指数与对数(以 e 为底) Ae=expm(A)Ae =1.0e+004 *1.0653 0.5415 0.63230.4830 0.2465 0.28760.6316 0.3206 0.3745 Ael=logm(A)Ael =1.7129 + 0.4686i 0.5305 - 0.2425i 0.5429 - 0.6049i1.1938 + 2.8123i 0.3658 - 1.4552i -0.5514 - 3.6305i
9、-0.0748 - 3.1978i 0.7419 + 1.6546i 1.8333 + 4.1282i6)矩阵的提取(取右上三角)与翻转(逆时针转 90 度) a=triu(A)a =6 3 40 5 70 0 -3 a1=rot90(A)a1 =4 7 -33 5 -16 -2 83、多维数组的创建及运算练习:创建三维数组 A,第一页为 ,第二页为 ,第三页为 。然后用1 34 2 1 22 1 3 57 1reshape 函数重排为数组 B,B 为 3 行、2 列、2 页。 a=1 3;4 2,b=1 2;2 1,c=3 5;7 1河南城建学院第 6 页 A=cat(3,a,b,c)A(:
10、,:,1) =1 34 2A(:,:,2) =1 22 1A(:,:,3) =3 57 1 B=reshape(A,3,2,2)B(:,:,1) =1 24 13 2B(:,:,2) =2 71 53 1三 Matlab 数值运算1、多项式运算练习:求 的商及余多项式。(2+1)(+3)(+1)3+2+1 p1=conv(1 0 1,conv(1 3,1 1)p1 =1 4 4 4 3 q r=deconv(p1,1 0 2 1)q =1 4r =0 0 2 -5 -12、多形式插值和拟合有一组实验数据如附表1-1所示。请分别用拟合(二阶至三阶)和插值(线性和三次样条)的方法来估测X=9.5时
11、Y的值X 1 2 3 4 5 6 7 8 9 10Y 16 32 70 142 260 436 682 1010 1432 1960 x=1:10;y=16 32 70 142 260 436 682 1010 1432 1960; p1=polyfit(x,y,1)p1 =204.8000 -522.4000 y1=polyval(p1,9.5)河南城建学院第 7 页y1 =1.4232e+003 p2=polyfit(x,y,2),y2=polyval(p2,9.5)p2 =32.0000 -147.2000 181.6000y2 =1.6712e+003 p3=polyfit(x,y,3
12、),y3=polyval(p3,9.5)p3 =2.0000 -1.0000 5.0000 10.0000y3 =1.6820e+003 y4=interp1(x,y,9.5)y4 =1696 y5=spline(x,y,9.5)y5 =16823、习题(1)用函数 roots 求方程 的根21=0 roots(1 -1 -1)ans =-0.61801.6180(2) ,在 n 个节点(n 不要太大,如取 511)上用分段线性和三=, 02次样条插值方法,计算 m 个插值点(m 可取 50100)的函数值。通过数值和图形输出,将两种插值结果与精度进行比较。适当增加 n,再作比较。 x=lin
13、space(0,2*pi,8),y=sin(x)x =0 0.8976 1.7952 2.6928 3.5904 4.4880 5.3856 6.2832y =0 0.7818 0.9749 0.4339 -0.4339 -0.9749 -0.7818 -0.0000 xi=linspace(0,2*pi,100);y0=sin(xi);y1=interp1(x,y,xi);y2=interp1(x,y,xi,spline); plot(xi,y0,*,xi,y1,-.,xi,y2)河南城建学院第 8 页0 1 2 3 4 5 6 7-1-0.8-0.6-0.4-0.200.20.40.60.
14、81 e1=y1-y0;e2=y2-y0; plot(xi,e1)0 1 2 3 4 5 6 7-0.1-0.08-0.06-0.04-0.0200.020.040.060.080.1 plot(xi,e2)河南城建学院第 9 页0 1 2 3 4 5 6 7-0.015-0.01-0.00500.0050.010.015(3)大气压强 p 随高度 x 变化的理论公式为 ,为验证这一公=1.0332(+500)7756式,测得某地大气压强随高度变化的一组数据如表所示。试用插值法和拟合法进行计算并绘图,看那种方法较为合理,且总误差最小。高度/m 0 300 600 1000 1500 2000压
15、强/Pa 0.9689 0.9322 0.8969 0.8519 0.7989 0.7491插值法: x=0 300 600 1000 1500 2000; p=0.9689 0.9322 0.8969 0.8519 0.7989 0.7491; xi=linspace(0,2000);p0=1.0332*exp(-(xi+500)/7756); p1=interp1(x,p,xi,spline); plot(xi,p0,*,xi,p1) e1=p1-p0; e=sum(e1.2)e =1.8652e-005拟合法: x=0 300 600 1000 1500 2000; p=0.9689 0
16、.9322 0.8969 0.8519 0.7989 河南城建学院第 10 页0.7491; P=log10(p)P =-0.0137 -0.0305 -0.0473 -0.0696 -0.0975 -0.1255 p1=polyfit(x,P,1)p1 =-0.0001 -0.0137 b=p1(1)/0.4343,a=10.p1(2)b =-1.2863e-004a =0.9689 xi=linspace(0,2000);p0=1.0332*exp(-(xi+500)/7756); p2=polyval(p1,xi);P2=10.p2; e2=P2-p0;e=sum(e2.2)e =1.8116e-005