1 / 22
文档名称:

非线性动力系统 matlab编程简介.doc

格式:doc   大小:315KB   页数:22页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

非线性动力系统 matlab编程简介.doc

上传人:q1188830 2019/11/5 文件大小:315 KB

下载得到文件列表

非线性动力系统 matlab编程简介.doc

相关文档

文档介绍

文档介绍:MatLab编程简介一、先介绍MatLab里几个挺好用,但是大家以前可能没用到的命令,用过MatLab的从例子都应该能看明白用法,所以我基本不加注释。1、求解初等方程:022=ωλ+solve('x^2+w^2'ans=i*w-i*w2、求解微分方程:xx2ω-=,以及求函数的导数。xt=dsolve('D2x=-w^2*x','t',yt=diff(xt,'t'xt=C1*sin(w*t+C2*cos(w*tyt=C1*cos(w*t*w-C2*sin(w*t*w3、符号作图:sin(ϕω+=tAysymst;%这个命令用来声明下面要用到的符号变量。ezplot(sin(t+pi/6,[0,2*pi];axis([0,2*pi,-1,1];4、符号作带等高线曲面图:2222121xyzω+=symsxyw;ezsurfc(y*y/2+2*x*x,[-4,4,-8,8];5、画向量场xyxQyyxPsin,(,,(-==u=-4::4;[x,y]=meshgrid(u;%这个命令用来先生成一个数据网格以画向量场。quiver(x,y,y,-sin(x;6、极坐标作图:θ2-+=erTheta=0::5*pi;polar(Theta,1./sqrt(1+exp(-2*Theta,'r';7、画等高线:2221(yxxz+-=symsxy;ezcontour(x*x*(x-1*(x-1+y*y,[-,,-,];MatLab中查在线帮助。ezmesh画网格图ezmeshc画带等高线的网格图ezsurf画曲面图ezsurfc画带等高线的曲面图ezplot符号曲线图ezplot3三维符号曲线图ezpolar极坐标曲线图ezcontour画等高线图ezcontourf画填充等高线图plot数值二维图poar数值极坐标图plot3数值三维图mesh数值网格图meshc数值带等高线图surf数值曲面图surfc数值带等高线图quiver矢量图solve符号解代数方程dsolve符号解微分方程meshgrid产生数据网格gradient求数值梯度三、微分方程的数值解法微分方程,(utfu=,其中u为矢量。以下以简谐振动方程为例:⎩⎨⎧-==xyyx4记(mmtuu=1、欧拉法:hutfuummmm,(1+=+(1h=;N=2^16;t=0:h:N*h;x=zeros(size(t;y=zeros(size(t;%可以直接取x=zeros(1,N+1;但是一来容易范少算一个点的错误,二来下次改t的长%度时,还得记得改x的长度,这样编程x的长度随时间变量t自动取比较好x(1=1;y(1=0;fori=1:N%这里的循环次数极容易弄错,要么多算要么少算一个点,这种错误往往还查不出来。x(i+1=x(i+y(i*h;y(i+1=y(i-4*x(i*h;end;plot(x,y2、龙格库塔法:22(6143211mmmmmmhuuωωωω++++=+(⎪⎪⎪⎩⎪⎪⎪⎨⎧++=++=++==,(21,21(21,21(,(3423121huhtfhuhtfhuhtfutfmmmmmmmmmmmmmmmωωωωωωω(=;h2=h/2;h6=h/6;N=2^19;%此处设置两个变量h2和h6是为了减少下面的大循环中的除法的次数,记住一个原则:如果在循环里有某个量%与循环变量无关,那么所有关于这个量的运算能算好的都先算好。t=0:h:N*h;x=zeros(size(t;y=zeros(size(t;x(1=1;y(1=0;fori=1:Nux=x(i;uy=y(i;wx1=uy;wy1=-4*ux;ux=x(i+wx1*h2;uy=y(i+wy1*h2;wx2=uy;wy2=-4*ux;ux=x(i+wx2*h2;uy=y(i+wy2*h2;wx3=uy;wy3=-4*ux;ux=x(i+wx3*h;uy=y(i+wy3*h;wx4=uy;wy4=-4*ux;x(i+1=x(i+(wx1+2*wx2+2*wx3+wx4*h6;y(i+1=y(i+(wy1+2*wy2+2*wy3+wy4*h6;end;%在上面的循环里,我设了两个临时变量ux,uy,目前大家能看到的是两个优点,一个是程序结构非常清楚,%另一个优点是这个程序的可移植性非常强,如果算另一个方程,只要作极小的改动就行了,见下一个例子%至于用两个临时变量是否能加快运行速度,这个例子体现不出来,而下一个例子,则会有显著区别plot(x,yN=2^16个点,图像已经成了椭圆环了,而后面的龙格-库塔法,算了N=2^19,是前者的8倍,图像仍然是一个漂亮的椭圆3、程序的优化下面我们用龙格-库塔法来画下面方程的轨线:⎩⎨⎧=+=yxyxyx