数学建模软件求解入门_第1页
数学建模软件求解入门_第2页
数学建模软件求解入门_第3页
数学建模软件求解入门_第4页
数学建模软件求解入门_第5页
已阅读5页,还剩78页未读 继续免费阅读

下载本文档

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

文档简介

数学建模软件求解入门第1页,课件共83页,创作于2023年2月Matlab简介第2页,课件共83页,创作于2023年2月1997年仲春,MATLAB5.0版问世,紧接着是5.1、5.2,以及和1999年春的5.3版。与4.x相比,现今的MATLAB拥有更丰富的数据类型和结构、更友善的面向对象、更加快速精良的图形可视、更广博的数学和数据分析资源、更多的应用开发工具。发展至今,Matlab7.0版已经问世Matlab简介第3页,课件共83页,创作于2023年2月Matlab简介第4页,课件共83页,创作于2023年2月Matlab软件主要由三部分组成:Matlab主包,Simulink和工具箱Matlab软件的组成第5页,课件共83页,创作于2023年2月第1章矩阵及其基本运算

1.实数值矩阵输入MATLAB的强大功能之一体现在能直接处理向量或矩阵。当然首要任务是输入待处理的向量或矩阵。不管是任何矩阵(向量),我们可以直接按行方式输入每个元素:同一行中的元素用逗号(,)或者用空格符来分隔,且空格个数不限;不同的行用分号(;)分隔。所有元素处于一方括号([])内;当矩阵是多维(三维以上),且方括号内的元素是维数较低的矩阵时,会有多重的方括号。如:1)>>Time=[111212345678910]Time=1112123456789102)>>A=[123;234;345]A=1232343453)>>Null_M=[]%生成一个空矩阵4)>>A=[[A;[123]],[1;2;3;4]]第6页,课件共83页,创作于2023年2月特殊矩阵的生成

命令

全零阵函数zeros格式B=zeros(n)%生成n×n全零阵B=zeros(m,n)%生成m×n全零阵B=zeros([mn])%生成m×n全零阵B=zeros(size(A))%生成与矩阵A相同大小的全零阵命令

单位阵函数eye格式Y=eye(n)%生成n×n单位阵Y=eye(m,n)%生成m×n单位阵Y=eye(size(A))%生成与矩阵A相同大小的单位阵第7页,课件共83页,创作于2023年2月命令

均匀分布随机矩阵函数rand格式Y=rand(n)%生成n×n随机矩阵,其元素在(0,1)内Y=rand(m,n)%生成m×n随机矩阵命令

全1阵函数ones格式Y=ones(n)%生成n×n全1阵Y=ones(m,n)%生成m×n全1阵Y=ones([mn])%生成m×n全1阵Y=ones(size(A))%生成与矩阵A相同大小的全1阵思考:如何产生20至50间的随机数?第8页,课件共83页,创作于2023年2月向量生成方法第9页,课件共83页,创作于2023年2月第10页,课件共83页,创作于2023年2月2.定数线性采样法该采样法在给定的范围内确定等距离的一个样本数。该方法很实用,特别适合定义大的数组例如:在之间取5个点>>linspace(-pi,pi,5)3.利用随机数发生器定义一维数组例如:产生5个(0,1)均匀分布随机数,并定义一维数组x。>>x=rand(1,5)第11页,课件共83页,创作于2023年2月Matlab常用命令第12页,课件共83页,创作于2023年2月Matlab常用命令第13页,课件共83页,创作于2023年2月若要检视现存於工作空间(Workspace)的变数,可键入who:whoYourvariablesare:testfilex这些是由使用者定义的变数。若要知道这些变数的详细资料,可键入:whosNameSizeBytesClassA2x464doublearrayB4x264doublearrayans1x18doublearrayx1x18doublearrayy1x18doublearrayz1x18doublearrayGrandtotalis20elementsusing160bytes使用clear可以删除工作空间的变数:clearAA???Undefinedfunctionorvariable'A'.Matlab常用命令应用第14页,课件共83页,创作于2023年2月

