matlab7.0基础与编程入门课件第十二讲matlab在理工课程中的应用

上传人:E**** 文档编号:91257090 上传时间:2019-06-26 格式:PPT 页数:98 大小:1.53MB
返回 下载 相关 举报
matlab7.0基础与编程入门课件第十二讲matlab在理工课程中的应用_第1页
第1页 / 共98页
matlab7.0基础与编程入门课件第十二讲matlab在理工课程中的应用_第2页
第2页 / 共98页
matlab7.0基础与编程入门课件第十二讲matlab在理工课程中的应用_第3页
第3页 / 共98页
matlab7.0基础与编程入门课件第十二讲matlab在理工课程中的应用_第4页
第4页 / 共98页
matlab7.0基础与编程入门课件第十二讲matlab在理工课程中的应用_第5页
第5页 / 共98页
点击查看更多>>
资源描述

《matlab7.0基础与编程入门课件第十二讲matlab在理工课程中的应用》由会员分享,可在线阅读,更多相关《matlab7.0基础与编程入门课件第十二讲matlab在理工课程中的应用(98页珍藏版)》请在金锄头文库上搜索。

1、,MATLAB在理工课程中的应用,第五章 在高等数学中的应用,5.1 函数、极限和导数 一、单变量函数的计算和绘图 例5-1-1设 要求以0.01秒为间隔,求出y的151个点,并求出其导数的值和曲线。,解: 建模 直接用程序文件编程的方法 编成函数文件,由主程序调用的方法,t=0:.01:1.5; %设定自变量数组t w=4*sqrt(3); %固定频率 y=sqrt(3)/2*exp(-4*t).*sin(w*t+pi/3);%注意用数组运算式 subplot(2,1,1),plot(t,y),grid %绘制曲线并加上坐标网格 title(绘图示例),xlabel(时间t),ylabel(

2、y(t) % 加标注 % 求导数并绘制导数曲线,注意数组求导数后其长度减少1 Dy=diff(y);subplot(2,1,2),plot(t(1:length(t)-1),Dy),grid ylabel(Dy(t) % 加标注,编成函数文件: %主程序(ex511b) dt=0.01;t=0:dt:1.5;w=4*sqrt(3); y=ex511bf(t,w);Dy=diff(y)/dt; subplot(2,1,1),plot(t,y),grid %绘制曲线并加上坐标网格 subplot(2,1,2),plot(t(1:length(t)-1),Dy),grid ylabel(Dy(t)

3、% 加标注 %函数文件ex511bf function xvalues=ex511bf(tvalues,w) xvalues=sqrt(3)/2*exp(-4*tvalues).*sin(w*tvalues+pi/3);,从本例来看,第二种方法似乎更麻烦一些,但它具有模块化的特点。当程序中要反复多次调用此函数,而且输入不同的自变量时,利用函数文件可大大简化编程。,例5-1-2绘制极坐标系下曲线 并讨论参数a,b,n的影响。,为了便于比较,编制一个能分别画两个图形的程序,采用for循环。 可从中看出用循环的技巧,%绘制极坐标系下曲线 theta=0:0.1:2*pi; %产生极角向量 for i

4、=1:2 a(i)=input(a=);b(i)=input(b=);n(i)=input(n=) rho(i,:)=a(i)*cos(b(i)+n(i)*theta); %极坐标方程 subplot(1,2,i),polar(theta,rho(i,:);%极坐标系绘图 end,a=2 b=pi/4 n=2 (4叶玫瑰线),a=2 b=0 n=3 (3叶玫瑰线),二、参变方程表示的函数的计算和绘图,例5-1-3摆线的绘制。 当圆轮在平面上滚动时,其圆周上任一点所画的轨迹称为摆线。 这一点在圆内 内摆线 这一点在圆外 外摆线,r为轮半径, R为点半径,t=0:0.1:10; r=input(r

5、=), R=input(R=) x=r*t-R*sin(t);y=r-R*cos(t); plot(x,y),hold on,axis equal %x,y坐标保持等比例显示,摆线的绘制,例5-1-4三次抛物线的方程为 试探讨参数a和c对其图形的影响。,三、曲线族的绘制,x=-2:0.1:2; %给定x数组,确定范围及取点密度 subplot(1,2,1) %分两个画面绘图 for c=-3:3 plot(x,x.3+c*x),hold on,end,grid %a=1 取不同的c axis(equal),axis(-2 2 -3 3) %x,y坐标等比例并确定范围 subplot(1,2,2

6、) for a=-3:3 plot(x,a*x.3+x),hold on,end,grid %c=1 取不同的a axis equal ,axis(-2 2 -3 3),c和a取不同值时的曲线族,5.2 空间解析几何,一、曲面方程 例5-2-1二次曲面的方程如下 要求讨论参数a,b,c对其形状的影响,并画出其图形。,a=input(a=);b=input(b=);c=input(c=); d=input(d=);N=input(N=); %输入参数,N为网格线数目 xgrid=linspace(-abs(a),abs(a),N); %建立x网格坐标 ygrid=linspace(-abs(b)

7、,abs(b),N); %建立y网格坐标 x,y=meshgrid(xgrid,ygrid) %确定NXN个点的x,y网格坐标 z=c*sqrt(d-y.*y/b/b-x.*x/a/a);u=1; %u=1,表示z要取正负值 z1=real(z); %取z的实部z1 for k=2:N-1 %以下7行程序的作用是取消z中含虚数的点 for j=2:N-1 if imag(z(k,j)=0 z1(k,j)=0;end if all(imag(z(k-1:k+1,j-1:j+1)=0 z1(k,j)=NaN;end end end surf(x,y,z1),hold if u=1 z2=-z1;s

8、urf(x,y,z2) %u=1时加画负半面,并加坐标轴 axis(-abs(a),abs(a),-abs(b),abs(b),-abs(c),abs(c); end xlabel(x),ylabel(y),zlabel(z) hold off,a=5 b=4 c=3 d=1 N=20,a=5i b=4 c=3 d=1 N=20,a=5i b=4i c=3 d=1 N=20,二、空间两曲线的交线,例5-2-2列出求空间任意曲面的交线的程序,两空间曲面联立起来就形成一个空间的曲线的方程 mesh语句,要显示其交点,须找到各个交点。由于数值计算是离散点,难以找到完全重合的点 采用设置门限的方法,两

9、曲线差值小于设定门限,就认为是交点,x,y=meshgrid(-2:.1:2); %确定计算和绘图的定义域网格 z1=x.*x-2*y.*y; %第一个曲面方程 z2=2*x-3*y; %第二个曲面方程(平面) mesh(x,y,z1);hold;mesh(x,y,z2); %在一个图上同时画两个图 r0=(abs(z1-z2)=.1; %求二个曲面z坐标差小于0.1的网格矩阵 zz=r0.*z1;yy=r0.*y;xx=r0.*x; %求这些网格上的坐标值,即交线坐标 plot3(xx(r0=0),yy(r0=0),zz(r0=0),*);%画出这些点 colormap(gray),hold

10、 off,两曲面的交线,如果想改变曲面方程,可以改动第二行和第三行,但这样的程序不是通用的。最好是程序运行时能向用户提问,允许用户输入曲面方程,用到字符串功能和eval命令 S1=input(输入第一个方程,s);,在原来的z1语句改为 z1=eval(s1);,给出定义域和间隔 x,y=meshgrid(xmin:dx:xmax,ymin:dy:ymax);,xmin=input(xmin=);dx=input(dx=);xmax=input(xmax=) ymin=input(ymin=);dy=input(dy=);ymax=input(ymax=) x,y=meshgrid(xmin:

11、dx:xmax,ymin:dy:ymax); %确定计算和绘图的定义域网格 s1=input(输入第一个方程:,s); %输入第一个曲面方程 z1=eval(s1); s2=input(输入第二个方程:,s); %输入第二个曲面方程 z2=eval(s2); mesh(x,y,z1);hold;mesh(x,y,z2); %在一个图上同时画两个图 r0=(abs(z1-z2)=.1; %求二个曲面z坐标差小于0.1的网格矩阵 zz=r0.*z1;yy=r0.*y;xx=r0.*x; %求这些网格上的坐标值,即交线坐标 plot3(xx(r0=0),yy(r0=0),zz(r0=0),*);%画

12、出这些点 colormap(gray),hold off,5.3 数列和极限,5.4 数值方法和数值积分,一、任意非线性方程f(x)=0的解,例5-4-1用切线法求方程的近似数值解,即求任意曲线y=f(x)过零点的问题,fzero,先用fplot函数得出曲线,大致了解一下曲线形状 fplot(x.3+10*x.2-2*sin(x)-50,-12,5),%子程序 function y=ex541f(x) y=x.3+10*x.2-2*sin(x)-50;,%主程序 x0=input(x0=); fplot(x.3+10*x.2-2*sin(x)-50,-12,5),hold on,grid on

13、 x=fzero(ex541f,x0) plot(x, 0,*r);hold on;,x0=-10 x = -9.4384,x0=3 x = 2.0707,x0=-3 x = -2.564,二、数值定积分,trapz函数,三、多重积分,例5-4-3计算二重积分,积分区域为由x=1,y=x及y=0所围成的闭合区域,建模:积分区域如图所示,clear,format compact fill(0,1,1,0,0,0,1,0,y),hold %画出积分区域 fill(0.55,0.6,0.6,0.55,0.55,0,0,0.6,0.55,0,r)%画出单元条 dx=input(步长dx=);dy=dx

14、; x=0:dx:1;lx=length(x); for k=1:lx x1=(k-1)*dx; y1=0:dy:x1; f=x1.2+y1.2; s1(k)=trapz(f)*dy; end s=trapz(s1)*dx,步长dx=0.1 s = 0.3375,步长dx=0.01 s = 0.3334,例5-4-4计算三重积分,积分区域为由x=1,y=x,z=xy及z=0所围成的闭合区域,建模: 先画出积分区域,三重积分区域图,dx=input(步长dx=);dy=dx;dz=dx; x=0:dx:1;lx=length(x); for k=1:lx x1=(k-1)*dx; y1=0:dy

15、:x1; for j=1:length(y) y1=(j-1)*dy; z1=0:dz:x1*y1; f=x1.*y1.2.*z1.3; s1(j)=trapz(f)*dz; end s2(k)=trapz(s1)*dy end s=trapz(s2)*dx,步长dx=0.1 s = 4.2081,步长dx=0.01 s = 0.0333,四、微分方程和数值积分,例5-4-5用数值积分法求解下列微分方程,设初始时间t0=0;终止时间tf=3;初始条件y(0)=0,dy(t)/dt=0。,建模: 先将方程化成两个一阶微分方程组,设,写成矩阵形式为,clf,t0=0;tf=3*pi;x0t=0;0; t,x=ode23(ex545f,t0,tf,x0t) y=x(:,1); %数值积分解 for I=1:length(t); y2(I)=(1+2/(pi2)*(1-cos(t(I)-t(I)2/(pi2);%解析解 end u=1-(t.2)/(pi2); clf,plot(t,y,-,t,u,+,t,y2,o) legend(数值积分解,输入量,解析解),function xdot=ex545f(t,x) u=1-(t.

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号