ImageVerifierCode 换一换
格式:DOCX , 页数:35 ,大小:360.67KB ,
资源ID:7537418      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7537418.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(MATLAB实验报告.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

MATLAB实验报告.docx

1、MATLAB实验报告实验二 MATLAB语言基础一、实验目的基本掌握MATLAB向量矩阵数组的生成及基本运算(区分数组运算和矩阵预算)、常用的数学函数。了解字符串的操作。二、实验内容(1)向量的生成和运算。(2)矩阵的创建、引用和运算。(3)多维数组的创建和运算。(4)字符创的操作。三、实验步骤1.向量的生成和运算1)向量的生成、直接输入法 冒号表达式法 函数法:Linspace()是线性等分函数,logspace()是对数等分函数。2)向量的运算1维数相同的行、列向量之间可以相加减,标量可以与向量直接相乘除。2向量的点积与叉积运算 E1和E2虽然表达式相同,但E1是标量,E2是矩阵。2.矩阵

2、的创建、引用和运算1)矩阵的创建和引用 矩阵是由m*n元素构成的矩形结构,行向量和列向量是矩阵的特殊形式。1直接输入法: 2抽取法:包括单下标抽取和全下表抽取两种方式,且两种方式抽取的元素都必须以小括号括起来。3函数法:利用ones(m;n)创建全1矩阵,zeros()创建全0矩阵,eyes()创建单位矩阵等等。4拼接法:纵向拼接横向拼接5利用拼接函数cat()repmat()和变形函数reshape() A1=1 2 3;9 8 7 ;4 5 6;A2=A1.; cat(1,A1,A2) 沿行向拼接ans = 1 2 3 9 8 7 4 5 6 1 9 4 2 8 5 3 7 6 cat(2

3、,A1,A2) 沿列向拼接ans = 1 2 3 1 9 4 9 8 7 2 8 5 4 5 6 3 7 6 repmat(A1,2,2)ans = 1 2 3 1 2 3 9 8 7 9 8 7 4 5 6 4 5 6 1 2 3 1 2 3 9 8 7 9 8 7 4 5 6 4 5 6 A=linspace(2,18,9)A = 2 4 6 8 10 12 14 16 18 reshape(A,3,3)ans = 2 8 14 4 10 16 6 12 182)矩阵的运算练习(1)用矩阵除法求下列方程组的解x=x1;x2;x3 A=6 3 4;-2 5 7;8 -1 -3;B=3;-4;

4、-7;X=ABX = 1.0200 -14.00009.7200(2)求矩阵的秩A=6 3 4;-2 5 7;8 -1 -3; rank(A)ans = 3X,lamda=eig(A)X = 0.8013 -0.1094 -0.1606 0.3638 -0.6564 0.8669 0.4749 0.7464 -0.4719lamda = 9.7326 0 0 0 -3.2928 0 0 0 1.5602(3)矩阵的开方 B=sqrtm(A)B = 2.2447 + 0.2706i 0.6974 - 0.1400i 0.9422 - 0.3494i -0.5815 + 1.6244i 2.100

5、5 - 0.8405i 1.7620 - 2.0970i 1.9719 - 1.8471i -0.3017 + 0.9557i 0.0236 + 2.3845i(4)矩阵的指数与对数: C=expm(A)C = 1.0e+004 * 1.0653 0.5415 0.6323 0.4830 0.2465 0.2876 0.6316 0.3206 0.3745 logm(C)ans = 6.0000 3.0000 4.0000 -2.0000 5.0000 7.0000 8.0000 -1.0000 -3.0000(6)矩阵的转置D=AD = 6 -2 8 3 5 -1 4 7 -3(7)矩阵的提

6、取与翻转:通过各种特定函数如triu(A)、tril(A),diag(A)、flipud(A)、fliplr(A)等等。3.多维数组的创建与运算练习:创建三维数组A,第一页为1 3;2 4,第二页为1 2;2 1,第三页为3 5;7 1.然后用变形函数重排为数组B,B为3行,2列,2页。 C=3 5;7 1;D=1 3;4 2;B=1 2;2 1;A(:,:,1)=D;A(:,:,2)=B; A(:,:,3)=C; AA(:,:,1) = 1 3 4 2A(:,:,2) = 1 2 2 1A(:,:,3) = 3 5 7 1reshape(A,3,2,2)ans(:,:,1) = 1 2 4