变量与常量变量是任何程序设计语言的基本要素之一,MATLAB语言当然也不例外。与常规的程序设计语言不同的MATLAB并不要求事先对所使用的变量进行声明,也不需要指定变量类型,MATLAB语言会自动依据所赋予变量的值或对变量所进行的操作来识别变量的类型。在赋值过程中如果赋值变量已存在时,MATLAB语言将使用新值代替旧值,并以新值类型代替旧值类型。在MATLAB语言中变量的命名应遵循如下规则:(1)变量名区分大小写。(2)变量名长度不超31位,第31个字符之后的字符将被MATLAB语言所忽略。(3)变量名以字母开头,可以是字母、数字、下划线组成,但不能使用标点。与其他的程序设计语言相同,在MATLAB语言中也存在变量作用域的问题。在未加特殊说明的情况下,MATLAB语言将所识别的一切变量视为局部变量,即仅在其使用的M文件内有效。若要将变量定义为全局变量,则应当对变量进行说明,即在该变量前加关键字global。一般来说全局变量均用大写的英文字符表示。MATLAB语言本身也具有一些预定义的变量,这些特殊的变量称为常量。第15页,课件共83页,创作于2023年2月另外MATLAB有些永久常数(Permanentconstants),虽然在工作空间中看不到,但使用者可直接取用,例如:pians=3.1416===============================================下表即为MATLAB常用到的永久常数。小整理:MATLAB的永久常数

i或j:基本虚数单位(即)

eps:系统的浮点(Floating-point)精确度

inf:无限大,例如1/0nan或NaN:非数值(Notanumber),例如0/0pi:圆周率p(=3.1415926...)

realmax:系统所能表示的最大数值

realmin:系统所能表示的最小数值

nargin:函数的输入引数个数

nargout:函数的输出引数个数第16页,课件共83页,创作于2023年2月特别注意第17页,课件共83页,创作于2023年2月实现Matlab与word的无缝连接步骤:1)在命令窗口输入notebook-setup2)选择word版本3)在命令窗口输入notebook4)word中输入文字以及Matlab语句,全部选中,选中下拉菜单,点选defineinputcell,再选择evaluatecell第18页,课件共83页,创作于2023年2月作出泊松分布的密度图形x=0:20;y=poisspdf(x,5);stem(x,y)

第19页,课件共83页,创作于2023年2月将硬盘的数据读入变量现在有一组数据保存在three.xls文件中,要在Matlab中读入这组数据>>a=xlsread(‘e:\three.xls’)如果保存在文件soil.txt中只要输入>>a=load(‘e:\soil.txt’)第20页,课件共83页,创作于2023年2月矩阵的简单运算结果显示:A+B=92747105128A-B=-70-5-2-3-4-3-64运算符:“+”和“-”分别为加、减运算符。运算规则:对应元素相加、减,即按线性代数中矩阵的“十”,“一”运算进行。加、减运算例>>A=[1,1,1;1,2,3;1,3,6]>>B=[8,1,6;3,5,7;4,9,2]>>A+B=A+B>>A-B=A-B第21页,课件共83页,创作于2023年2月运算符:*运算规则:按线性代数中矩阵乘法运算进行,即放在前面的矩阵的各行元素,分别与放在后面的矩阵的各列元素对应相乘并相加。1.两个矩阵相乘乘法例>>X=[2345;1221];>>Y=[011;110;001;100];Z=X*Y结果显示为:Z=856333第22页,课件共83页,创作于2023年2月上例中:a=2*X则显示:a=468102442矩阵的数乘:数乘矩阵维数相同的两个向量的点乘。数组乘法:A.*B表示A与B对应元素相乘。向量的点乘(内积)需要注意的是点乘与矩阵的乘法是有区别的第23页,课件共83页,创作于2023年2月例:a=[123;426;749]b=[4;1;2];x=a\b则显示:x=-1.50002.00000.5000如果a为非奇异矩阵,则a\b和b/a可通过a的逆矩阵与b阵得到:

a\b=inv(a)*bb/a=b*inv(a)数组除法:A./B表示A中元素与B中元素对应相除。矩阵除法Matlab提供了两种除法运算:左除(\)和右除(/)。一般情况下,x=a\b是方程a*x=b的解,而x=b/a是方程x*a=b的解。同样此时也要注意除法和点除之间的区别第24页,课件共83页,创作于2023年2月运算符:^运算规则:(1)当A为方阵,P为大于0的整数时,A^P表示A的P次方,即A自乘P次;P为小于0的整数时,A^P表示A-1的P次方。(4)标量的数组乘方P.^A,标量的数组乘方定义为数组乘方:A.^P:表示A的每个元素的P次乘方。矩阵乘方矩阵的乘方要求矩阵A是方阵第25页,课件共83页,创作于2023年2月例>>A=[123;456;789]A=123456789>>D=det(A)D=0运算符:′运算规则:若矩阵A的元素为实数,则与线性代数中矩阵的转置相同。若A为复数矩阵,则A转置后的元素由A对应元素的共轭复数构成。若仅希望转置,则用如下命令:A.′。矩阵转置方阵的行列式函数det格式d=det(X)%返回方阵X的行列式的值第26页,课件共83页,创作于2023年2月函数inv格式Y=inv(X)%求方阵X的逆矩阵。若X为奇异阵或近似奇异阵,将给出警告信息。例1-43求的逆矩阵方法一>>A=[123;221;343];>>Y=inv(A)或Y=A^(-1)则结果显示为

