实验 MATLAB运行基础与入门练习_第1页
实验 MATLAB运行基础与入门练习_第2页
实验 MATLAB运行基础与入门练习_第3页
实验 MATLAB运行基础与入门练习_第4页
实验 MATLAB运行基础与入门练习_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验一 MATLAB运行基础与入门练习一、实验目的1. 熟悉MATLAB环境,并能简单设置工作环境。2. 熟悉MATLAB的工作界面,了解各个窗口的功能。3. 重点掌握指令窗的基本操作方式和常用操作指令。二、实验要求1. 按照实验步骤认真完成实验。2. 将每步操作所得结果与实验步骤中的结果相比较,加深理解。3. 完成实验报告,内容包括:实验名称、实验目的、附加练习的程序清单及运行结果;最后注明姓名、班级、学号,并按学号顺序排好。下次上课交齐。三、实验步骤1. MATLAB工作环境Desktop的启动方法一:双击桌面上的或matlab下的快捷方式图标方法二:双击matlabbinwin32中的m

2、atlab.exe比较两种启动方法在当前工作目录方面的区别。建议使用方法一。2. 用户目录的创建及当前工作目录的设置交互界面设置法:在MATLAB操作桌面找到当前目录设置区,点击浏览键,弹出浏览文件夹对话框。在对话框中选择D盘,并点击新建文件夹按钮,输入文件夹名。最后,确认将当前工作目录设置为新建的文件夹。指令设置法:利用Windows资源管理器在D盘建立自己的文件夹。例如:d:mydir。利用cd指令将新建的文件夹设置为当前工作目录。cd d:mydir提示:每次重新启动MATLAB环境都要重新设置当前工作目录。不必每次都新建文件夹,但是最好建立自己的文件夹,每次启动都把当前工作目录设置在这

3、个文件夹。这样所有操作产生的文件都会保存在自己的文件夹里,便于查找与保存。3. 课堂内容练习u 在指令窗中键入a=1,b=2,c=3观察工作空间浏览器中的变化。u 在工作空间浏览器中双击变量a,调出内存数组编辑器;将变量a改为2×5的数组。u 点击新建文件按钮,弹出M文件编辑/调试器,键入d=2,e=3,f=4保存文件为a1.m,并运行。【Debug:Run】观察工作空间浏览器中的变化。u 在指令窗中键入logo产生图形窗。试验图形窗功能:画箭头、直线,标注释,放大,缩小,旋转图形。u 在指令窗中键入demo产生演示窗口。演示MATLAB的各项功能:复函数绘图,二维、三维绘图等。u

