版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
欢迎学习
微机应用软件课时安排:1、Matlab简介32学时2、数据与图像处理(Origin、Photoshop)4学时参考数目:1、《MATLAB与科学计算》(第2版)王沫然电子工业出版社2、《计算机在材料科学中的应用》许鑫华机械工业出版社《数学物理方程的MATLAB解法与可视化》
彭芳麟清华大学出版社学习要求:
1、准备一个笔记本兼作业本。2、自己独立编程。第1章MATLAB简介MATLAB是英语MatrixLaboratory(矩阵实验室)的缩写MATLAB是当今国际上公认的在科技领域最为优秀的应用软件和开发环境。在欧美各高等院校,MATLAB已经成为应用线性代数、自动控制理论、数据统计、数字信号处理、图形处理等高级课程的基本数学工具,是理工科本科生、硕士生、博士生必须掌握的基本技能。在设计研究单位和工业部门,MATLAB已经超出实验室,广泛用于研究和解决具体的工程问题。国内部分重点高校已作为理工学生的必修或选修课。Matlab语言的特点:1、极强的数值计算功能、作图功能和符号计算功能。数值计算主要内容:矩阵的创建和保存,数值矩阵代数、乘方运算和分解,数组运算,多项式和有理分式运算,数理统计分析、差分和数值导数,用于求积分和微分方程的数值解和功能函数等。在此环境下所解问题的Matlab语言表述形式和其数学表达形式相同,不需要按传统的方法编程。利用MATLAB可以轻易地绘制二维、三维曲线,三维曲面,并可进行图形和坐标的标识、坐标控制、图形的迭绘、视角和光照设计、色彩精细控制等及绘制动画,简单易行。Matlab语言的特点:2、用户使用方便,语句简单,内涵丰富。MATLAB是一种面向科学与工程计算的高级语言,允许用数学形式的语言编写程序。
Matlab语言是一种解释执行的语言,它灵活、方便,其调试程序手段丰富,调试速度快,需要学习时间少。把编辑、编译、连接和执行融为一体。它能在同一画面上进行灵活操作,快速排除输入程序中的书写错误、语法错误以至语意错误,从而加快了用户编写、修改和调试程序的速度。Matlab语言的特点:3、最受人欢迎的特点——开放性。除内部函数外,所有MATLAB主包文件和各工具包文件都是可改的源文件。用户通过对源文件的修改,或加入自己编写的文件去构成新的专用工具包。
高版本的Matlab已逐步扩展到科学及工程计算的其它领域。因此,不久的将来,它一定能名符其实地成为“万能演算纸式的”科学算法语言。MATLAB操作窗口双击桌面快捷键,启动软件。接受命令的窗口2、指令窗的使用①数值计算
>>2*sin(pi/3)+5*i-2^2/3②演示内带程序>>ballode%自由下落小球与地面非弹性碰撞的运动轨迹③演示Matlab的基本功能>>demo3、指令窗操作注意事项①怎样改变数字属性和字体②指令和变量名要区分大小写③应该指定输出变量名④常用符号
;不显示结果…命令延续到下一行↑重新调入上一命令行↓重新调入下一命令行1.1.2在线帮助1、帮助系统指令
>>help+指令名称2、常用指令who列出内存中的变量名Type显示指定文件的内容whos列出内存中的变量名及其性质clear清除内存例3:输入10个学生的成绩并对成绩按升序排序。在指令窗口输入命令:g=input('请输入学生成绩:')sort(g)请输入学生成绩:[65789698918479837481]§1.2矩阵与表达式
1.2.1数据、变量名、算符与表达式
1、数据格式:
①10的幂为e加上正负数字:1.062e-206.022e23②数字后直接加i或j表示虚数:-3.14i5+3i
2、算符算术运算算符:+-*/^()sqrt()关系运算算符:<、>、<=、==、>=、~=逻辑运算算符:与&、或│、非~3、表达式从左至右、指数最先,乘除加减、括号提前。例1:>>6+4*3^2ans=42>>x=(5+cos(47*pi/180))/(1+sqrt(7)-2i)例2:计算表达式的值并将结果赋给变量x4、变量①命名规则字母打头,后面可以为字母、数字、下划线等,但不能为空格符、标点。区分大小写AbcABc例:MYvar12、12Myvar_、MY_Var12、_MyVar12√×√×②保存和查询所有变量都保存在工作内存空间workspace中。whos查询、clear清除。MATLAB的保留常量ans预设的计算结果变量名
i或j虚数单位eps正的极小值=2.2204e-16
inf∞值,如1/0pi
π=3.1415926NaN不定值,如0/0,∞/∞
④如果对一系列数求函数值,或变量是矢量,可将函数矢量化。方法1:使用指令vectorize
>>aaa=vectorize(ff)方法2:输入时使用对数组运算的算符>>fff=inline('cos(x.^2).^2+theta','x','theta')fff=Inlinefunction:fff(x,theta)=cos(x.^2).^2+theta求x=3.03.13.23.33.43.53.63.73.83.94.0时对应的函数值>>x=3:0.1:4A=aaa(x,2.1)B=fff(x,2.1)1.2.2矩阵1、定义矩阵方法1:直接输入法,用空格或逗号分割同一行的元素,用分号结束一行元素,用方括号括起整个矩阵。数据分类:标量(scalar)、矢量(vector)、矩阵(matrix)、列阵(array)>>B=[163213;510118;96712;415141]B=16321351011896712415141>>A=[12,698]A=12698使用矩阵编辑器!方法2:用Matlab的指令函数生成zeros零矩阵ones全部元素为1的矩阵eye单位矩阵rand均匀分布的随机数矩阵magic幻方阵randnn维正态分布的随机数矩阵cell空矩阵diag对角矩阵或提取对角元linspace等间距的矢量logspace对数等分的行矢量Diag(a,k)k=o是主对角线,k>0在主对角线上,k<0在主对角线下>>Z=zeros(2,4)Z=00000000>>F=5*ones(3,3)F=555555555>>R=randn(4,4)R=-0.4326-1.14650.3273-0.5883-1.66561.19090.17462.18320.12531.1892-0.1867-0.13640.2877-0.03760.72580.1139>>a=[1,3,5];>>diag(a)ans=100030005>>diag(a,-1)ans=0000100003000050>>diag(a,1)ans=0100003000050000作业1、计算表达式的值并将结果赋给变量x2、建立一个带参数t的x的函数求t=32,x=30405060708090100时对应的函数值。3、建立一行矢量为1到10间等间距的8个数。4、用help指令查询cumsum指令的用法,建立一个3×3的矩阵并用cumsum指令求各列元素的累计和。5、调用Demos窗口,选择其中各个条目并阅读窗口的说明,浏览MATLAB的基本功能。再见欢迎学习
微机应用软件
2、标识矩阵元素
标识元素是指标识某个、某行或某列元素例:A=[16321351011896712415141]
怎样标识11?A(2,3)或A(10)B1B4B7B2B5B8B3B6B9
B(k)注意:按列排列!A1,1A1,2A1,3A2,1A2,2A2,3A3,1A3,2A3,3
A(i,j)①行标与列标注意:a.在查找矩阵元素A(i,j)时,若
i,j超出了矩阵行数和列数,则显示出错信息。b.储存元素A(i,j)时,若i,j超出了矩阵行数和列数,则矩阵自动扩充并以零填补没有输入的元素。1.2.2矩阵②冒号算符用法1:生成矢量、矩阵>>M=1:10%步长为1的行矢量M=12345678910>>B=0:pi/4:pi%步长为π/4的行矢量B=00.78541.57082.35623.1416用法2:表示矩阵的一部分或者一行或一列的全部元素如:A(:,j)矩阵A的第j列A(i,:)矩阵A的第I行
A(1:k,j)矩阵A的第j列的前k个元素
小知识:end表示最后一个元素如:A(end,j)矩阵A的第j列的最后一个元素
A(i,end)矩阵A的第I行的最后一个元素>>M(10:-1:4)%M的第十个元素和第四个元素的倒排ans=10987654?A(end,:)4、矩阵操作的指令和算符
①三类指令
标量函数对矩阵中的每一个元素如:sin(A)矢量函数对矩阵中的每一列元素如:max(A)矩阵函数对矩阵中的全体元素如:inv(A)求逆>>B=[pi/6,pi/4;pi/3pi/2];>>sin(B)%标量函数
ans=0.50000.70710.86601.0000>>A=[123;456;789];>>max(A)%矢量函数
ans=789>>sum(A)%各列元素之和ans=121518>>prod(A)%各列元素之积ans=2880162>>mean(A)%各列的平均值ans=456>>B=[246;159;738]>>median(B)%各列的中位元素ans=248矩阵函数>>G=[184;688;358];>>[X,V]=eig(G)%求矩阵本征值与本征函数X=-0.4681-0.8920-0.5321-0.71730.4505-0.4583-0.51610.03780.7119V=17.6707000-3.20960002.5390%求矩阵行列式的值>>det(G)ans=-144%求矩阵的逆>>inv(G)ans=-0.16670.3056-0.22220.16670.0278-0.1111-0.0417-0.13190.2778②两种算符矩阵运算算符:按矩阵运算法则定义数组运算算符:按矩阵的对应元素进行运算共轭转置加减乘右除左除幂矩阵运算算符A’+-*/\^数组运算算符A.’+-.*./.\.^数组运算a:数组与标量的四则运算>>x=[134;265;324];>>a=2*x-2a=0462108426>>c=x/2c=0.50001.50002.00001.00003.00002.50001.50001.00002.0000b:数组间的四则运算注意:1、参与运算的数组必须具有相同的维数。2、加、减不变,乘、除加点。>>a=[134;265;324];>>b=[231;412;453];>>c=a+bc=365677777>>c=a.*b%注意点乘c=2948610121012>>c=a./b%注意点除c=0.50001.00004.00000.50006.00002.50000.75000.40001.3333c:数组的幂运算(.^)>>c=a.^2c=1916436259416>>c=a^2%矩阵的幂运算c=192935295258192938>>c=a.^b%数组的幂运算为各对应元素间的运算c=127416625813264a./b=b.\a
矩阵运算:▲矩阵的加减运算与数组运算相同▲乘除运算要满足矩阵运算法则.>>a=[123;234];>>b=[45;13;82];>>c=a*bc=30174327>>A=[1575;12314;71011];>>B=[673;111413;4109];>>C=A*BC=187253181161266201196299250>>A\Cans=6.00007.00003.000011.000014.000013.00004.000010.00009.0000>>C/Bans=15.00007.00005.000012.00003.000014.00007.000010.000011.0000★注意:若A*B=C,则B=A\C,A=C/B矩阵的转置对于实矩阵用(’)符号或(.’)求转置结果是一样的;然而对于含复数的矩阵,则(’)将同时对复数进行共轭处理,而(.’)则只是将其行列重排。>>A=[1+3i3+5i2+4i6+7i];>>A'ans=1.0000-3.0000i2.0000-4.0000i3.0000-5.0000i6.0000-7.0000i>>A.'ans=1.0000+3.0000i2.0000+4.0000i3.0000+5.0000i6.0000+7.0000i1.2.3符号变量
一、符号变量的生成
1、用单引号生成>>f='exp(x)'f=exp(x)>>g='a*x^2+b*x+c=0'g=a*x^2+b*x+c=0>>h='D2y-2Dy-3y=0'h=D2y-2Dy-3y=02、用函数sym来生成>>x=sym('ax+b=0')x=ax+b=0>>A=sym('[abc;def]')A=[a,b,c][d,e,f]3、用函数syms来生成>>symsxyza>>g=sin(x)/xg=sin(x)/x什么是符号运算(与数值运算的区别)※数值运算中必须先对变量赋值,然后才能参与运算。※符号运算无须事先对独立变量赋值,运算结果以标准的符号形式表达。2、符号变量的运算>>symsx>>g=sin(x)/xg=sin(x)/x>>limit(g,0)%求极限ans=1>>subs(g,x,0.5)%赋值ans=0.9589Subs(函数名,变量,数值)用符号变量生成带参数的函数例:FF=cos2(x2)+θ求出在x=3,θ=2.1时的函数值并求导。>>GG=sym('cos(x^2)^2+theta')GG=cos(x^2)^2+theta>>subs(GG,{'x','theta'},{3,2.1})ans=2.9302
或:>>symsxtheta>>subs(GG,{x,theta},{3,2.1})>>diff(GG,x)%求导ans=-4*cos(x^2)*sin(x^2)*x
diff(函数名,变量)一、列阵1、结构1.2.4其它数据结构列阵(array)储存多维数组;数据网格(meshgrid)储存二元或三元数据对;基元列阵(cell)储存大小不同的矩阵;结构数组(struct)可同时存入字符串和数据;字符串(char)存入字符和文本。A(i,j,k)行列层A1,1A1,2A1,3A2,1A2,2A2,3A3,1A3,2A3,3A1,1A1,2A1,3A2,1A2,2A2,3A3,1A3,2A3,3A1,1A1,2A1,3A2,1A2,2A2,3A3,1A3,2A3,3A1,1A1,2A1,3A2,1A2,2A2,3A3,1A3,2A3,3A1,1A1,2A1,3A2,1A2,2A2,3A3,1A3,2A3,3A1,1A1,2A1,3A2,1A2,2A2,3A3,1A3,2A3,3A(i,j)A1,1A1,2A1,3A2,1A2,2A2,3A3,1A3,2A3,3A1,1A1,2A1,3A2,1A2,2A2,3A3,1A3,2A3,3A(i,j,k)行列层块块堆A(i,j,k,l)例:A(3,2,1,2)表示?约定:Dim维:
1
列;2
行;3
层;4
块2、列阵的生成指令1:
cat(dim,A1,A2,A3,…)沿着dim指定的方向将A1,A2,A3,…组合成一个矩阵>>A=[13;57]A=1357>>B=[24;68]B=2468>>cat(1,A,B)ans=13572468>>cat(2,A,B)ans=13245768>>D=cat(3,A,B)D(:,:,1)=1357D(:,:,2)=2468指令2:
repmat(A,[m,n,p…])
将矩阵A在列、行、层…
的方向分别复制m,n,p…次例:>>repmat(A,[2,3,3])二、数据网格>>Z=(X.^2+Y.^2)surf(X,Y,Z)%画出三维立体图Z=0149125104581391013180,31,32,33,30,21,22,23,20,11,12,13,10,01,02,03,00123321>>x=[0123];y=[0123];>>[X,Y]=meshgrid(x,y)X=0123012301230123Y=00001111222233331、定义:把平面上区域内所有点的坐标表示出来的2个矩阵叫平面上的数据网格。2、指令:[X,Y]=meshgrid(x,y)[X,Y]=meshgrid(x)[X,Y,Z]=meshgrid(x,y,z)三、基元列阵
基元列阵可以将不同的数据按照与矩阵相似的结构组织起来加以应用。1、生成方法:可直接赋值,使用大括号定义,元素之间用逗号隔开。例:>>G{1,1}=3;G{1,2}=[1,2;3,5];G{2,1}='good';G{2,2}='sin(x)';GG=[3][2x2double]'good''sin(x)'或:>>A=[1,2;3,5];G={3,A;'good','sin(x)'}2、调用方法:使用大括号标识,若使用小括号标识,则显
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论