Y=1.00003.0000-2.0000-1.5000-3.00002.50001.00001.0000-1.0000方法二:由增广矩阵进行初等行变换>>B=[1,2,3,1,0,0;2,2,1,0,1,0;3,4,3,0,0,1];>>C=rref(B)%化行最简形>>X=C(:,4:6)%取矩阵C中的A^(-1)部分矩阵求逆命令逆第27页,课件共83页,创作于2023年2月子矩阵的提取和运算使用命令:B=A(v1,v2),其中,v1向量表示子矩阵要包含的行号构成的向量,v2表示要包含的列号构成的向量。若v1为:,则表示要提取所有的行,同样使用列号。关键词end表示最后一行(或列)例如:B1=A(1:2:end,:)表示提取A矩阵的全部奇数行、所有列B2=A([3,2,1],[2,3,4])表示提取A矩阵3,2,1行、2,3,4列构成子矩阵。B3=A(:,end:-1:1)表示将A矩阵左右翻转,即最后一列排在最前面。第28页,课件共83页,创作于2023年2月

A(:,2)=[]%删除第二列(:代表所有行)例A=123456789101112我们可以对矩阵进行各种处理:A(2,3)=5%改变位於第二列,第三行的元素值A=123456589101112B=A(2,1:3)%取出部份矩阵B