4、求的算术运算结果(1)用键盘在MATLAB指令窗中输入以下内容(12+2*(7-4)/32(2)在上述表达式输入完成后,按【Enter】键,该就指令被执行。(3)在指令执行后,MATLAB指令窗中将显示以下结果。ans = 2 u 简单矩阵的输入步骤(1)在键盘上输入下列内容A = 1,2,3; 4,5,6; 7,8,9 (2)按【Enter】键,指令被执行。(3)在指令执行后,MATLAB指令窗中将显示以下结果:A = 1 2 3 4 5 6 7 8 9 注意:标点符号必须在英文状态下输入u 矩阵的分行输入A=1,2,34,5,67,8,9 (以下是显示结果)A = 1 2 3 4 5 6

5、7 8 9 u 指令的续行输入 (注意:续行符号前需有空格)S=1-1/2+1/3-1/4+1/5-1/6+1/7 .-1/8S =0.6345 u 复数表达,及计算(1)经典教科书的直角坐标表示法z1= 3 + 4i z1 = 3.0000 + 4.0000i (2)采用运算符构成的直角坐标表示法和极坐标表示法z2 = 1 + 2 * i%运算符构成的直角坐标表示法z2 = 1.0000 + 2.0000iz3=2*exp(i*pi/6)%运算符构成的极坐标表示法z3 = 1.7321 + 1.0000iz=z1*z2/z3 z = 0.3349 + 5.5801i u 复数矩阵的生成及运算

6、A=1,3;2,4-5,8;6,9*iA = 1.0000 - 5.0000i 3.0000 - 8.0000i 2.0000 - 6.0000i 4.0000 - 9.0000iB=1+5i,2+6i;3+8*i,4+9*iB = 1.0000 + 5.0000i 2.0000 + 6.0000i 3.0000 + 8.0000i 4.0000 + 9.0000i C=A*B C = 1.0e+002 * 0.9900 1.1600 - 0.0900i 1.1600 + 0.0900i 1.3700 u 求上例复数矩阵C的实部、虚部、模和相角C_real=real(C)C_imag=imag

7、(C)C_magnitude=abs(C)C_phase=angle(C)*180/pi%以度为单位计算相角 C_real = 99 116 116 137C_imag = 0 -9 9 0C_magnitude = 99.0000 116.3486 116.3486 137.0000C_phase = 0 -4.4365 4.4365 0 u 用MATLAB计算能得到2吗?(1)直接计算得到第一象限的根a=-8;r=a(1/3)r = 1.0000 + 1.7321i (2)的全部方根计算如下m=0,1,2; %因为有三个方根R=abs(a)(1/3); %模开三次方Theta=(angle

8、(a)+2*pi*m)/3; %三个相角rrr=R*exp(i*Theta) rrr = 1.0000 + 1.7321i -2.0000 + 0.0000i 1.0000 - 1.7321i (3)图形表示t=0:pi/20:2*pi;x=R*sin(t);y=R*cos(t);plot(x,y,'b:'),gridhold onplot(rrr(1),'.','MarkerSize',30,'Color','r')plot(rrr(2,3),'o','MarkerSize',15

9、,'Color','b')axis(-3,3,-3,3),axis squarehold off u 画出衰减振荡曲线及其它的包络线。的取值范围是t=0:pi/50:4*pi; %定义自变量取值数组y0=exp(-t/3); %计算与自变量相应的y0数组y=exp(-t/3).*sin(3*t); %计算与自变量相应的y数组plot(t,y,'-r',t,y0,':b',t,-y0,':b')%用不同颜色、线型绘制曲线grid %在“坐标纸”画小方格 u 画出所表示的三维曲面。的取值范围是clear;x=-8:0.

10、5:8;%定义自变量x的一维刻度向量y=x'%定义自变量y的一维刻度向量X=ones(size(y)*x;%计算自变量平面上取值点坐标的二维数组Y=y*ones(size(x);%计算自变量平面上取值点坐标的二维数组R=sqrt(X.2+Y.2)+eps;%计算中间变量Z=sin(R)./R;%计算与自变量二维数组相应的函数值mesh(Z);%绘制三维网格图colormap(hot) %指定网格图用hot色图绘制 4. 附加练习在MATLAB中运行指令(-32)(1/5)后,会得到-2吗?的全部方根有几个?写出计算全部方根的M脚本文件。实验二 数组构建与数组运算一、实验目的1. 熟练掌

11、握一维、二维数组的创建与寻访赋值。2. 理解数组运算与矩阵运算的含义,并能正确使用。3. 掌握关系运算和逻辑运算,并熟悉它们的应用。二、实验要求1. 按照实验步骤认真完成实验。2. 将每步操作所得结果与实验步骤中的结果相比较,加深理解。3. 完成实验报告,内容包括:实验名称、实验目的、附加练习的程序清单及运行结果;最后注明姓名、班级、学号,并按学号顺序排好。下次上课交齐。三、实验步骤1. MATLAB工作环境Desktop的启动双击桌面上的MATLAB6.5快捷方式,启动MATLAB环境。2. 设置当前工作目录运用实验一提供的方法,将当作工作目录设置为D盘自建的文件夹。3. 课堂内容练习u 一

12、维数组的创建(1)逐个元素输入x=2 pi/2 sqrt(3) 3+5ix = 2.0000 1.5708 1.7321 3.0000 + 5.0000i(2)冒号生成a=1:10a = 1 2 3 4 5 6 7 8 9 10(3)定数线性采样A=linspace(1,10,10)A = 1 2 3 4 5 6 7 8 9 10u 一维数组的子数组寻访和赋值(1)子数组的寻访(Address)rand('state',0)%把均匀分布伪随机发生器置为0状态x=rand(1,5)%产生的均布随机数组 x = 0.9501 0.2311 0.6068 0.4860 0.8913

13、x(3) %寻访数组x的第三个元素ans = 0.6068 x(1 2 5) %寻访数组x的第一、二、五个元素组成的子数组ans = 0.9501 0.2311 0.8913 x(3:end)%寻访除前2个元素外的全部其他元素。end是最后一个元素的下标ans = 0.6068 0.4860 0.8913 x(3:-1:1) %由前三个元素倒排构成的子数组 ans = 0.6068 0.2311 0.9501 x(find(x>0.5) %由大于0.5的元素构成的子数组 ans =0.9501 0.6068 0.8913 (2)子数组的赋值(Assign)x(3) = 0 %把上例中的第

14、三个元素重新赋值为0 x = 0.9501 0.2311 0 0.4860 0.8913 x(1 4)=1 1 %把当前x数组的第一、四个元素都赋值为1x = 1.0000 0.2311 0 1.0000 0.8913 u 二维数组的创建:直接输入法(1)在MATLAB环境下,用下面三条指令创建二维数组Ca=2.7358; b=33/79;%这两条指令分别给变量 a ,b 赋值。C=1,2*a+i*b,b*sqrt(a);sin(pi/4),a+5*b,3.5+i %这条指令用于创建二维数组C C = 1.0000 5.4716 + 0.4177i 0.6909 0.7071 4.8244 3

15、.5000 + 1.0000i (2)复数数组的另一种输入方式M_r=1,2,3;4,5,6,M_i=11,12,13;14,15,16CN=M_r+i*M_i %由实部、虚部数组构成复数数组 M_r = 1 2 3 4 5 6M_i = 11 12 13 14 15 16CN = 1.0000 +11.0000i 2.0000 +12.0000i 3.0000 +13.0000i 4.0000 +14.0000i 5.0000 +15.0000i 6.0000 +16.0000i u 二维数组元素的“逻辑1”标识找出数组中所有绝对值大于3的元素。A=zeros(2,5);%预生成一个(2*5

16、)全零数组A(:)=-4:5%运用“全元素”赋值法获得AL=abs(A)>3%产生与A同维的“0-1”逻辑值数组islogical(L)%判断L是否逻辑值数组。输出若为1,则是。X=A(L)%把L中逻辑值1对应的A元素取出 A = -4 -2 0 2 4 -3 -1 1 3 5L = 1 0 0 0 1 0 0 0 0 1ans = 1X = -4 4 5 u 二维数组的子数组寻访和赋值A=zeros(2,4)%创建的全零数组 A = 0 0 0 0 0 0 0 0 A(:)=1:8%全元素赋值方式 A = 1 3 5 7 2 4 6 8 s=2 3 5;%产生单下标数组行数组A(s)%

17、由“单下标行数组”寻访产生A元素组成的行数组Sa=10 20 30'%Sa是长度为3的“列数组”A(s)=Sa%单下标方式赋值 ans = 2 3 5Sa = 10 20 30A = 1 20 30 7 10 4 6 8 A(:,2 3)=ones(2) %双下标赋值方式:把A的第2、3列元素全赋为1A = 1 1 1 7 10 1 1 8 u 数组运算和矩阵运算:两种不同转置的比较clear;A=zeros(2,3);A(:)=1:6;%全元素赋值法A=A*(1+i)%运用标量与数组乘产生复数矩阵A_A=A.'%数组转置,即非共轭转置A_M=A'%矩阵转置,即共轭转置

18、 A = 1.0000 + 1.0000i 3.0000 + 3.0000i 5.0000 + 5.0000i 2.0000 + 2.0000i 4.0000 + 4.0000i 6.0000 + 6.0000iA_A = 1.0000 + 1.0000i 2.0000 + 2.0000i 3.0000 + 3.0000i 4.0000 + 4.0000i 5.0000 + 5.0000i 6.0000 + 6.0000iA_M = 1.0000 - 1.0000i 2.0000 - 2.0000i 3.0000 - 3.0000i 4.0000 - 4.0000i 5.0000 - 5.00

19、00i 6.0000 - 6.0000i u 标准数组生成函数和数组操作函数(1)标准数组生成函数ones(1,2)%产生长度为2的全1行数组 ans = 1 1 ones(2)%产生的全1阵 ans = 1 1 1 1 randn('state',0)%把正态随机数发生器置0randn(2,3) %产生的正态随机阵 ans = -0.4326 0.1253 -1.1465 -1.6656 0.2877 1.1909 D=eye(3)%产生的单位阵 D = 1 0 0 0 1 0 0 0 1 diag(D)%取D阵的对角元 ans = 1 1 1 diag(diag(D)%内d

20、iag取D的对角元,外diag利用一维数组生成对角阵ans = 1 0 0 0 1 0 0 0 1 (2)数组操作函数a=-4:4%产生一维数组A=reshape(a,3,3)%把一维数组a重排成的二维数组 a = -4 -3 -2 -1 0 1 2 3 4A = -4 -1 2 -3 0 3 -2 1 4 u 高维数组的创建(1)“全下标”赋值法A(2,2,2)=1%单元素赋值创建数组 A(:,:,1) = 0 0 0 0A(:,:,2) = 0 0 0 1 B(2,5,:)=1:3%子数组赋值创建数组 B(:,:,1) = 0 0 0 0 0 0 0 0 0 1B(:,:,2) = 0 0

21、 0 0 0 0 0 0 0 2B(:,:,3) = 0 0 0 0 0 0 0 0 0 3 (2)低维数组合成高维数组clear,A=ones(2,3);A(:,:,2)=ones(2,3)*2;A(:,:,3)=ones(2,3)*3 A(:,:,1) = 1 1 1 1 1 1A(:,:,2) = 2 2 2 2 2 2A(:,:,3) = 3 3 3 3 3 3 (3)由函数ones, zeros, rand, randn创建rand('state',1111),rand(2,4,3) ans(:,:,1) = 0.6278 0.9748 0.2585 0.6949 0

22、.2544 0.2305 0.0313 0.1223ans(:,:,2) = 0.4889 0.3898 0.8489 0.0587 0.9138 0.3071 0.4260 0.6331ans(:,:,3) = 0.2802 0.2073 0.7438 0.2714 0.4051 0.2033 0.4566 0.2421 (4)由cat, repmat, reshape等函数构作cat(3,ones(2,3),ones(2,3)*2,ones(2,3)*3) ans(:,:,1) = 1 1 1 1 1 1ans(:,:,2) = 2 2 2 2 2 2ans(:,:,3) = 3 3 3

23、3 3 3 repmat(ones(2,3),1,1,3) ans(:,:,1) = 1 1 1 1 1 1ans(:,:,2) = 1 1 1 1 1 1ans(:,:,3) = 1 1 1 1 1 1 reshape(1:12,2,2,3) ans(:,:,1) = 1 3 2 4ans(:,:,2) = 5 7 6 8ans(:,:,3) = 9 1110 12 u 数组的维数、大小和长度clear;A=reshape(1:24,2,3,4);dim_A=ndims(A)%测量A的维数size_A=size(A)%测量A的大小L_A=length(A)%求A的长度 dim_A = 3si

24、ze_A = 2 3 4L_A = 4 u “孤维”的撤消和降维B=cat(4,A(:,:,1),A(:,:,2),A(:,:,3)%串接为4维数组 B(:,:,1,1) = 1 3 5 2 4 6B(:,:,1,2) = 7 9 11 8 10 12B(:,:,1,3) = 13 15 17 14 16 18 size(B)%测量数组B的大小 ans = 2 3 1 3 C=squeeze(B)%撤消长度为1的“孤维”,使原4维数组减为3维数组C(:,:,1) = 1 3 5 2 4 6C(:,:,2) = 7 9 11 8 10 12C(:,:,3) = 13 15 17 14 16 18

25、 size(C) ans = 2 3 3 u 赋“空阵”操作A=reshape(1:18,2,3,3)%创建3维数组 A(:,:,1) = 1 3 5 2 4 6A(:,:,2) = 7 9 11 8 10 12A(:,:,3) = 13 15 17 14 16 18 A(:,2:3,:)=%赋“空”,使原A数组的第二、三列消失B=A; A(:,:,1) = 1 2A(:,:,2) = 7 8A(:,:,3) = 13 14 size(A) ans = 2 1 3 A_1=squeeze(A)%撤消“孤维”,数组由3维降为2维A_1 = 1 7 13 2 8 14 size(B)%B数组与A同

26、样存在“孤维” ans = 2 1 3 B(:,1,:)=%对“孤维”赋“空”,不能降维! B = Empty array: 2-by-0-by-3 u “非数”数组(1)非数的产生a=0/0,b=0*log(0),c=inf-inf Warning: Divide by zero.a = NaNWarning: Log of zero.b = NaNc = NaN (2)非数的传递性0*a,sin(a) ans = NaNans = NaN u “空”数组(1)创建“空”数组的几种方法a=,b=ones(2,0),c=zeros(2,0),d=eye(2,0),f=rand(2,3,0,4)

27、 a = b = Empty matrix: 2-by-0c = Empty matrix: 2-by-0d = Empty matrix: 2-by-0f = Empty array: 2-by-3-by-0-by-4 u 关系操作关系运算运用之一:求近似极限,修补图形缺口t=-2*pi:pi/10:2*pi;%该自变量数组中,存在0值。y=sin(t)./t;%在t=0处,按IEEE规则,计算将产生NaNtt=t+(t=0)*eps;%逻辑数组参与运算,使0元素被一个“机器零”小数代替。yy=sin(tt)./tt;%用数值可算的sin(eps)/eps近似替代sin(0)/0极限.sub

28、plot(1,2,1),plot(t,y),axis(-7,7,-0.5,1.2),xlabel('t'),ylabel('y'),title('残缺图形')subplot(1,2,2),plot(tt,yy),axis(-7,7,-0.5,1.2)xlabel('t'),ylabel('yy'),title('正确图形') Warning: Divide by zero.u 逻辑操作逻辑操作应用之一:逐段解析函数的计算和表现。削顶整流正弦半波的计算和图形绘制t=linspace(0,3*pi,50

29、0);y=sin(t); %产生正弦波 %处理方法一:从自变量着手进行逐段处理。z1=(t<pi)|(t>2*pi).*y;%获得整流半波w=(t>pi/3&t<2*pi/3)+(t>7*pi/3&t<8*pi/3);%关系逻辑运算和数值运算w_n=w;z2=w*sin(pi/3)+w_n.*z1;%获得削顶整流半波subplot(1,3,1),plot(t,y,':r'),ylabel('y')subplot(1,3,2),plot(t,z1,':r'),axis(0 10 -1 1)subp

30、lot(1,3,3),plot(t,z2,'-b'),axis(0 10 -1 1) 4. 附加练习运行指令x=-3*pi:pi/15:3*pi;y=x;X,Y=meshgrid(x,y);Z=sin(X).*sin(Y)./X./Y;产生矩阵Z。问Z中有多少个“非数”数据?用指令surf(X,Y,Z);shading interp观察所绘图形。写出绘制相应的“无裂缝”图形的全部指令。实验三 二维、三维绘图及函数可视化一、实验目的1. 区分离散、连续函数的可视化,掌握可视化的一般步骤。2. 掌握二维、三维绘图的基本指令和操作。3. 了解函数可视化的基本操作步骤。二、实验要求1.

31、 按照实验步骤认真完成实验。2. 将每步操作所得结果与实验步骤中的结果相比较,加深理解。3. 完成实验报告,内容包括:实验名称、实验目的、附加练习的程序清单及运行结果;最后注明姓名、班级、学号,并按学号顺序排好。下次上课交齐。三、实验步骤1. MATLAB工作环境Desktop的启动双击桌面上的MATLAB6.5快捷方式,启动MATLAB环境。2. 设置当前工作目录运用实验一提供的方法,将当作工作目录设置为D盘自建的文件夹。3. 课堂内容练习u 引导(1)用图形表示离散函数n=0:12;%产生一组自变量数据 y=1./abs(n-6);%计算相应点的函数值 plot(n,y,'r*&#

32、39;,'MarkerSize',20)%用红花标出数据点grid on%画坐标方格 Warning: Divide by zero.(2)用图形表示连续调制波形t1=(0:11)/11*pi;y1=sin(t1).*sin(9*t1);t2=(0:100)/100*pi;y2=sin(t2).*sin(9*t2);subplot(2,2,1),plot(t1,y1,'r.'),axis(0,pi,-1,1),title('子图 (1)')subplot(2,2,2),plot(t2,y2,'r.'),axis(0,pi,-1,1

33、),title('子图 (2)')subplot(2,2,3),plot(t1,y1,t1,y1,'r.')axis(0,pi,-1,1),title('子图 (3)')subplot(2,2,4),plot(t2,y2)axis(0,pi,-1,1),title('子图 (4)') u plot的基本调用格式(1)二维曲线绘图基本指令演示t=(0:pi/50:2*pi)'k=0.4:0.1:1;Y=cos(t)*k;plot(t,Y)运行以后,再分别试验plot(t),plot(Y)和plot(Y,t),观察产生的图形。

34、(2)采用模型画一组椭圆th = 0:pi/50:2*pi'%长度为101的列向量a = 0.5:.5:4.5;%长度为9的行向量X = cos(th)*a;%(101x9)的矩阵Y = sin(th)*sqrt(25-a.2); %(101x9)的矩阵plot(X,Y),axis('equal'),xlabel('x'), ylabel('y')title('A set of Ellipses') u 多次叠绘利用hold绘制离散信号通过零阶保持器后产生的波形t=2*pi*(0:20)/20;y=cos(t).*exp(

35、-0.4*t);stem(t,y,'g');hold on;stairs(t,y,'r');hold off u 多子图演示subplot指令对图形窗的分割clf;t=(pi*(0:1000)/1000)'y1=sin(t);y2=sin(10*t);y12=sin(t).*sin(10*t);subplot(2,2,1),plot(t,y1);axis(0,pi,-1,1)subplot(2,2,2),plot(t,y2);axis(0,pi,-1,1)subplot('position',0.2,0.05,0.6,0.45)plot(

36、t,y12,'b-',t,y1,-y1,'r:');axis(0,pi,-1,1) u 三维绘图的基本操作三维线图指令plot3t=(0:0.02:2)*pi;x=sin(t);y=cos(t);z=cos(2*t);plot3(x,y,z,'b-',x,y,z,'bd')view(-82,58),box on,legend('链','宝石') u 三维网线图和曲面图用曲面图表现函数clf,x=-4:4;y=x;X,Y=meshgrid(x,y);%生成 x-y 坐标“格点”矩阵Z=X.2+Y.2;

37、%计算格点上的函数值surf(X,Y,Z);hold on,colormap(hot)stem3(X,Y,Z,'bo')%用来表现在格点上计算函数值u 图像(1)变址图象的读取和显示X,cmap=imread('trees.tif');%读取TIFF格式文件clfimage(X);colormap(cmap);axis image off %显示图象,并保持宽高比(2)真彩图象的读取、变换格式及显示F=imfinfo('flowers.tif');F.ColorTypeX=imread('flowers.tif');%读取TIFF

38、格式的图象文件imwrite(X,'ff.jpg','Quality',100)%把图象以JPG格式文件保存image(imread('ff.jpg')%读取JPG格式文件,并显示图象。axis image off%保持宽高比和隐去坐标 ans =truecoloru 函数绘图的简捷指令(1)绘制和它的积分在间的图形syms t tao;y=2/3*exp(-t/2)*cos(sqrt(3)/2*t); %定义符号函数s=subs(int(y,t,0,tao),tao,t);%获得积分函数subplot(1,2,1),ezplot(y,0,4*p

39、i);gridsubplot(1,2,2),ezplot(s,0,4*pi);gridtitle('s = inty(t)dt')%重写右子图图名(2)在圆域上画的图形clf,ezsurf('x*y','circ');shading flat;view(-18,28) 4. 附加练习已知某系统在一定的激励条件下的响应函数为,试画出区间内的时间响应和渐近线()。要求响应函数和渐近线用不同颜色和线型画出。实验四 符号对象的创建及符号计算一、实验目的1. 理解符号对象和数值对象之间的差别,以及它们之间的互相转换。2. 了解符号运算和数值运算的特点、区别

40、和优缺点。3. 掌握符号对象的基本操作和运算,以及符号运算的基本应用。二、实验要求1. 按照实验步骤认真完成实验。2. 将每步操作所得结果与实验步骤中的结果相比较,加深理解。3. 完成实验报告,内容包括:实验名称、实验目的、附加练习的程序清单及运行结果;最后注明姓名、班级、学号,并按学号顺序排好。下次上课交齐。三、实验步骤1. MATLAB工作环境Desktop的启动双击桌面上的MATLAB6.5快捷方式,启动MATLAB环境。2. 设置当前工作目录运用实验一提供的方法,将当作工作目录设置为D盘自建的文件夹。3. 课堂内容练习u 符号对象的生成和使用(1)符号常数形成中的差异a1=1/3,pi

41、/7,sqrt(5),pi+sqrt(5)%a1是数值常数a2=sym(1/3,pi/7,sqrt(5),pi+sqrt(5)%最接近的有理表示a3=sym('1/3,pi/7,sqrt(5),pi+sqrt(5)')%绝对准确的符号数值表示a24=a2-a3 a1 = 0.3333 0.4488 2.2361 5.3777a2 = 1/3, pi/7, sqrt(5), 6054707603575008*2(-50)a3 = 1/3-eps/12, pi/7-13*eps/165,sqrt(5)+137*eps/280, 6054707603575008*2(-50)a4 =

42、 1/3, pi/7, sqrt(5), pi+sqrt(5)a24 = (2)把字符表达式转换为符号变量y=sym('2*sin(x)*cos(x)') %把字符表达式转换为符号变量y=simple(y) %按规则把已有的y符号表达式化成最简形式y =2*sin(x)*cos(x)y =sin(2*x) (3)用符号计算验证三角等式。syms fai1 fai2;y=simple(sin(fai1)*cos(fai2)-cos(fai1)*sin(fai2) y =sin(fai1-fai2) (4)求矩阵的行列式值、逆和特征根syms a11 a12 a21 a22;A=a

43、11,a12;a21,a22DA=det(A),IA=inv(A),EA=eig(A) A = a11, a12 a21, a22DA =a11*a22-a12*a21IA = a22/(a11*a22-a12*a21), -a12/(a11*a22-a12*a21) -a21/(a11*a22-a12*a21), a11/(a11*a22-a12*a21)EA = 1/2*a11+1/2*a22+1/2*(a112-2*a11*a22+a222+4*a12*a21)(1/2) 1/2*a11+1/2*a22-1/2*(a112-2*a11*a22+a222+4*a12*a21)(1/2) u

44、 识别对象类别的指令(1)生成三种不同类型的矩阵,给出不同的显示形式clear,a=1;b=2;c=3;d=4;%产生四个数值变量Mn=a,b;c,d%利用已赋值变量构成数值矩阵Mc='a,b;c,d'%字符串中的a,b,c,d与前面输入的数值变量无关Ms=sym(Mc)%Ms是一个符号变量,它与前面各变量无关Mn = 1 2 3 4Mc =a,b;c,dMs = a, b c, d (2)三种矩阵的大小不同SizeMn=size(Mn),SizeMc=size(Mc),SizeMs=size(Ms) SizeMn = 2 2SizeMc = 1 9SizeMs =2 2 (3

45、)用class获得每种矩阵的类别CMn=class(Mn),CMc=class(Mc),CMs=class(Ms) CMn =doubleCMc =charCMs =sym (4)用isa判断每种矩阵的类别(若返回1,表示判断正确)isa(Mn,'double'),isa(Mc,'char'),isa(Ms,'sym') ans = 1ans = 1ans = 1 (5)利用whos观察内存变量的类别和其它属性whos Mn Mc Ms%观察三个变量的类别和属性 Name Size Bytes Class Mc 1x9 18 char array

46、 Mn 2x2 32 double array Ms 2x2 408 sym objectGrand total is 21 elements using 458 bytes u 符号表达式中自由变量的确定(1)生成符号变量syms a b x X Y;k=sym('3');z=sym('c*sqrt(delta)+y*sin(theta)');EXPR=a*z*X+(b*x2+k)*Y; (2)找出EXPR中的全部自由符号变量findsym(EXPR)%除常数符号k外的所有独立符号变量都被列出ans =X, Y, a, b, c, delta, theta,

47、x, y (3)在EXPR中确定一个自由符号变量findsym(EXPR,1) ans =x (4)在EXPR中确定2个和3个自由变量时的执行情况findsym(EXPR,2),findsym(EXPR,3) ans =x,yans =x,y,theta u 符号表达式的操作:简化syms x;f=(1/x3+6/x2+12/x+8)(1/3);g1=simple(f),g2=simple(g1) g1 =(2*x+1)/xg2 =2+1/x u 符号数值精度控制和任意精度计算digits%显示省缺符号数值计算相对精度 Digits = 32 p0=sym('(1+sqrt(5)/2'); %p0为(1+sqrt(5)/2准确值 p1=sym(1+sqrt(5)/2)%p1是(1+sqrt(5)/2在数值环境下的近似值e01=vpa(abs(p0-p1)%在符号环境32位省缺精度下,观

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论