7、1 3 2ans(:,:,2) = 2 7 1 5 3 14.字符数组的操作1)直接输入创建字符数组2)求字符数组的长度:利用函数length()、size()3)用abs()、double()和char()、setstr()实现字符串与数值数组的相互转换。练习;用 char()和向量生成的方法创建如下字符串 AaBbCcXxYyZz。 A=65+(0:25);97+(0:25); B=reshape(A,1,); char(B)ans =AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz实验三 MATLAB数值运算一、实验目的掌握MATL

8、AB的数值运算及其运算中所用到的函数,掌握结构数组和细胞数组的操作。二、实验内容:(1)多项式运算。(2)结构数组和细胞数组。三、实验步骤:1、多项式加减法,注意阶次要相同,如不同,低阶的要补0.如2s2+3s+9和s4+3s3-5s2+4s+7相加 s1=0 0 2 3 11;s2=1 3 -5 4 7; s3=s1+s2s3 =1 3 -3 7 182、多项式乘除用函数conv和deconv实现 s1=2 3 11;s2=1 3 -5 4 7; s3=conv(s1,s2)s3 = 2 9 10 26 -29 65 77 s4=deconv(s3,s1)s4 = 1 3 -5 4 73、多

9、项式求根用函数roots s1=2 4 2; roots(s1)ans = -1 -14、多项式求值用函数polyval s1=2 4 1 -3; polyval(s1,3)ans = 90 x=1:10; y=polyval(s1,x)y = Columns 1 through 8 4 31 90 193 352 579 886 1285 Columns 9 through 10 17882407 5、结构数组的创建student.number=20050731001;student.name=Jack;student(2).number=20050731002;student(2).nam

10、e=Lucy;或者用struc函数创建。student=struct(number,001,002,name,Jack,Lucy)student = 1x2 struct array with fields: number name 6、结构数组的操作。 student(1).subject=student = 1x2 struct array with fields: number name subject student(1).sorce=student = 1x2 struct array with fields: number name subject sorce studentstu

11、dent = 1x2 struct array with fields: number name subjectsorce fieldnames(student)ans = number name subject sorce getfield(student,2,name)ans =Lucy student=rmfield(student,subject)student = 1x2 struct array with fields: number name sorce student=setfield(student,1,sorce,90)student = 1x2 struct array

12、with fields: number name sorce student=setfield(student,1,sorce,90); student(2).sorce=88;7、细胞数组的创建。 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函数先创建空的细胞数组,然后在给各个元素赋值。 C=cell(1,2); C(1,1)=Hello worldC = Hello world C(1,2)=magic(3)C = Hello world 3x

13、3 double C(1,3)=1 2 3 4C = Hello world 3x3 double 1x4 double8、细胞数组的操作。 ans1=A(1,1)ans1 = How are you! ans2=A1,1ans2 =How are you! whos ans1 ans2 Name Size Bytes Class ans1 1x1 84 cell array ans2 1x12 24 char arrayGrand total is 25 elements using 108 bytes a1=A2,1(1,2)a1 = 2 a2 a3=deal(A1:2)a2 =How a

14、re you!a3 = 1 2 3 4实验四 MATLAB符号运算一实验目的掌握符号变量和符号表达式的创建,掌握matlab的symbol工具箱的一些基本应用。二实验内容(1)符号变量、表达式、方程及函数的表示。(2)符号为积分运算。(3)符号表达式的操作和转换。(4)符号微分方程求解。三实验步骤1.符号运算的引入在数值运算中如果求lim(sin(pi*x)/x(x-0),则可以不断让x趋近0,一球的表达式趋近什么数,但是终究不能令x=0,在数值运算中0不能做除数。Matlab的符号运算能解决这类问题。输入如下命令: f=sym(sin(pi*x)/x) f = sin(pi*x)/x lim

15、it(f,x,0) ans = pi2符号常量、符号变量、符号表达式的创建1)使用sym()创建输入以下命令,观察workspace中a,b,f是什么类型的数据,占用多少字节的内存空间。 a=sym(1) a = 1 b=sym(x) b = x f=sym(2*x2+3*y-1) f =2*x2+3*y-1 clear f1=sym(1+2),f2=sym(1+2),f3=sym(2*x+3),f4=sym(2*x+3)f1 =1+2 f2 =3 f3 = 2*x+3 Undefined function or variable x. x=2,f4=sym(2*x+3)x = 2f4 = 7