B=565A=[AB']%将B转置後以行向量并入AA=123455658691011125第29页,课件共83页,创作于2023年2月A=[A;4321]%

加入第四行

A=134555869111254321

A([14],:)=[]%删除第一和第四行(:代表所有列)

A=5586911125第30页,课件共83页,创作于2023年2月数组操作函数Repmat(D,1,3)命令:在水平方向“铺放”三个矩阵D=100010001则Repmat(D,1,3)结果为ans=100100100010010010001001001Diag(A,1)命令:对矩阵A取第一上对角元素可运行diag(A,-1),查看运行结果Triu(A)命令:取A的上三角阵;tril(A)命令:取A的下三角阵第31页,课件共83页,创作于2023年2月矩阵的逻辑运算矩阵的比较运算:用==表示等于关系,用>=表示大于等于关系,用~=表示不等于关系等。A=[123;4,5,6;7,8,0]Find(A>=5)找出矩阵中元素大于等于5的下标ans=3568该函数先将A按列构成列向量,然后判断哪些元素大于等于5,返回其下标。>>[i,j]=find(A>=5);[i,j]同时返回行和列坐标>>all(A>=5)判断A矩阵的某列元素是否全部大于等于5,是返回1,否则为0>>any(A>=5)你能猜测表示什么含义吗?第32页,课件共83页,创作于2023年2月abs(x):纯量的绝对值或向量的长度angle(z):复数z的相角(Phaseangle)sqrt(x):开平方

real(z):复数z的实部imag(z):复数z的虚部conj(z):复数z的共轭复数round(x):四舍五入至最近整数fix(x):无论正负,舍去小数至最近整数floor(x):地板函数,即舍去正小数至最近整数ceil(x):天花板函数,即加入正小数至最近整数rat(x):将实数x化为分数表示rats(x):将实数x化为多项分数展开sign(x):符号函数(Signumfunction)。当x<0时,sign(x)=-1;当x=0时,sign(x)=0;当x>0时,sign(x)=1。rem(x,y):求x除以y的馀数gcd(x,y):整数x和y的最大公因数lcm(x,y):整数x和y的最小公倍数MATLAB常用的基本数学函数第33页,课件共83页,创作于2023年2月第2章绘图与图形处理

命令1plot功能线性二维图。在线条多于一条时,若用户没有指定使用颜色,则plot循环使用由当前坐标轴颜色顺序属性(currentaxesColorOrderproperty)定义的颜色,以区别不同的线条。在用完上述属性值后,plot又循环使用由坐标轴线型顺序属性(axesLineStyleOrderproperty)定义的线型,以区别不同的线条。用法plot(X,Y)当X,Y均为实数向量,且为同维向量(可以不是同型向量),X=[x(i)],Y=[y(i)],则plot(X,Y)先描出点(x(i),y(i)),然后用直线依次相连。二维图形的绘制1散点图的绘制画散点图一般使用命令scatter,其调用格式为:scatter(x,y)2二维曲线的绘制第34页,课件共83页,创作于2023年2月plot(X1,Y1,LineSpec1,X2,Y2,LineSpec2…)将按顺序分别画出由三参数定义Xi,Yi,LineSpeci的线条。其中参数LineSpeci指明了线条的类型,标记符号,和画线用的颜色。例7-1>>t=0:pi/20:2*pi;>>plot(t,t.*cos(t),'-.r*')>>holdon>>plot(exp(t/100).*sin(t-pi/2),'--mo')>>plot(sin(t-pi),':bs')>>holdoff第35页,课件共83页,创作于2023年2月绘图中的一些线型和颜色定义符---:-.线型实线(缺省值)划线点线点划线定义符R(red)G(green)b(blue)c(cyan)颜色红色绿色兰色青色定义符M(magenta)y(yellow)k(black)w(white)颜色品红黄色黑色白色第36页,课件共83页,创作于2023年2月特殊标记定义符+o(字母)*.x标记类型加号小圆圈星号实点交叉号定义符d^v><标记类型棱形向上三角形向下三角形向右三角形向左三角形定义符shP标记类型正方形正六角星正五角星第37页,课件共83页,创作于2023年2月第38页,课件共83页,创作于2023年2月theta=0:0.01:6*pi;rho=5*sin(4*theta/3);polar(theta,rho)例子:试用极坐标绘制函数polar()绘制出的极坐标曲线第39页,课件共83页,创作于2023年2月第40页,课件共83页,创作于2023年2月第41页,课件共83页,创作于2023年2月第42页,课件共83页,创作于2023年2月分块显示的例子第43页,课件共83页,创作于2023年2月第44页,课件共83页,创作于2023年2月关于条形图的例子第45页,课件共83页,创作于2023年2月第46页,课件共83页,创作于2023年2月第47页,课件共83页,创作于2023年2月建立三维饼图第48页,课件共83页,创作于2023年2月三维图形的绘制1三维曲线的绘制三维曲线可以使用plot()命令,其调用格式为plot3(x,y,z)theta=0:0.01:2*pi;x=sin(theta);y=cos(theta);z=theta;plot3(x,y,z)例如:以下的程序是在绘制什么图形?第49页,课件共83页,创作于2023年2月2三维曲面绘制绘制三维曲面,先调用meshgrid()函数生成网格矩阵数据x和y,再使用mesh()或surf()等函数进行三维图形绘制。其调用格式为[x,y]=meshgrid(v1,v2);z=x.*y;mesh(x,y,z)第50页,课件共83页,创作于2023年2月练习:求x^2+y^2=z的空间曲面要求:图像的横,纵坐标的范围在-4到4之间第51页,课件共83页,创作于2023年2月1、在图形上加格栅、图例和标注1)GRIDON:加格栅在当前图上GRIDOFF:删除格栅处理图形2)hh=xlabel(string):

在当前图形的x轴上加图例stringhh=ylabel(string):在当前图形的y轴上加图例stringhh=title(string):在当前图形的顶端上加图例stringhh=zlabel(string):在当前图形的z轴上加图例string第52页,课件共83页,创作于2023年2月例在区间[0,2*pi]画sin(x)的图形,并加注图例“自变量X”、“函数Y”、“示意图”,并加格栅.解x=linspace(0,2*pi,30);y=sin(x);plot(x,y)xlabel('自变量X')ylabel('函数Y')title('示意图')gridonMatlabliti2第53页,课件共83页,创作于2023年2月

3)hh=gtext(‘string’)

命令gtext(‘string’)用鼠标放置标注在现有的图上.运行命令gtext(‘string’)时,屏幕上出现当前图形,在图形上出现一个交叉的十字,该十字随鼠标的移动移动,当按下鼠标左键时,该标注string放在当前十交叉的位置.例在区间[0,2*pi]画sin(x),并分别标注“sin(x)””cos(x)”.解x=linspace(0,2*pi,30);y=sin(x);z=cos(x);plot(x,y,x,z)gtext(‘sin(x)’);gtext(’cos(x)’)Matlabliti3返回第54页,课件共83页,创作于2023年2月第三章基本编程第55页,课件共83页,创作于2023年2月循环语句第56页,课件共83页,创作于2023年2月这个例子想做什么?从1到多少的自然数和大于或等于100循环语句第57页,课件共83页,创作于2023年2月当有一个等效的数组方法来解给定的问题时,应避免用For循环。例如forn=1:10 x(n)=sin(n*pi/10); end »x x= Columns1through7 0.30900.58780.80900.95111.00000.95110.8090 Columns8through10 0.58780.30900.0000这个例子可重写为:

»n=1:10; »x=sin(n*pi/10) x= Columns1through7 0.30900.58780.80900.95111.00000.95110.8090 Columns8through10 0.58780.30900.0000两种方法得出同样的结果,而后者执行更快,更直观,要求较少的输入。循环语句第58页,课件共83页,创作于2023年2月条件语句第59页,课件共83页,创作于2023年2月条件语句第60页,课件共83页,创作于2023年2月条件语句第61页,课件共83页,创作于2023年2月例子ifx>=1y=10;elseifx>-1&x<1y=0;elsey=-10;end编程如下Matlabifprom第62页,课件共83页,创作于2023年2月条件语句第63页,课件共83页,创作于2023年2月条件语句t=-pi:0.1:pi;trigname=input('inputtrigfunctionname:');switchtrignamecase'sin'plot(t,sin(t))case'cos'plot(t,cos(t))case'tan'plot(t,tan(t))otherwisebreakendMatlabswitchprom第64页,课件共83页,创作于2023年2月【*例8.1-1】通过M脚本文件,画出下列分段函数所表示的曲面。(1)编写M脚本文件的步骤图8.1-1-1MATLABEditor/Debugger窗口M文件M文件有两种形式:一是命令文件;另一种是M函数文件。第65页,课件共83页,创作于2023年2月点击MATLAB指令窗工具条上的NewFile图标,就可打开如图8.1-1-1所示的MATLAB文件编辑调试器MATLABEditor/Debugger。其窗口名为untitled,用户即可在空白窗口中编写程序。比如输入如下一段程序[zx81.m]%zx81.m Thisismyfirstexample. <1>a=2;b=2; %<2> clf;x=-a:0.2:a;y=-b:0.2:b;fori=1:length(y)forj=1:length(x)ifx(j)+y(i)>1z(i,j)=0.5457*exp(-0.75*y(i)^2-3.75*x(j)^2-1.5*x(j));elseifx(j)+y(i)<=-1z(i,j)=0.5457*exp(-0.75*y(i)^2-3.75*x(j)^2+1.5*x(j));M脚本文件第66页,课件共83页,创作于2023年2月

elsez(i,j)=0.7575*exp(-y(i)^2-6.*x(j)^2);endendendaxis([-a,a,-b,b,min(min(z)),max(max(z))]);colormap(flipud(winter));surf(x,y,z);点击编辑调试器工具条图标,在弹出的Windows标准风格的“保存为”对话框中,选择保存文件夹,键入新编文件名(如zx81),点动【保存】键,就完成了文件保存。(2)运行文件使zx81.m所在目录成为当前目录,或让该目录处在MATLAB的搜索路径上然后运行以下指令,便可得到图形。zx81

M脚本文件Matlabzx81第67页,课件共83页,创作于2023年2月M脚本文件第68页,课件共83页,创作于2023年2月M函数文件M函数是由function语句引导的,其基本结构如下:1)function[返回变量列表]=函数名(输入变量列表)注视说明语句段,由%引导输入、返回变量格式的检测函数体语句2)还可以运用nline()函数来直接编写程序,其调用格式为:fun=inline(‘函数内容’,自变量列表)例如:可以用f=inline(‘sin(x.^2+y.^2)’,’x’,’y’)直接定义。3)还可以借助匿名函数,其定义形式更为简洁,调用格式如下:f=@(变量列表)函数内容例如:f=@(x,y)sin(x.^2+y.^2)’,第69页,课件共83页,创作于2023年2月练习:应用上面给出的三个定义函数的方法计算函数在(2,3)处的函数值第70页,课件共83页,创作于2023年2月M函数文件设可逆方阵A,试编写同时求的M函数文件。在编辑窗口输入以下的代码Function[da,a2,inva,traa]=comp4(x)da=det(x);a2=x^2;inva=inv(x);traa=x’保存该文件,文件名为comp4.M在命令窗口输入下列语句:M文件的调用A=[12;58];

温馨提示

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

评论

0/150

提交评论