计算机仿真技术(2)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

三.矩阵运算和数组运算*矩阵运算是从整体出发*数组运算是从元素出发1.基本表达和显示a=[123;456;789];%”;”不显示值a=[123;456;789]%显示a的值a=123456789a+b%矩阵加a-b%矩阵减a*b%矩阵乘a/b%矩阵右除a\b%矩阵左除a^2%矩阵幂a‘%矩阵转置矩阵运算符矩阵加减(数组加减)C=A±B%A,B必须同维C=plus(A,B)%plus是Matlab函数C=minus(A,B)%minua也是Matlab函数A=[12;34];B=[56;78];C=A+BC=681012c=plus(A,B)c=681012矩阵乘C=A*B――维数满足一定关系2×2=2×33×2【例】矩阵乘的例子A=[123;456];B=[12;34;56];C=A*BC=22284964数组乘(点乘)C=A.*B%“.*”表示数组乘%A和B对应的元素相乘%A和B必须是同维的%C和A,B也是同维的【例】数组乘的例子A=[123;456;789];B=[234;567;890];C=A.*BC=261220304256720矩阵左除“\”A\B为方程AX=B的解A-1B矩阵右除“/”B/A为方程XA=B的解BA-1矩阵乘方A^2=A*AAA=123456789矩阵幂结果A^2ans=303642668196102126150数组幂及运算结果A.^2ans=149162536496481矩阵转置A=123456789A'ans=147258369*矩阵(数组)维数获取:①从workspace窗口NameSizeBytesclass②一维数组n=length(A)③二维数组[r,c]=size(A)%r行数,c列数④多维数组[r,c,d]=size(A)%…,d页数*矩阵的赋值和取值:(1)对某元素操作:A(2,3)=100(2)对行操作:A(:,3)――第三列全部行元素A=123456789A(:,3)ans=369(3)对列操作:A(2,:)――第二行全部列元素A=123456789A(2,:)ans=456四.多项式及运算(一).多项式的MATLAB表示法:如:P=s3+2s2+3s+4MATLAB可表示为系数向量P=[1234](二)多项式的生成①直接输入系数向量p=[1234]P=s3+2s2+3s+4●求多项式的根,可用函数roots(P)【例】r=roots(P)ans=-1.6506-0.1747+1.5469i-0.1747-1.5469i②若已知多项式根向量,可用poly(P)生成多项式【例】已知P1(s)=(s+1)(s+2)(s+3)的根为:-1-2-3则编写:P1=poly([-1,-2,-3])运行后,得P1=16116表示已生成多项式为:P=s3+6s2+11s+6(三)多项式运算1.求多项式值polyval(p,x0)V=polyval(P1,1)V=242.多项式加、减:▲阶次相同,低阶缺项系数必须补0【例】:(s2+2s+1)+2s2P1=[121];P2=[200];P=P1+P2》P=3213.多项式乘法conv.(卷积)(s+1)(s3+6s2+11s+6)P1=[11];P2=[16116];P3=conv(P1,P2)》P3=1717176→P3=s4+7s3+17s2+17s+64.部分分式展开式residue[r,p,k]=residue(b,a)b(s)r(1)r(2)r(n)----=--------+--------+...+--------+k(s)a(s)s-p(1)s-p(2)s-p(n)p=[p(1),p(2),…p(n)]r=[r(1),r)2),….r(n)].k(s)直接项5.多项式微分运算polyder【例】f(x)=2x5+5x4+4x2+x+4p=[250414];h=polyder(p)》h=1020081五.逻辑运算和关系运算逻辑运算和关系运算提供求解真假命题的答案。MATLAB表示:True:1False:01.关系操作符操作符函数==(等于)eq(A,B)~=(不等于)ne(A,B)﹤(小于)lt(A,B)﹥(大于)gt(A,B)﹤=(小于等于)le(A,B)﹥=(大于等于)ge(A,B)A,B可以是数组或矩阵【例】:A=[1,4,3,5,7];B=[2,6,9,0,7];C=eq(A,B)/(A==B)C=000012.逻辑操作符逻辑操作符说明函数&逻辑与and(A,B)|逻辑或or(A,B)~逻辑非not(A,B)逻辑异或xor(A,B)*逻辑异或A,B中都是0或都是非0:返回0A,B中仅有一个0:返回1【例】:A=[0021];B=[1201];C=xor(A,B)C=[1110]六.基本数学函数sin(x)cos(x)tan(x)exp(x)(指数函数)log(x)(自然对数)log10(x)(10为底的对数)abs(x)(实数求绝对值,复数求模)real(x)(求复数的实部)imag(x)(求复数的虚部)七.基本数据分析函数1.max(x)―求向量或矩阵列向量的最大元素[y,i]=max(x)或y=max(x)y为最大元素值,i为其下标【例】X=[123543];[xmax,i]=max(X)运行后xmax=5i=4【例】Y=[123;456;792];[ymax,i]=max(Y)运行后:ymax=796i=3322.min(A)――求向量或矩阵中列向量最小元素3.mean(A)――求向量或矩阵中列向量平均值【例】:A=[123;456;792];B=mean(A)运行后B=45.33333.66694.sum(X)――求向量(全部元素)或矩阵矩阵列向量之和sum(x)X=[012;345]sum(X)=357八.MATLAB程序设计程序编辑与执行程序1.启动程序编辑器(M-文件编辑器)MATLAB提供了一个内置的具有编辑和调试功能的程序编辑器(Editor/Debugger).在MATlAB的操作桌面中有三种方式可以进入程序编辑器:(1)选择菜单栏的“File”项中的“New”或“open”项;(2)选择工具栏的“New”或“Open”按钮(3)在命令编辑区中输入edit命令(采用该编辑器编辑MATLAB语句与命令并存盘产生程序文件)2在命令窗口用两种方式执行(1)用菜单操作从Debug→Run调出M文件(2)直接在命令窗口编辑区键入M文件名3M文件的形式M文件有两种形式:命令文件(ScriptFile)和函数文件(FunctionFile),这两种文件的扩展名相同,都是“.m”。(1)命令文件——scriptFile①编写m文件当用户要运行的指令较多时,直接在Command窗口下,输入命令比较麻烦,可以编辑一个命令文件,将要执行的命令,按行顺序写入一个M文件。以命令文件运行时,也将按顺序连续执行文件里的指令、函数等。命令文件运行时,可以访问现有Workspace内全部数据。若不希望利用这些数据,在运行命令文件之前,用clear清除Workspace内数据或命令文件的第一条命令用clear命令。文件运行后所有变量都驻留在Workspace内.例如:求向量[5152532]的均方值%MATLABPROGRAM0-1a=[5152532];aa=a.^2;[nr,nc]=size(aa);r=sqrt(sum(aa)/nc)②m文件的存储:h2.m③运行m文件:两种方法(a)在m文件编辑器中debugrun(b)直接在当前目录下的命令窗口键入文件名:h2r=21.788(2)函数文件①如果M文件的第一行包含function,此文件是函数文件,MATLAB函数基本格式如下:function[返回变量列表]=函数名(输入变量列表)函数体语句②存储时,函数文件名和函数名必须相同③函数文件中所有变量均为局部变量(除特别声明外)★命令文件中所有变量均为全局变量④必须用命令文件调用函数文件或在命令窗口下直接调用函数文件【例】编写求向量均值根的函数文件并求a=[5152532]均方根值a)编写求均方根函数文件rms.m;functionr=rms(a)aa=a.^2;[nr,nc]=size(aa);r=sqrt(sum(aa)/nc);b)以rms.m名保存c)在Command窗口下,调用函数rms()x=[5152532];RMS=rms(x)或将这两条命令编写一个命令文件并运行它:h3.m运行结果:RMS=21.7888(3)程序控制语句MATLAB程序控制语句包括:循环语句和条件语句。循环语句有:for语句和while语句。条件语句有:if语句和switch语句①for语句基本格式为:for循环变量=起始值:步长:终止值循环体;end【例】x=zeros(1,6);%x是一个1x6的零矩阵fori=1:6,x(i)=1/i;endformatrat%使用分数来表示数值disp(x)11/21/31/41/51/6▲For循环可进行嵌套结构fori=1:10forj=1:5...endend②while语句基本格式为;while条件式循环体;end【例】n=1;a=0;whilen=10a=a+log(n)/n;n=n+1;end③if语句基本格式为:if逻辑条件式;运算式(为真执行statements,否则执行end后面语句);end或另一种格式if—elseif—end【例】functionf=fun(n)ifn==0f=20;elseifn==1f=40;elseifn==2f=60;elseifn==3f=80;elsef=100;endfun(2)ans=60④switch语句基本格式为:switch表达式case值1执行语句1;case值2执行语句2;…end【例】switchncase0f=20case1f=40case2f=60otherwisef=100;endn=1;f=40九、数据存储和调用在workspace中的变量(数据)可用save保存到文件,也可用load将变量从磁盘文件中调至Workspace常用格式:savefilenameX将变量X存入filename.mat文件中savefilenameXYZ将变量XYZ存入filename.mat文件中loadfilename可将X/(X,Y,Z)调入workspace空间十、常用绘图命令1.plot绘二维曲线图Plot一般用法如下:●调用格式1;plot(y)功能:若y是向量,其元素是实数,则绘制y对其元素的下标所构成的的曲线图形,若y是矩阵,则按列向量数值绘制曲线图,曲线条数等于y阵的列数。●调用格式2;plot(x,y)功能:绘制y对x的曲线图形。其中x为横坐标,y为纵坐标。若x、y是同维的向量,则绘制一条曲线;若x是向量而y是矩阵,则绘制多条曲线,它们具有相同的横坐标数据;●调用格式3;plot(x1,y1,x2,y2…)功能:以(x1,y1)、.(x2,y2)…为二元组,绘制多条曲线plot(t,x,‘r-’,t,y,’b*”)选项:线型/标记,颜色线型:-实线--虚线:点线-•点画线标记:•*×+s(正方)d(菱形)h(六角形)颜色:r红g绿b蓝y黄m洋红k黑色c青色helpplot函数semiplot绘制对数坐标曲线2.图形窗口的分割――多图形显示subplot(m,n,t)如subplot(2,2,*)――四个图h4.mt=0:0.1:1;x=sin(2*pi*t);y=exp(x);s

1 / 78
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功