16、Sym()的参数可以是字符串或数值类型,无论你是哪种类型都会生成符号类型数据。2)使用syms创建 clear syms x y z x,y,zx =xy =yz =z f1=x2+2*x+1f1 =x2+2*x+1 f2=exp(y)+exp(z)2f2 =exp(y)+exp(z)2 f3=f1+f2f3 =x2+2*x+1+exp(y)+exp(z)2用符号类型的变量经过运算(加减乘除)得到。又如: f1=sym(x2+y+siin(2)f1 =x2+y+siin(2) syms x y f2=x2+y+sin(2)f2 =x2+y+4095111552621091/4503599627

17、370496 x=sym(2),y=sym(1)x =2y =1 f3=x2+y+sin(2)f3 =26613109689473571/4503599627370496 y=sym(w),f4=x2+y+sin(2)y =wf4 =22109510062103075/4503599627370496+w思考题:syms x是不是相当于x=sym(x)? 答:不等于,前者是符号x作用于整个工作空间,除非clear,后者只作用于变量x。3符号矩阵创建 syms a1 a2 a3 a4 a=a1 a2;a3 a4a = a1, a2 a3, a4 a(1),a(3)ans =a1ans =a2 b

18、=sym(b1 b2;b3 b5)b = b1, b2 b3, b5 c1=sym(sin(x),c2=sym(x2),c3=sym(3*y+z),c4=sym(3),c=c1 c2;c3 c4c1 =sin(x)c2 =x2c3 =3*y+zc4 =3c = sin(x), x2 3*y+z, 3思考题:分别用sym和syms创建符号表达式:f1=cosx+(-(sin(x)2)(1/2),f2=y/exp(-2*t)。答: sym(f1=cos(x)+(-(sin(x)2)(1/2),sym(f2=y/exp(-2*t)ans =f1=cos(x)+(-(sin(x)2)(1/2)ans

19、=f2=y/exp(-2*t) syms x y t f1=cos(x)+(-(sin(x)2)(1/2),f2=y/exp(-2*t)f1 =cos(x)+(-sin(x)2)(1/2)f2 =y/exp(-2*t)4符号算术运算1)符号量相乘、相除(分成矩阵乘和数组乘)。 a=sym(5);b=sym(7); c1=a*b,c2=a/bc1 =35c2 =5/7 a=sym(5);b=sym(3 4 5); c1=a*b,c2=abc1 = 15, 20, 25c2 = 3/5, 4/5, 1 syms a b A=5 a;b 3;B=2*a b;2*b aB = 2*a, b 2*b,

20、a c1=A*B,c2=A.*B,C3=AB,C4=A./Bc1 = 10*a+2*a*b, 5*b+a2 2*a*b+6*b, b2+3*ac2 = 10*a, a*b 2*b2, 3*aC3 = 2*a*(b-3)/(-15+a*b), (a2-3*b)/(-15+a*b) 2*b*(a-5)/(-15+a*b), -(5*a-b2)/(-15+a*b)C4 = 5/2/a, a/b 1/2, 3/a2)符号数值任意精度控制和运算任意精度的VPA运算可以使用命令digits(设定默认的精度)和vpa(对指定对象以新的精度进行计算)来实现。 a=sym(2*sqrt(5)+pi),b=sym

21、(2*sqrt(5)+pi)a =2*sqrt(5)+pib =8572296331135796*2(-50) digits Digits = 32 vpa(a),c1=vpa(a,56),c2=vpa(b,56)ans =7.6137286085893726312809907207421c1 =7.6137286085893726312809907207420553550784061185981572696c2 =7.61372860858937272610091895330697298049926757812500000003)符号类型与数值类型的转换使用double,numeric函数可

22、以将有理数型和vpa型符号对象转换成数值对象。 clear a1=sym(2*sqrt(5)+pi),b1=double(a1),b2=isnumeric(b1),a2=vpa(a1,70)a1 =2*sqrt(5)+pib1 = 7.6137b2 = 1a2 =7.6137286085893726312809907207420553550784061185981572695167390831288585.符号表达式的操作和转换1)独立变量的确定原则独立变量的确定原则:在符号表达式中默认变量是唯一的。Matlab会对单个英文小写字母(除i,j)进行搜索,且以为首选独立变量。如果表达式中字幕唯一

23、,且无x,就选在字母表顺序中最接近x的字母。如果有相连的字母,则选择在字母表中较后的那一个;输入以下命令: clear f=sym(a+b+i+j+x+y+xz)f =a+b+i+j+x+y+xz findsym(f)ans =a, b, j, x, xz, y findsym(f,1),findsym(f,2),findsym(f,3),findsym(f,4),findsym(f,5),findsym(f,6)ans =xans =x,xzans =x,xz,yans =x,xz,y,jans =x,xz,y,j,bans =x,xz,y,j,b,a2)符号表达式的化简(1)合并同类项co

24、llect syms x t;f=(x2+x*exp(-t)+1)*(x+exp(-t); f1=collect(f),f2=collect(f,exp(-t)f1 =x3+2*exp(-t)*x2+(1+exp(-t)2)*x+exp(-t)f2 =x*exp(-t)2+(2*x2+1)*exp(-t)+(x2+1)*x(2)显示格式美化pretty pretty(f1),pretty(f2) 3 2 2 x + 2 exp(-t) x + (1 + exp(-t) ) x + exp(-t) 2 2 2 x exp(-t) + (2 x + 1) exp(-t) + (x + 1) x(3

25、)多项式展开expand函数。展开(x-1)12。 syms x; f=(x-1)12; pretty(expand(f) 12 11 10 9 8 7 6 5 1 + x - 12 x + 66 x - 220 x + 495 x - 792 x + 924 x - 792 x 4 3 2 + 495 x - 220 x + 66 x - 12 x(4)因式分解fator函数,分解x12-1。 syms x;f=x12-1; pretty(factor(f) 2 2 2 4 2 (x - 1) (1 + x + x) (1 + x) (1 - x + x ) (1 + x ) (x - x

26、+ 1)(5)化简(simple或simplify):化简函数f=(1/x3+6/x2+12/x+8)(1/3); syms x;f=(1/x3+6/x2+12/x+8)(1/3);g1=simple(f),g2=simplify(f)g1 =(2*x+1)/xg2 =(2*x+1)3/x3)(1/3)6.符号表达式的变量替换Subs函数可对符号表达式中得符号变量进行替换; clear f=sym(x+y)2+4*x+10),f1=subs(f,x,s),f2=subs(f,x+y,z)f =(x+y)2+4*x+10f1 =(s)+y)2+4*(s)+10f2 =(z)2+4*x+10练习:

27、(1)已知f=(a*x2+b*x+c-3)-a*(c*x2+4*b*x-1),按自变量x和自变量a,对表达式f分别进行降幂排列;(2)已知符号表达式f=1-(sin(x)2,g=2*x+1,计算x=0.5时,f的值;计算复合函数f(g(x);(1) syms x a b c f=(a*x2+b*x+c-3)-a*(c*x2+4*b*x-1),collect(f,x),collect(f,a)f =(a*x2+b*x+c-3)(-a)*(c*x2+4*b*x-1)ans =(a*x2+b*x+c-3)(-a)*c*x2+4*(a*x2+b*x+c-3)(-a)*b*x-(a*x2+b*x+c-3)(-a)ans =(a*x2+b*x+c-3)(-a)*(c*x2+4*b*x-1)(2) syms x x=0.5,f=1-(sin(x)2,g=2*x+1,x = 0.5000f = 0.7702g =27符号极限

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1