数学模型讲稿_第1页
数学模型讲稿_第2页
数学模型讲稿_第3页
数学模型讲稿_第4页
数学模型讲稿_第5页
已阅读5页,还剩111页未读 继续免费阅读

下载本文档

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

文档简介

数学建模与数学实验东华理工学院大学 数学与信息科学学院MATLAB介绍本课件将共享至邮箱dhlgdxMATLAB介绍一、变 量二、函 数三、 矩阵(数值)运算四、 MATLAB编程六、 符号运算五、 优化求解七、 多项式运算数学运算符号及标点符号( 1) MATLAB的每条命令后,若为 逗号 或 无标点 符号,则显示命令的结果;若命令后为 分号 ,则禁止显示结果 . ( 2) “% ” 后面所有文字为注释 . ( 3) “.”表示续行 .数学函数MATLAB的内部函数是有限的,有时为了研究某一个函数的各种性态,需要为 MATLAB定义新函数,为此必须编写函数文件 . 函数文件是文件名后缀为 M的文件,这类文件的 第一行必须是一特殊字符 function开始 ,格式为:function 因变量名 =函数名(自变量名)函数值的获得必须通过具体的运算实现,并赋给因变量 . M文件M文件建立方法: 1. 在 Matlab中,点 :File-New-M-file2. 在编辑窗口中输入程序内容3. 点: File-Save,存盘, M文件名必须 与函数名一致。Matlab的应用程序也以 M文件保存。例:定义函数 f(x1,x2)=100(x2-x12)2+(1-x1)2function f=fun(x)f=100*(x(2)-x(1)2)2+(1-x(1)21.建立 M文件: fun.mMATLAB(fun)2. 可以直接使用函数 fun.m例如:计算 f(1,2), 只需在 Matlab命令窗口键入命令:x=1 2fun(x)数据的输入输出 1. input函数: 用于向计算机输入一个参数。 调用格式: A=input(提示信息,选项 ); 注: s选项,则允许用户输入一个字符串。 例如想输入一个人的姓名,可采用命令 xm=input(Whats your name:,s) 【 例 2】 求一元二次方程 a2 +bx+c=0的根。二数据的输入输出 a=input(a=?); b=input(b=?); c=input(c=?); d=b*b-4*a*c; x=(-b+sqrt(d)/(2*a),(-b-sqrt(d)/(2*a) 将该程序以 aa.m文件存盘,然后运行 aa.m文件。 2 pause函数: 暂停程序的执行。 调用格式: pause(延迟秒数 ) 注:如果省略延迟时间,直接使用 pause,则将暂停程序,直到用户按任一键后程序继续执行。二数据的输入输出 3 disp函数: 命令窗口输出函数。 调用格式: disp(输出项 ) 注:输出项为字符串或矩阵。 例如 A=Hello,MATLAB; disp(A) 输出为: Hello,MATLAB三、 矩 阵逗号 或 空格 用于分隔某一行的元素, 分号 用于区分不同的行 . 除了分号,在输入矩阵时,按 Enter键也表示开始一新行 . 输入矩阵时,严格要求所有行有相同的列 . 例 m=1 2 3 4 ; 5 6 7 8; 9 10 11 12 p=1 1 1 12 2 2 23 3 3 31、矩阵的建立特殊矩阵 的建立: . MATLAB(matrix1)d=eye(m, n) 产生一个 m行、 n列的单位矩阵c=ones(m, n) 产生一个 m行、 n列的元素全为 1的矩阵b=zeros(m, n) 产生一个 m行、 n列的零矩阵a= 产生一个空矩阵,当对一项操作无结果时,返回空矩阵,空矩阵的大小为零 . 关系与逻辑运算1、关系操作符1、 for循环: 允许一组命令以固定的和预定的次数重复for x=arraycommandsend在 for和 end语句之间的命令串 commands按数组( array)中的每一列执行一次 . 在每一次迭代中, x被指定为数组的下一列,即在第 n次循环中, x=array(:, n)控制流MATLAB提供三种决策或控制流结构:for循环、 while循环、 if-else-end结构 . 这些结构经常包含大量的 MATLAB命令,故经常出现在MATLAB程序中,而不是直接加在 MATLAB提示符下 . 例 对 n=1,2,10, 求 xn= 的值 MATLAB(for1)while expressioncommandsend只要在表达式 (expression)里的所有元素为真,就执行 while和end语句之间的命令串 commands. 2、 While 循环与 for循环以固定次数求一组命令相反, while循环以不定的次数求一组语句的值 .MATLAB(while1)例 设银行年利率为 11.25% 。将 10000元钱存入银行,问多长时间会连本带利翻一番?3、 If-Else-End结构( 1)有一个选择的一般形式是:if expressioncommandsend如果在表达式 (expression)里的所有元素为真,就执行 if和 end语句之间的命令串 commands. MATLAB(fun1)先建立 M文件 fun1.m定义函数 f( x),再在Matlab命令窗口输入 fun1(2),fun1(-1)即可。2) 有三个或更多的选择的一般形式是:if ( expression1)commands1else if ( expression2)commands2 else if ( expression3)commands3 else if elseend或 switch Icaseotherwiseend先建立 M文件 fun2.m定义函数 f( x),再在Matlab命令窗口输入 fun2(2),fun2(0.5), fun2(-1)即可。MATLAB(fun2)程序: A=2,1,-5,1;1,-5,0,7;0,2,1,-1;1,6,-1,-4;b=13,-9,6,0; x=Ab;ans =-66.555625.6667-18.777826.5556Eg 101 求解线性方程组Eg 102 求解非线性方程Z =2.0946( 1)建立函数文件 eg102.mfunction y = eg102(x)y = x.3-2*x-5;( 2)用 fzero函数求根Z=fzero(eg102,2)Eg 103 求解非线性方程组( 1)建立函数文件 eg103.mfunction q=eg103(p)x=p(1); y=p(2);q(1)=x-0.6*sin(x)-0.3*cos(y);q(2)=y-0.6*cos(x)+0.3*sin(y);( 2)调用 fsolve函数求方程的根X=fsolve(eg103,0.5,0.5); Q=eg103(X)X = 0.6354 0.3734Q = 1.0e-009 *0.2375 0.2957Eg 201 微分方程解析解用 dsolve 求解:u=dsolve(Du=1+u2,t)结果为:u = tan(t+C1)( 1)( 2)用 dsolve 求解:Y= dsolve(D2y+4*Dy+29*y=0,y(0)=0,Dy(0)=15,x)结果为:Y = 3*exp(-2*x)*sin(5*x)Eg 202 微分方程数值解 ( 1)建立函数文件 eg202.mfunction dy = eg202(t,y)dy = zeros(3,1); % a column vectordy(1) = y(2) * y(3);dy(2) = -y(1) * y(3);dy(3) = -0.51 * y(1) * y(2);( 2)调用 ode45函数求方程的根 ,( to=0,tf=12)T,Y = ode45(eg202,0 12,0 1 1);plot(T,Y(:,1),-,T,Y(:,2),-.,T,Y(:,3),.);Eg 301 二维图形的画法(一)( 1)在 上画出 sin(x)与 cos(x)的图形用 plot命令:x=linspace(0,2*pi,30);y=sin(x); z=cos(x);plot(x,y,r,x,z,b*);( 2)符号函数(显函数、隐函数、参数方程)画图 画出显函数 在 -3,3 上的图形用 ezplot命令:ezplot(x3,-3,3); 画出隐函数 在 -2,0.5, 0,2 上的图形用 ezplot命令:ezplot(exp(x)+sin(x*y),-2,0.5,0,2);Eg 301 二维图形的画法(二) 画出参数方程 在 上的图形用 ezplot命令:ezplot(cos(t).3,sin(t).3,-pi,pi);做法一:用 fplot命令:fplot(exp(2*x)+sin(3*x.2),-1,2);做法二:先建立函数文件 eg301.mfunction y=eg301(x)y=exp(2*x)+sin(3*x.2);在用 fplot命令,或 ezplot命令:fplot(eg301,-1,2);或 ezplot(eg301,-1,2); 画出函数 在 -1,2 上的图形Eg 302 三维图形的画法(一)画出参数方程 x=sin(t),y=cos(t),z=t 在 上的图形t=0:pi/50:10*pi;plot3(sin(t),cos(t),t,b);( 1)空间三维曲线图形 plot3( 2)空间三维曲面图形 surf,mesh,meshz 用 surf画出 在 -3,3*1,5 上的图形x=-3:0.1:3; y=1:0.1:5;xx,yy=meshgrid(x,y);zz=(xx+yy).2;surf(xx,yy,zz);%将数据点所表示的曲面画出来。Eg 302 三维图形的画法(二) 用 mesh画出 在 -3,3*1,5 上的图形x=-3:0.1:3; y=1:0.1:5;xx,yy=meshgrid(x,y);zz=(xx+yy).2;mesh(xx,yy,zz);%将数据点用网格面表示出来。 用 meshz画出 山峰的图形xx,yy=meshgrid(-3:0.125:3);zz=peaks(xx,yy);meshz(xx,yy,zz);%在网格周围画一个参考平面Eg 401 用 matlab优化工具箱解线性规划(一)求解:使问题 在约束条件下的最小值用 linprog求解:c=6,3,4; A=0,1,0; b=50; Aeq=1,1,1; beq=120; vlb=30,0,20; vub=;v,fval=linprog(c,A,b,Aeq,beq,vlb,vub)结果为 : Optimization terminated successfully.v = 30.0000 50.0000 40.0000fval = 490.0000c = -5 -4 -6 A = 1 -1 1; 3 2 4; 3 2 0;b = 20; 42; 30; lb = zeros(3,1);x,fval = linprog(c,A,b,lb)结果为: Optimization terminated successfully.v = 0 15.0000 3.0000fval = -78.0000例 2使问题 在约束条件下的最小值Eg 401 用 matlab优化工具箱解线性规划(二

温馨提示

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

评论

0/150

提交评论