MATLAB的建模与仿真_第1页
MATLAB的建模与仿真_第2页
MATLAB的建模与仿真_第3页
MATLAB的建模与仿真_第4页
MATLAB的建模与仿真_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

Matlab的建模与仿真吧寫。第三章:matlab的数值计算例3-1创建矩阵举例x=[l35;246]y=[l/3/5;2,4z6]z=[x;789]t=l:10例3-2矩阵元素的访问举例C=[l2345;678910;1112131415;1617181920]C(乙3)C(:,3)C⑶:)C(l:3,3:4)例3-3特殊矩阵生成示例i=3;j=4;zeros(ij)ones(ij)eye(j)rand(j)magic(i)例3-4矩阵的四则运算示例A=[l23;456;789]B=[987;654;321]A+BB-AA*B例3-5helpmatfun示例helpmatfun例3-6helprank示例helprank例3-7求矩阵A的有关特征函数,并计算矩阵A的特征值与奇异值A=[l23;456;789][x,y]=eig(A)%x为特征向量,y为特征值svd(A)%求A的奇异值例3-8数组的创建与访问示例A=[987;654;321]B=[l23;456;789]A(乙3)B(:,3)B(3,:)A(l:乙2:3)例3-9数组内元素的更换示例A=[987;654;321]A(3,3)=10例3-10数组相加减示例A=[987;654;321]B=[l23;456;789]C1=A+BC2=A-B例3-11数组相乘除示例A=[987;654;321]B=[l23;456;789]C1=A.*BC2=A./BC3=A.\B例3-12如果用户希望了解基本数学函数的全部命令,可以先进入C:\ProamFile\MATLAB704\toolbox\matlab\elfum,然后在MATLAB命令窗口中输入以下命令语句:typecontent{x+3y+5z=04x-y+2z=0x+y-4z=0A=[l35;4-12;11-4];R=rank(A)%这里A的秩等于A的列数,所以方程组有零解4x+4y+2z二0例344求解齐次方程组f+12y+3z=08x-2y+z二02x+12y+4z二0A=[442;・3123;8-21;2124];R=rank(A)%这里A的秩小于A的列数3,所以方程组有解,可用null求解xl=null(A)x2=null(sym(A))x-2y+6z=54例3-15求解v3x+8y+z=-618x-y+3z=70%首先确定系数矩阵和扩展矩阵的秩A=[l・26;381;18-13];B=[54-670];RA=rank(A)RB=rank([AB])%此时,RA=RB=3,刚好与矩阵的列数相同det(A)%det(A)不等于零,则方程组有唯一解,可以通过左除法A\B求解方程组xx=A\Bx+2y+3z=-1例3-16求解』4x+5y+6z=-27x+8y+9z=-3%首先确定系数矩阵和扩展矩阵的秩A=[l23;456;789]B=[-l-2-3]RA=rank(A)RB=rank([AB])%由上式可知,RA=RB=2<3,则需求出Ax=0的解和Ax=B的特解%Ax=0的通解为xl=null(sym(A))%Ax=b的特解为x2=A\Bx3=sym(A)\sym(B)%则方程组Ax二b的通解为网一3笔+3Xg+5x4=15例3-17使用高斯消去法求解线性代数方程组211刍一6冷+4区例3-17使用高斯消去法求解线性代数方程组23刍-13x,+9*3+3%=-18一6冯+4卷+区3-18冷=-38%依据高斯消去法原理町设计如下程序,来解决上述线性代数方程组A=[8-335;21・648;3-1393;-641-18];B=[1525-18-38];n=4;A1=A;B1=B;fork=l:n-lifabs(Al(k,k))>epsfori=k+l:nm=(i/k)=Al(i/k)/Al(k/k);forj=k+l:nAl(iJ)=Al(IJ)-m(l/k)*Al(kJ);endBl(i)=Bl(i)-m(i,k)*Bl(k);end%loopielsedisp「NaiVeGaussianEliminationfails')returnend%ifend%loopk%%获得结果%x(n)=Bl(n)/Al(n,n);fori=n-l:-l:ls=Bl(i);forj=i+l:ns=s-Al(ij)*x(j);end%loopjx(i)=s/Al(iJ);endx例3-18求方阵A=[l35;246;789]的特征多项式、特征值和特征向量%输入方阵AA=[135;246;789];%fl为方阵A特征多项式的系数fl=poly(A)%f2为特征多项式的表达式f2=poly2str(fl/x,)f2=xA3-14xA2-40x-4.2437e-014%用roots求特征多项式fl的根xl=roots(fl)%用已屯求方阵A的特征向量x2=eig(A)%使用eig求方阵A的特征值和特征向量[dx3]=eig(A)•2例3-19用符号法求解二阶常微分方程器+y=1-F的通解及满足y(0)=0.4,y(0)=0.7的特解%用符号法求解时,首先需将常微分方程符号化,可用'Dmy,表示函数的m阶导数%小写字母宅为系统默认自变量而且可以缺省,综上,例子即可写成D2y+y=l-e2%求解常微分方程通解y=dsolve(/D2y+y=l-tA2/)%求解常微分方程的特解y=dslove(/D2y+y=l-tA2/;y(0)=0.4,;Dy(0)=0.7,)——=2x-3y+3z例3-20求解常微分方程J^=4x-5y+3z的通解—=4x-4y+2z%使用dslove函数求解常微分方程%设计程序求解[x/y/z]=dslove(/Dx=2*x-3*y+3*z7Dy=4*x-5*y+3*z//Dz=4*x-4*y+2*z7t,);x=simple(x)%将x简化y=simple(y)%将y简化z=simple(z)%将z简化%运行结果如下「d?x例3・22用2/3阶龙格库塔法求解二阶常微分方程{寸+y=l-t2,满足y(0)=4,dt_y(0)=7,te[-io10]%首先需要用function建立微分方程的M函数文件,然后以ex320存盘functiondy=ex320(tzy)%定义函数文件名,输入输出变量dy=zeros(2,l);dy(l)=dy(2);dy(2)=-y(l)+l-tA2;%在命令窗I丨中输入ode23命令ode23@ex3204-1010],[47]),grid%则输出图形如图3-1所示y\=y2y3例3-22已知微分方程组彳力=一%为,绘制yl,y2,y3曲线y3=-0.8y1y271(0)=1,72(0)=2,73(0)=3%首先需要用function建立微分方程的M函数文件,然后以ex321存盘functiondy=ex321(t,y)dy=zeros(3/1);dy(l)=y(2)*y(3);dy(2)=-y(1)*y(3);dy(3)=-0.8*y(l)*y(2);%在命令窗I1中输入ode23命令[tzy]=ode45(Tex321T,[020],[123]);plot(try(:z1)z#tfy(:z2)zT*\tzy(:,3),1+T)legend(fylf,Ty2TfTy3f)例3-23依据泰勒展开法设计程序求解下面的联立常微分方程式[x(t)=x(t)-y(t)+2t-t2-t3\o3,x(0)=l,y(0)=0,0<t<l[y(t)=x(t)+y(t)-4t-+t%设计程序求解a=0;b=l;m=10;X0=[l;0];n=length(X0);rs=zeros(n,m);dl=zeros(n,l);d2=dl;d3=dl;d4=dl;t=a;X=X0;h=(b・a)/m;fork=l:m%计算X',X",X"'andX""对t的导数dl(l)=X(l)-X(2)+t*(2-t*(l+t));%dlisWdl(2)=X(1)+X(2)+tA2*(-4+t);d2(l)=dl(l)-dl(2)+2-t*(2+3*t);%d2isX〃d2(2)=dl(l)+dl(2)+t*(-8+3*t);d3(l)=d2(l)-d2(2)-2-6*t;%d3isX"d3(2)=d2(l)+d2(2)-8+6*t;d4(l)=d3(l)-d3(2)-6;%d3isX4d4(2)=d3(2)+d3(2)+6;%计算X(t+h)fori=l:nX(i)=X(i)+h*(dl(i)+hUd2(i)+hUd3(i)+h*d4(i)/4)/3)/2);rs(i,k)=X(i);end%forit=t+h;end%forkRs=[X0rs]%添增初值的数据»Rs第四章MATLAB的图形绘制例44点的图形生成示例%在命令窗口中键入plot(4,5/bd,)%在(4,5)坐标处家一个蓝色的菱形%程序运行结果显示如图44所示

例4-2线的图形生成示例%在命令窗口中键入x=l:10;%定义变量x的数值y=3*x;%定义函数yplot(x,y/b-*9%生成坐标点为*形成的蓝色实线型曲线%程序运行结果显示如图4-2所示例4-3单图单曲线图形生成示例%在命令窗口中键入t=0:2*pi/100:2*pi;Y=sin(t);plot(Mg')%程序运行结果显示如图4-3所示例4-4单图双曲线图形生成示例%在命令窗口中键入t=0:2*pi/100:2*pi;yl=sin(2*t);y2=cos(3*t);plot(t,yl;g;t/y2/r,)%程序运行结果显示如图4-4所示亦或%在命令窗门中键入t=0:2*pi/100:2*pi;y=[sin(2*t);cos(3*t)];Plot(t,y)%程序运行结果显示如图4-5所示例4-5多窗II曲线图形生成示例%在命令窗门中键入t=0:2*pi/100:2*pi;figure(l)yl=sin(2*t);plot(t,yl,g)figure(2)y2=cos(3*t);plot(t,y2/g/)%定义弧度行向量%计算正弦函数向量%生成绿颜色的正弦曲线%定义弧度行向量%计算正弦函数向量%计算余弦函数向量%生成绿颜色的正弦和红颜色的余弦曲线%定义弧度行向量%计算正弦和余弦函数向量%生成绿颜色的正弦和红颜色的余弦曲线%定义弧度行向量%计算正弦函数向量%生成绿颜色的正弦曲线%定义弧度行向量%计算正弦函数向量%计算余弦函数向量%生成绿颜色的正弦和红颜色的余弦曲线%定义弧度行向量%计算正弦和余弦函数向量%生成绿颜色的正弦和红颜色的余弦曲线%定义弧度行向量%创建序号为2的绘图窗II%计算正弦函数向量%在1号窗口中生成绿颜色的正弦曲线%创建序号为2的绘图窗口%计算余弦函数向量%在2号窗口中生成绿颜色的正弦曲线%在命令窗口键入t=linspace(0,4*pi,100);yl=sin(t);y2=cos(t);y3=sin(t)./(cos(t)+eps);%定义弧度行向量%计算正弦函数向量%计算余弦函数向量%计算正切函数向量y4=cos(t)./(sin(t)+eps);subplot(2,2,l)Plot(t,yl)subplot(2,2,2)Plot(t,y2)subplot(2,乙3)plot(t,y3)subplot(2,2,4)y4=cos(t)./(sin(t)+eps);subplot(2,2,l)Plot(t,yl)subplot(2,2,2)Plot(t,y2)subplot(2,乙3)plot(t,y3)subplot(2,2,4)Plot(t,y4)%程序运行结果显示如图4-7所示%计算正切函数向量%画左上角的图形%画右上角的图形%画左下角的图形%画右下角的图形例4-7设置坐标轴名称及图形标题示例%在命令窗口键入t=0:2*pi/100:2*pi;yl=sin(2*t);y2=cos(3*t);plot(t,yl/g-;t,y2.V)xlabel(/x=0to2\pi7FontSize,/12)ylabel('幅值:'FontSize\12)title/例4-7图形输出')%程序运行结果显示如图4-8示%定义弧度行向量%计算正弦函数向量%计算余弦函数向量%生成绿颜色的正弦和红颜色的余弦线%标注x轴名称并设置名称为12号字体%标注y轴名称并设置名称为12号字体%定义全图名称例4-8对曲线进行文本注释示例%定义弧度行向量%计算正弦函数向量%计算余弦函数向量%生成绿颜色的正弦和红颜色的余弦线%在命令窗口键入%定义弧度行向量%计算正弦函数向量%计算余弦函数向量%生成绿颜色的正弦和红颜色的余弦线t=0:2*pi/100:2*pi;yl=sin(2*t);y2=cos(3*t);plot(tzyl,1g-fzt,y2f1r-.T)text(pi/2,sin(2*pi/10)rTyl\leftarro,wT/TFontSizeTz12);text(pi,cos(3*pi/10)zTy2\rightarrow1,1FontSize1z12);gtext(T单击鼠标TFontSizef,12);号在所需注释的位置单击鼠标放入文本字符串例4-9调整坐标轴和标定图例示例%在命令窗口中键入x=linspace(0,3*piz60);yl=sin(x);y2=cos(x);subplot(221)%取消横纵轴%设置横纵轴比例%标定%取消横纵轴%设置横纵轴比例%标定yl和y2的图例%打开网格线axisoff;axis(1squareT/Tequal1);legend(fylf,Ty2T);gridon;

subplot(222)plot(x,yl,X,y2)axisoff;%取消横纵轴axis(1xyTz1normalT);%以预设置画横纵轴legend(,yl,/Ty2T);%标定yl和y2的图例gridon;%打开网格线subplot(223)plot(x,yl,x,y2)axison;axis(1squareT/Tequal1);%恢复横纵轴%以预设置画横纵轴subplot(224)plot(x,yl,x,y2)axison;axis(1xyTz1normalT);%恢复横纵轴%设置横纵轴比例例4-10调整坐标轴和标定图例示例%在命令窗口中键入t=0:0.05*pi:2*pi;yl=sin(2*t);%定义弧度行向量%计算正弦函数向量y2=cos(3*t);%计算余弦函数向量plot(tzylz1g-fTr-.T)%生成绿颜色的正弦和红颜色的余弦线text(pi/2,sin(2*pi/10)r^IXleftarrov/1/TFontSizeTz12);text(pi,cos(3*pi/10)/Ty2\rightarrow1,1FontSize1/12);holdon令打开图形保持,若关闭图形保持,则为holdoffy3=sin(2*t).*cos(3*t);plot(tzy3/b-/)Iegend(/yl//y2//y3,)zoomon%启动图形缩放,通过单击鼠标左右键调整大小%程序运行结果显示如图4-11示例441复数向量绘图示例%在命令窗口中键入t=0:pi/90:4*pi;x=t.*exp(i*t);plot(x)axis(1magez)%t点乘负指数函数,形成等距螺旋线%绘制复数向量图%修饰图形,是得曲线居中%程序运行结果显示如图4J2所示例4J2分别绘制y=|500cos(3x)|+2的单对数和双对数坐标图%在命令窗口中键入x=[0:0.02:2*pi];y=abs(500*cos(3*x))+2;figure(l)semilogx(x,y);%单对数对x轴绘图figure⑵semilogy(x,y);%单对数对y轴绘图figure(3)loglog(x,y);%双对数坐标绘图%程序运行结果显示如图443所示例4-13绘制cos(x)*sin(x)的极坐标图%在命令窗口中键入x=[0:0.02:2*pi];y=cos(x).*sin(x);polar(x,y);%绘制极坐标title/绘制极坐标%程序运行结果显示如图444所示例4-14求方程亡+0+X5+1=0的根%在命令窗口中键入x=[l000010000100001];y=roots(x);%求解方程的根r=abs(y);t=angle(y);polar(t,r/bd,);%将方程的根绘制出來title/方程根的分布图,);%程序运行结果显示如图445所示例445绘制直方图和火柴杆图%在命令窗口中键入t=0:0.1:10;y=l-exp(-t).*cos(2*t);figure(l)bar(t,y)%绘制直方图title/直方图工figure⑵stem(t,y)title/火柴杆图);%程序运行结果显示如图446所示例4-16绘制阶梯图,饼图,彗星曲线图,填充区域图,复数矢量图和极坐标累计图%在命令窗口中键入t=-20:2:20;yl=cos(t).*exp(-t/4);

y2=exp(-l/3*t).*cos(t);%绘制阶梯图%绘制饼图%绘制填充区域图%绘制复数矢量图%绘制极坐标累计图y3=sin(t);y4=cos(t);figure(l);%绘制阶梯图%绘制饼图%绘制填充区域图%绘制复数矢量图%绘制极坐标累计图stairs(t,yl);title/阶梯图');figure(2);Pie(t);title,饼图J;figure(3)aera(t,y3);title/填充区域图,);figure⑷;compass(t,y3);title/复数矢量图,);figure(5);rose(t,y4);title/极坐标累计图,);%程序运行结果显示如图447所示例447绘制三维螺旋线t=0:pi/100:5*pi;plot3(sin(3*t)/cos(3*t),t)grid%程序运行结果显示如图447所示例4-18绘制两条空间折线,第一条线上的空间坐标为(1,4,7),(2,10,"(10,6,9),第二条线上的空间节点坐标为(4,10,1),(5,1,2),(3,1,3)%将空间坐标点依次按照X,Y,Z建立三个矩阵%在命令窗口中键入X=[l4;25;103];Y=[410;101;61];Z=[71;12;93];plot3(XYZ)gridbox%添加三维箱体方框%程序运行结果显示如图449所示例449绘制三维随机网线图%在命令窗口中键入z=rand(10);mesh(z)%程序运行结果显示如图449所示例4・20绘制例4J9的三维网线%在命令窗口中键入X=[l4;25;103];Y=[410;101;61];Z=[71;13];mesh(X,Y,Z)gridonboxcolormap([001]);%添加三维箱体框图%设置网线颜色,[001]为蓝色%程序运行结果显示如图4-21所示例4-21绘制4-20的三维曲面%在命令窗口中键入X=[l4;25;103];Y=[410;101;61];Z=[71;13];surf(X,Y,Z)gridonboxcolormap([010]);%添加三维箱体框图%设置网线颜色,[010]为绿色%程序运行结果显示如图4-22所示例4-22设置图形颜色示例%在命令窗口中键入peak(35)colormap([l00]);colormap(zhotz);%生成三维示范曲面图形%生成红色图形%生成暖色色图%程序运行结果显示如图4-23所示例4-23设置图形视觉角度示例%在命令窗口中键入t=0:0.01:0.95;tl=0:0.01:0.95;t2=l:0.05:3;T=[tl,-t2+3];[x,y,z]=cylinder(T,40);mesh(x,y,z);subplot(221);mesh(x,y,z);view(0,0);subplot(222);mesh(x,y/z);view(20/20);subplot(223);mesh(x,y,z);view(40,40);subplot(224);mesh(x,y,z);view(80,80);%程序运行结果显示如图4-24所示例4・24特殊三维绘图示例%在命令窗口中键入[xzyfz]=sphere(20);k=abs(z);subplot(221);bar3(3);title(T三维直方图,)subplot(222);pie3(30);title(T三维饼图*)subplot(223);stem3(5);title「三维离散杆图,)subplot(224);surf(xzyzzzk);title(T球面图,)%程序运行结果显示如图4-25所示例4-25画一条直线,并将线的颜色改为绿色,并且获得当前窗口属性%在命令窗口中键入subplot(121)L=line([0:5],[0:5]);%创建一个线对象subplot(122)L=line([0:5]/[0:5]);set(LzTColorT,[010])%设置线对象颜色为绿色%程序运行结果显示如图4-26所示%获得当前窗口图形属性get(gcf)例4-26句柄操作7J<例%在命令窗口中键入t=0:pi/270:2*pi;yl=sin(2*t);y2=cos(2*t);plot(t,yl,t,y2)%程序运行结果显示如图4-27所示%获得所有图形对象的句柄值h=findobj第五章:MATLAB程序设计及其仿真例54已知一元二次方程尸2x?+5x+10,试编写程序求解丫⑴+于⑵+乂⑶%首先建立一个M函数:m5_l.mfunctiony=m5_l(x)y=2*xA2+5*x+10%在命令窗口输入变量:b2,3以及y⑴+yU(2)+y八3(3)»xl=l;x2=2;x3=3;»m5_l(xl)+m5_l(x2)*m5_l(x2)+m5_l(x3)*m5_l(x3)*m5_l(x3)%运行结果如下例5-2使用条件语句if编写程序示例%首先建立一个M函数:m5_2.mfunctiony=m5_2(x)ifx>=0y=xA2+4*x+4elsey=xA2-4*x+4end%在命令窗口输入变量xl=5xl=5;yl=m5_2(xl);%运行结果如下%在命令窗口输入变量x2=-5x2=-5;y2=m5_2(x2);%运行结果如下例5-3使用条件语句switch编写程序示例y='A'casex>=90&x<100y=B,casex>=80&x<90casex>=70&x<80y»D'casex>=60&x<70y=,E,otherwisey='F,end%在命令窗口中分别输入变量xl=100;x3=85;x5=65;x6=45;%运行结果如下例5-4使用循环语句while编写程序示例%用while语句求1到任意自然数的和%首先建立一个M函数:m5_4.mfunctionsum=m5_4(n)s

温馨提示

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

评论

0/150

提交评论