版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一、实验目的初步熟悉MATLAB工作环境,熟悉命令窗口,学会使用帮助窗口查找帮助信 息。命令窗口二、实验内容熟悉MATLAB台的工作环境。熟悉MATLAB的5个工作窗口。MATLAB 的优先搜索顺序。三、实验步骤熟悉MATLAB的5个基本窗口Command Window (命令窗口 )Workspace ( 工作空间窗口 )Command History ( 命令历史记录窗口 )Current Directory ( 当前目录窗口 )Help Window ( 帮助窗口 )命令窗口 (Command Window。) 在命令窗口中依次输入以下命令: x=1 y=1 2 34 5 67 8 9;
2、 z1=1:10,z2=1:2:5; w=linspace(1,10,10); t1=ones(3),t2=ones(1,3),t3=ones(3,1) t4=ones(3),t4=eye(4)x =1z1 =2 3 4 5 6 7 8 9 10 t1 =1 11 11t2 = t3 =111 t4 =1 11 11 1t4 =1 000010000100001思考题:变量如何声明,变量名须遵守什么规则、是否区分大小写答:1)变量声明局部变量 每个函数都有自己的局部变量,这些变量只能在定义它的函数内部使用。当函 数运行时,局部变量保存在函数的工作空间中,一旦函数退出,这些局部变量 将不复存在。
3、脚本(没有输入输出参数,由一系列 MATLA命令组成的M文件)没有单独的工 作空间,只能共享调用者的工作空间。当从命令行调用,脚本变量存在基本工 作空间中;当从函数调用,脚本变量存在函数空间中。全局变量在函数或基本工作空间内,用global声明的变量为全局变量。例如声明a为全 局变量:global a声明了全局变量的函数或基本工作空间, 共享该全局变量, 都可以给它曲赋值。 如果函数的子函数也要使用全局变量,也必须用 global 声明。永久变量永久变量用persistent声明,只能在M文件函数中定义和使用,只允许声明它 的函数存取。当声明它的函数退出时,MATLA不会从内存中清除它,例如声
4、明a为永久变量:persistent a( 2)变量命名规则如下:始于字母,由字母、数字或下划线组成;区分大小写;可任意长,但使用前N个字符。N与硬件有关,由函数namelengthmax返回,一般N=63;不能使用关键字作为变量名(关键字在后面给出); 避免使用函数名作为变量名。如果变量采用函数名,该函数失效。(3)区分大小写试说明分号、逗号、冒号的用法。答:分号:加上分号“; ”其作用是将计算机结果存入内存,但不显示在屏幕上,反之,语句结尾若不加“ ; ”,则表示在语句执行后,在将计算结果存入内存的 同时,还将运算结果显示出来。逗号:分割列表冒号:从什么到什么,比如 1:10 意思是 1到
5、10linspace()称为“线性等分”函数,说明它的用法。可使用help命令,格式如下:help linspace说明函数 ones( ) 、zeros( ) 、eye( ) 的用法。答;(1)ones ()函数:全部元素都为 1的常数矩阵; (2)zeros ()函数:全部元素都为 0的矩 阵; (3) eye ()函数:单位矩阵;(4)linspace ()函数:女口 a=linspace(n1,n2,n3), 表示在线性空 间上,行矢量的值从 n1 到 n2工作空间窗口 (Workspace) 。单击工作空间窗口右上角的按钮,将其从 MATLAB主界面分离出来。在工作空间查看各个变量,
6、或在命令窗口用who, whos(注意大小写)查看各个 变量。在工作空间双击变量,弹出 Array Editor 窗口 (数组编辑器窗口 ),即可修改 变量。使用 save 命令把工作空间的全部变量保存为 文件save输入下列命令:clear all % 清除工作空间的所有变量 观察工作空间的变量是否被清空。使用 load 命令把刚才保存的变量载入工作空 间。load清除命令窗口命令:clc历史命令窗口 (Command History) 。打开历史命令窗口,可以看到每次运行 MATLAB时间和曾在命令窗口输入过的 命令,练习以下几种利用历史命令窗口重复执行输入过的命令的方法。在历史命令窗口中
7、选中要重复执行的一行或几行命令, 右击,出现快捷菜单, 选择Copy,然后再Paste到命令窗口。在历史命令窗口中双击要执行的一行命令,或者选中要重复执行的一行或几 行命令后,用鼠标将其拖动到命令窗口中执行。在历史命令窗口中选中要重复执行的一行或几行命令, 右击,出现快捷菜单, 选择Evaluate Selection ,也可以执行。或者在命令窗口使用方向键的上下键得到以前输入的命令。例如,按方向键“T”一次,就重新将用户最后一次输入的命令调到 matlaBS示符下。重复地按方向 上键“T”,就会在每次按下的时候调用再往前一次输入的命令。类似地,按方向键 的时候,就往后调用一次输入的命令。按方
8、向键或者方向键“”就会在提示 符的命令中左右移动光标, 这样用户就可以用类似于在字处理软件中编辑文本的方法编辑 这些命令。当前目录命令窗口 (Current Directory) 。MATLAB勺当前目录即是系统默认的实施打开、装载、编辑和保存文件等操作时 的文件夹。打开当前目录窗口后,可以看到用“ save ”命令所保存的 文件是保存在 目录 C:MATLAB6p5work 下。帮助窗口 (Help Window) 。单击工具栏的图标,或选择菜单 View|Help ,或选择菜单 Help|MATLABHelp 都能 启动帮助窗口。 通过 Index 选项卡查找 log2() 函数的用法,在
9、 Search index for 栏中输入需 要查找的词汇“ log2 ”,在左下侧就列出与之最匹配的词汇条目,选择“ log21 ”,右 侧的窗口就 会显示相应的内容。 也可以通过 Search 选项卡查找 log2( ) 函数的用法。 Search 选项卡与 Index 选项卡不同,Index只在专用术语表中查找,而Search搜索的是整个HTML帮助文件。MATLAB 的数值显示格式设置屏幕显示方式有紧凑(Compact)和松散(Loose)两种,其中Loose为默认方式。 a=ones(1,30)format compact a数字显示格式有 short 、long 、short e
10、 、long e 等,请参照教材的列表练习一 遍。format longpiformat shortpiformat longpiformat +pi-pi变量的搜索顺序 在命令窗口中输入以下指令:pisin(pi);exist(pi)pi=O; exist(pi) piclear piexist(pi)pi思考题:3次执行exist(pi)的结果一样吗如果不一样,试解释为什么答:不一样,pi原来是库存函数,但是如果被赋值则系统默认被赋予的值为pi后来的值,但是当执行clear pi之后所赋的值被清空,因此pi的值又成为圆周率pi是系统的默认常量,为什么会被改变为 0答:pi原来是库存函数,但
11、是如果被赋值则系统默认被赋予的值为pi后来的值,但是当执行clear pi之后所赋的值被清空,因此pi的值又成为实验二 MATLAB语言基础一、实验目的基本掌握MATLAB量、矩阵、数组的生成及其基本运算(区分数组运算和矩阵运算)、常用的数学函数。交接字符串的操作。二、实验内容向量的生成和运算。矩阵的创建、引用和运算。多维数组的创建及运算。字符串的操作。三、实验步骤1.向量的生成和运算1)向量的生成 直接输入法:A =3456 B=1;2;3;4;5B =1234冒号生成发: A=1:2:10 ,B=1:10 ,C=10:-1:1A = TOC o 1-5 h z 3579B =2345678
12、910C =10987654321函数法:是对数等分函数。Lin space() 是线性等分函数,logspace() A=li nspace(1,10) ,B=li nspace(1,30,10)A =Colu mns 1 through 9Colu mns 10 through 18Colu mns 19 through 27Colu mns 28 through 36Colu mns 37 through 45Colu mns 46 through 54Colu mns 55 through 63Colu mns 64 through 72Columns 73 through 81Col
13、umns 82 through 90Columns 91 through 99Column 100B =Columns 1 through 9Column 10 A=logspace(0,4,5)A =10 100 1000 10000练习: 使用 logspace( ) 创建 1-4 的有 10 个元素的行向量。 答案: A=logspace(1,10,4*pi)A =+010 *Columns 1 through 9Columns 10 through 122) 向量的运算标量可以与向维数相同的行向量只见可以相加减,维数相同的列向量也可以相加减,量直接相乘除。 A=1 2 3 4 5, B
14、=3:7,A =23 4 5B =45 6 7 AT=A, BT=B,AT =12345BT =34567 E仁 A+B, E2=A-BE1 =681012E2 =-2 -2 -2 -2 -2 F=AT-BT,F =-2-2-2-2-2 G1=3*A, G2=B/3,G1 =691215G2 =向量的点积与叉积运算。 A=o nes(1,10);B=(1:10); BT=B: E1=dot(A,B)E1 =55 E2=A*BTE2 =55 clear A=1:3,B=3:5,A = TOC o 1-5 h z 23B =3 45 E=cross(A,B)E =-24-22.矩阵的创建、引用和运
15、算1)矩阵的创建和引用矩阵是由m n元素构成的矩阵结构,行向量和列向量是矩阵的特殊形式。 直接输入法: A=1 2 3;4 5 6A = TOC o 1-5 h z 12 35 6 B= 1 4 75 86 9 B =475869 A(1)ans =1 A(4:e nd)ans =36 B(:,1)ans =123 B(:)ans =123456789 B(5)ans =5抽取法 clear A=1 2 3 4;5 6 7 8;9 10 11 12;13 14 15 16A = TOC o 1-5 h z 23467810111213141516 B=A(1:3,2:3)B =3711 C=A
16、(1 3,2 4)C =410 12 A(1 3;2 4)ans =19513函数法: A=on es(3,4)A =111111111111 B=zero(3)Un defi ned fun cti on or method zero for in put argume nts of type double. B=zeros(3)B =0 0 00 0 00 0 0 C=eyes(3,2) Undefined function or method eyes for input arguments of type double.C=eye(3,2)C1 00 10 0D=magic(3)D8
17、163 574 92拼接法clearA=ones(3,4)A =1 11 11 11 11 11 1B=zeros(3)000000000 C=eye(4)C =1000010000100001 D=A B111100011110001111000 F=A;CF =1 1 1 11 1 1 11 1 1 11 0 0 00 1 0 00 0 1 00 0 0 1 拼接函数和变形函数法: clear A=0 1;1 1A =0 11 1 B=2*ones(2)B =22 cat (1,A,B,A) ans =0 11 1220 11 1 cat (2 A,B,A)cat (2 A,B,A)Err
18、or: Unexpected MATLAB expression. cat(2,A,B,A)ans =0 1 2 2 0 11 1 2 2 1 1 repmat(A,2,2) ans =0 1 0 11 1 1 10 1 0 11 1 1 1 repmat(A,2)0 1 0 11 1 1 10 1 0 11 1 1 1练习:使用函数法、拼接法、拼接函数法和变形函数法, 按照要求创建以下矩阵: A为3 4 的全1矩阵、B为3 3的0矩阵/C为3 3的单位矩阵、D为3 3的魔方阵、E由C和D纵向拼接而成,F抽取E的2-5行元素生成、G由F经变形为3 4的矩阵而得、以G为子矩阵用复制函数(repm
19、at)生成6 8的大矩阵H。答案: A=ones(3,4)A = TOC o 1-5 h z 111111111111 B=zeros(3,3)B =0 0 00 0 00 0 0 C=eye(3)C =1 0 00 1 00 0 1 D=magic(3)D = TOC o 1-5 h z 8165792 E=C;DE =1000100018165792 F=(2:5,:)F=(2:5,:)Error: Expression or statement is incorrect-possibly unbalanced (, , or . F=E(2:5,:)F = TOC o 1-5 h z 0
20、1000181657 G=respace(E,3,4)Un defi ned comma nd/fun cti on respace. G=respace(F,3,4)Un defi ned comma nd/fun cti on respace. G=reshape(F,3,4)G =031101568007 H=repmat(G,2,2)H =0311031101560156800780070311031101560156800780072)矩阵的运算矩阵的加减、数乘与乘法已知矩阵: A=1 2-1,A =1 2-1 B=-1 01 2B =-1 01 2 A+Bans =0 21 2*A
21、 TOC o 1-5 h z 4-2 2*A-3*Bans =4-8 A*Bans =14-4-2矩阵的逆矩阵 format rat;A=1 0 1;2 1 2;0 4 6A =101212046 A1=i nv(A)A1 =-1/32/3-1/6-2104/3-2/31/6 A*A1ans =100010001矩阵的除法 a=1 2 1;3 1 4;2 2 1,b=1 1 2,d=b a = TOC o 1-5 h z 1211421b =112d =112 c1=b* in v(a),c2=b/ac1 =6/73/7-4/7c2 =6/73/7-4/7 c3=inv(a)*d, c4=ab
22、c3 =12/7-4/7Error using = mldivide Matrix dimensions must agree. c3=inv(a)*d, c4=ad c3 =12/7-4/7 c4 =12/7-4/7练习:按下列要求求出各种的矩阵运算的值求矩阵的秩、特征值和特征向量、 矩阵的乘幂与开方; 矩阵的指数与对数矩阵的提取与翻转答案: A=6 3 4 3 -2 5 7 -4 8 -1 -3 -7A =6343-257-48-1-3-7 B=rank(A)B =3 rb=rank(A)rb =3 X,Lamda=eig(A)Error using = eig Matrix must b
23、e square. X,Lamda=eigs(A)Error using = eigsA must be a square matrix or a function which computes A*x. C=6 3 4-2 5 78 -1 -3C =3 4-2 5 78 -1 -3 X,Lamda=eigs(C)Lamda = X,Lamda=eig(C)X =Lamda =0 00 00 0 X,Lamda=eig(C)X =Lamda =0 00 00 0 D=AA2Error using = mpower Matrix must be square. D=CA262 29 3326 2
24、2 34 E=sqrtm(C) F=expm(C)+004 * G=logm(C)Warning: Principal matrix logarithm is not defined for A with nonpositive real eigenvalues. A non-principal matrix logarithm is returned. In funm at 153In logm at 27G =+ - -+ - - + + H=fliplr(C)H =3 65 -2-3 -1 8 I=triu(C)0 5 70 0 -3 J=tril(C)J =6 0 0-2 5 0-1
25、-3 K=diag(C)K =65-33. 多维数组的创建及运算多维数组的创建 A1=1,2,3;4 5 6;7,8,9;A2=reshape(10:18,3,3)A2 =101316111417121518 T1(:,:,1)=ones(3);T1(:,:,2)=zeros(3)T1(:,:,1) =1 1 11 1 11 1 1T1(:,:,2) = T2=ones(3,3,2)T2(:,:,1) =111111111T2(:,:,2) =1 111 111 11 T3=cat(3,A1,A2),T4=repmat(A1,1,1,2)T3(:,:,1) =123456789T3(:,:,2
26、) =101316111417121518T4(:,:,1) =123456789T4(:,:,2) =123456789多维数组的创建 数组运算用小圆点加在运算符的前面表示,以区分矩阵的运算。特点是两个数组相对应 的元素进行运算。 A=1:6;B=ones(1,6); C1=A+B,C2=A-BC1 =3 4 5 6 7C2 =0 1 2 3 4 5 C3=A.*B,C4=B./A,C5=A.BC3 =1 2 3 4 5 6C4 =C5 =关系运算或逻辑运算的结果都是逻辑值。 I=A3,C6=A(I)I =0 0 0 1 1 1C6 =5 6 A1=A-3,I2=A1&AA1 =-2 -1
27、0 1 2 3I2 = I3=II3 =字符串的操作字符串的创建 S1=Ilike MATLAB S1 = Ilike MATLAB S2=Im a stuent. S2 = Im a stuent. S3=S2,and,S1 S3 =Im a MATLAB求字符串长度 length(S1) ans =12 size(S1) ans =1 12字符串与一维数值数组的相互转换 CS1=abs(S1)CS1 =666673 108 105 107 101 32 77 65 84 76 65 CS2=double(S1)CS2 =73 108 105 107 101 32 77 65 84 76 6
28、5 char(CS2) ans =Ilike MATLAB setstr(CS2) ans =Ilike MATLAB练习:用char()和向量生成的方法创建如下字符串AaBbCc XxYyZz. S1=65:90;S2=97:122; C=S1;S2; C=C(:); S3=double(C);char(S3) ans =AaBbCcDdEeFfGgHhliJjKkLIMm NnO oPpQqRrSsTtUuVvWwXxYyZz实验三 MALTAB数值运算、实验目的掌握MATLAB勺数值运算及其运算中所用到的函数,掌握结构数组和细胞数组的操作。、实验内容1)多项式运算。2)多项式插值和拟合。
29、3)数值为积分。4)结构数组和细胞数组。三、实验步骤1、多项式运算1)多项式表示。在 MATLAB,多项式表示成向量的形式。如:S4 3S3 5S2 9 在 MATLAB表示为 s=1 3 -5 0 92)多项式的加减法相当于向量的加减法,但必须注意阶次要相同。如不同,低阶次的2432要补0。如多项式2s 3s 9与多项式s 3s 5s 4s 7相加。 s1=0 0 2 3 11 s2=1 2 -5 4 7 s3=s1+s2答;s1 =s2 =1 2 -5 4 7s3 =1 2 -3 7 18多项式的乘、除法分别用函数conv 和的 deconv 实现。 s1=2 3 11 s2=1 3 -5
30、 4 7 s3=conv(s1,s2) s4=deconv(s3,s1)答;si =2 3 11s2 =1 3 -5 4 7s3 =2 9 10 26 -29 65 77s4 =1 3 -5 4 7多项式求根用函数 roots 。 s1=2 4 2 roots(s1)答;si =2 4 2ans =-i-i多项式求值用函数 polyval s1=2 4 1-3 polyval(s1,3) x=1:10 y=polyval(s1,x)答;si = TOC o 1-5 h z 241-3ans =9012345678910y =Columns 1 through 88864319019335257
31、91285Columns 9 through 10练习:求(1严 3)(s 的“商”及余数。s3 2s 1 s1=1 0 1;s2=1 3;s3=1 1; s4=1 0 2 1; q,r=deconv(conv(conv(s1,s2),s3),s4)答;q =14002-5-12、多项式插值和拟合有一组实验数据如附表1-1所示。X12345678910Y163270142260436682101014321960%=时Y的值。以分别用拟合(二阶至三阶)和插值(线性和三次样条)的方法来估算 下是实现一阶拟合的语句。 x=1:10 y=16 32 70 142 260 436 682 1010 1
32、342 I960 p仁 polyfit(x,y,1) %一阶拟合 y1=polyval(p1, %计算多项式P1在x=的值答;X =9 10y =Columns 1 through 81632701421010260436682Columns 9 through 1013421960p1 =y1 =+0033、数值微积分差分使用diff函数实现。 x=1:2:9 diff(x)答; x =13579ans =可以用因变量和自变量差分的结果相处得到数值微分。 x=linspace(0,2*pi,100); y=sin(x); plot(x,y) y仁diff(y)./diff(x); plot(
33、x(1:end-1),y1)答;函数用梯形法求定积分,即曲线的面积。cumsum函数求累计积分,trapz x=ones(1,10) cumsum(x) x=linspace(0,pi,100); y=sin(x); trapz(x,y) p=cumsum(y); p(100)*pi/(100-1)答; x =1 1 1 1 1 1 1 1 1 1ans =12345678910ans =ans =练习:图A1是瑞士地图,为了算出其国土面积,首先对地图作如下测量:以由西向东方向为X轴,由南向北方向为Y轴,选择方便的原点,并将从最西边界点到最东边界点在X轴上的区间适当划分为若干段,在每个分点的Y
34、方向测出南边界点和北边界点的Y坐标Y1和Y2,这样就得到表1,根据地图比例尺回到18mm相当于40Km试由测量数据计算瑞士国土近似面积,与其精确值41228 km?比较。地图的数据见附表1-2 (单位mr)。附表1-2X7133448566191Y14445475050383030343634414546Y24459707293100110110110117118116118118续表X96101104118142146150157158Y143373328326555545250666668Y2121124121121121116122838182868568提示:由高等数学的知识,一条曲线
35、的定积分是它与x轴所围成的面积,那么两条曲线所围成的面积可由两条曲线的定积分相减得到。4、结构数组与细胞数组机构数组的创建。 =001; =Jack: student(2).number=002: student(2).name=Lucy: student或者用struct函数创建。 student=struct(number,001,002,name,Jack,Lucy);答;student =1x2 struct array with fields:numbername机构数组的操作。 student(1).subject= %添加 subject 域并赋予空值 student(1).sc
36、ore= filednames(studeng)fieldnames(studeng)fieldnames(student) getfield(student,2,name) student=rmfield(student,subject) %删除 subject 域 student=setfield(student,1,score,90); student(2).score=88; %比较和上一条语句是否效果一样答;student =1x2 struct array with fields:numbernamesubjectstudent =1x2 struct array with fie
37、lds:numbername subject scoreUndefined function or variable studeng.练习:创建一结构数组 stusorce ,其域为: No,Name, English ,Math , Chinese , Total , Average。结构数组的大小为2X 2。细胞数组的创建。 A=How are you!,ones(3);1 2;3 4,cell; %直接创建 B(1,1)=Hello world; % 由各个细胞元素创建 B(1,2)=magic(3); B(2,1)=1 2 3 4;答或者用 cell 函数先创建空的细胞数组,然后再给各
38、个元素赋值 c=cell(1,2); c(1,1)=Hello world; c(1,2)=magic(3); c(1,3)=1 2 3 4;细胞数组的操作。 ans1=A(1,1) ans2=A(1,1) whos ans1 ans2 celldisp(A) a1=A2,1(1,2) a2 a3=deal(A1:2)答; ans1 =How are you! ans2 =How are you!ans2 1x184 cellNameSizeBytes Class Attributesans11x184 cellA1,1 =How are you!A2,1 =1 24A1,2 =1 1 11
39、1 11 1 1A2,21 =cella1 = a2 =How are you!a3 =1 24实验四 MALTAB符号运算一、实验目的掌握符号变量和符号表达式的创建,掌握MALTAB勺symbol工具箱的一些基本运用。二、实验内容符号变量、表达式、方程及函数的表示。符号微积分运算。符号表达式的操作和转换。符号微分方程求解。三、实验步骤1、符号运算的引入sin x在数值运算中如果求lim,则可以不断让的让 x趋近o,球的表达式趋近什么数,但终究不X 0 x能令x=0,因为在数值运算中0不是能作除数的。MATLAB勺符号运算能解决这内问题。输入如下命令: f=sym(si n( pi*x)/x)
40、 limit(f,x,0)答; f = sin(pi*x)/x ans =pi2、符号常量、符号变量、符号表达式的创建使用 sym() 创建输入以下命令,观察 Workspace 中 A、 B、f 是什么内性的数据,占用多少字节的内存空间 A=sym(1) % 符号常量 B=sym(x) % 符号变量 f=sym(2*xA2+3*x-1) % 符号表达式 clear f1=sym(1+2) % 有单引号,表示字符串 f2=sym(1+2) % 无单引号 f2=sym(1+2) f4=sym(2*x+3) % 为什么出错 x=1 f4=sym(2*x+3)答;A =1B =xf =2*xA2+3
41、*x-1f1 =1+2f2 =f2 = 3f4 =2*x+3 f4 = 5通过看MATLAB勺帮助可知,sym ()的参数可以使字符串或是数值类型,无论是哪种类型都会生成符 号类型数据。使用 syms 创建 clear syms x y z x,y,z f1=xA2+2*x+1 f2=exp(y)+exp(z)A2 f3=f1+f2答;x =xf1 =xA2+2*x+1 f2 =exp(y)+exp(z)A2 f3 =xA2+2*x+1+exp(y)+exp(z)A23、符号矩阵创建 syms a1 a2 a3 a4 A=a1 a2;a3 a4 A(1),A(3)答;A = a1, a2 a3
42、, a4 ans =a1 ans =a24、符号算术运算1) 符号向量相乘、相除符号量相成和数值量相乘一样,分成矩阵乘和数组乘 a=sym(5);b=sym(7); c1=a*b c2=a/b a=sym(5);B=sym(3 4 5); C1=a*B,C2=aB syms a b A=5 a;b 3;B=2*a b;2*b a; C1=A*B,C2=A.*B C3=AB,C4=A./B答;cl =35 c2 =5/7C1 = 15, 20, 25C2 = 3/5, 4/5, 1C1 =10*a+2*a*b,5*b+aA22*a*b+6*b,bA2+3*aC2 = 10*a, a*b 2*bA
43、2, 3*aC3 =22A(-50)a*(b-3)/(-15+a*b), (aA2-3*b)/(-15+a*b)2*b*(a-5)/(-15+a*b), -(5*a-bA2)/(-15+a*b)C4 = 5/2/a, a/b 1/2, 3/a2) 符号数值任意精度控制和运算任意精度的VPA运算可以使用命令digits (设定默认的精度)和vpa (对指定对象以新的精度进行计算) 来实现。 a1=sym(2*sqrt(5)+pi) a=sym(2*sqrt(5)+pi) b=sym(2*sqrt(5)+pi) digits vpa(a) digits(15) vpa(a) c1=vpa(a,56
44、) c2=vpa(b,56)答 a1 =2*sqrt(5)+pi a =2*sqrt(5)+piDigits = 32 ans = ans =c1 =7.c2 =注意观察cl和c2的数值类型,cl和c2是否相等。符号类型与数值类型的转换使用命令sym可以把数值型对象转换成有理数性符号对象,命令vpa可以讲数值型对象转换为任意精度的VPA型符号对象。使用 double,numeric函数可以将有理数型和 VPA型符号对象转换成数值对象. clear a1=sym(2*sqrt(5)+pi) b1=double(a1) % 符号转数值 b2=isnumeric(b1) % 判断是否转换成了数值 a
45、2=vpa(a1,70) % 数值转符号答; a1 =2*sqrt(5)+pi b1 =b2 = a2 =5、符号表达式的操作和转换独立变量的确定原则独立变量的确定原则:在符号表达式中默认变量是惟一的。MATLAB会对单个英文小写字母(除 i、j外)进行搜索,且以 x为首选独立变量。如果表达式中字母不唯一,且无x,就选在字母表最接近 x的字母。如果有相连的字母,则选择在字母表中较后的那一个。例如:3* y z中,y是默认独立变量。sin(a*t b) , t 是默认独立变量。输入以下命令,观察并分析结果。 clear f=sym(a+b+i+j+x+y+xz) findsym(f) finds
46、ym(f,1) findsym(f,2) findsym(f,3) findsym(f,4) findsym(f,5) findsym(f,6)答;f =a+b+i+j+x+y+xz ans = a, b, j, x, xz, y ans =ans = x,xz ans = x,xz,y ans = x,xz,y,j ans = x,xz,y,j,b ans =x,xz,y,j,b,acollcet )、多项式展开(expand )、因e 指数同幂项合并表达式:符号表达式的化简 符号表达式化简主要包括表达式美化( pretty )、合并同类项( 式分解( factor )、化简( simple
47、 或 simplify )等函数。合并同类项( collect )。分别按 x的同幕项和(x2 xe t 1)(x e t ) 。 syms x t; f=(xA2+xyxp(-t)+1)*(x+exp(-t); f1=collect(f) f2=collect(f,exp(-t)答; f1 = xA3+exp(-t)*xA2+(xAexp(-t)+1)*x+(xAexp(-t)+1)*exp(-t) f2 =(xA2+xAexp(-t)+1)*exp(-t)+(xA2+xAexp(-t)+1)*x对显示格式加以美化(pretty )。针对上例,用格式美化函数可以使显示的格式更符 合数学书写习
48、惯。 pretty(f1) pretty(f2)答;fl =xA3+exp(-t)*xA2+(xAexp(-t)+1)*x+(xAexp(-t)+1)*exp(-t) f2 =(xA2+xAexp(-t)+1)*exp(-t)+(xA2+xAexp(-t)+1)*x pretty(f1)pretty(f2)32 exp(-t) exp(-t)x + exp(-t) x + (x + 1) x + (x + 1) exp(-t)2 exp(-t)2 exp(-t)(x + x + 1) exp(-t) + (x + x + 1) x注意与直接输出的 f1 和 f2 对比。多项式展开(expand
49、)。展开(x 1)12成x不同次幕的多项式. syms x f=(x-1)A12; expand(f) pretty(expand(f)答; ans =1+xA12-12*xA11+66*xA10-220*xA9+495*xA8-792*xA7+924*xA6-792*xA5+495*xA4-220*xA3+66*xA2-12*x12 11 109 8 7 6 51 + x - 12 x + 66 x - 220 x + 495 x - 792 x + 924 x - 792 x432+ 495 x - 220 x + 66 x - 12 x12 因式分解( factor )。将表达式 x12
50、 1 做因式分解。 syms x;f=xA12-1; pretty(factor(f)答;ans =1+xA12-12*xA11+66*xA10-220*xA9+495*xA8-792*xA7+924*xA6-792*xA5+495*xA4-220*xA3+66*xA2-12*x121110987651 + x - 12 x+ 66 x - 220 x + 495 x - 792 x + 924 x - 792 x432+ 495 x - 220 x + 66 x - 12 x syms x;f=xA12-1;pretty(factor(f)(x - 1) (1 + x + x) (1 + x
51、) (1 - x + x ) (1 + x ) (x - x + 1)化简(simple 或 simplify )。将函数f8化简。 clear syms x;f=(1/xA3+6/xA2+12/x+8)A(1/3); g1=simple(f) g2=simplify(f)答; g1 =(2*x+1)/xg2 =(2*x+1)A3/xA3)A(1/3)6、符号表达式的变量替换subs函数可以对符号表达式中的符号变量进行替换 clear f=sym(x+y)A2+4*x+10) f1=subs(f,x,s) %使用 s 替换 x f2=subs(f,x+y,z)答; f =(x+y)A2+4*x
52、+10f1 =(s+yF2+4*s+10 f2 = zA2+4*x+107、符号极限、符号积分与微分1) 求极限函数的调用格式limit(F,x,a)%返回符号对象F当xta时的极限limit(F,a)%返回符号对象F当独立变量*ta时的极限limit(F)%返回符号对象F当独立变量t 0 (a=0)时的极限limit(F,x,a,right )% 返回符号对象F 当 xta 时的右极限limit(F,x,a,left )% 返回符号对象F 当 xta 时的左极限例一: clear f=sym(sin(x)/x+a*x) limit(f,x,0)%以X为自变量求极限 limit(f,a,0)%
53、以 a 为自变量求极限 limit(f)%在默认情况下以 x 为自变量求极限 findsym(f)%得到变量并且按字母表顺序排列答 f =sin(x)/x+a*xans = ans = sin(x)/xans = ans = a, x例二: clear求n趋于无穷大时的极限 f=sym(sqrt(1+1/n); limit(f,n,inf) %2) 求积分函数的调用格式int(F) % 求符号对象 F 关于默认变量的不定积分int(F,v) % 求符号对象F关于指定变量v的不定积分 int(F,a,b) % 求符号对象 F 关于默认变量的从 a 到 b 的定积分 int(F,v,a,b) %求
54、符号对象F关于指定变量的从a到b的定积分求微分方程的调用格式diff(F) %求符号对象 F 关于默认变量的微分diff(F,v) %求符号对象F关于指定变量v的微分diff(F,n) %diff(F,v,n) %求符号对象F关于指定变量v的n阶微分求符号对象 F 关于默认变量的 n 阶微分, n 为自然数 1、2、38、符号方程求解 1)常规方程求解函数的调用格式g=solve(eq) % 求方程(或表达式或字串) eq 关于默认变量的解g=solve(eq,var) % 求方程(或表达式或字串) eq 关于指定变量 var 的解 g=solve(eq1,eq2, .,eq n, var1,var2,varn) % 求方程(或 表达式或字 串)eq1 ,eq2,eq3, eqn 关于指定变量组 var1,var2, , varn)的解2求一元二次方程 ax2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论