MATLAB在数学建模中的应用_第1页
MATLAB在数学建模中的应用_第2页
MATLAB在数学建模中的应用_第3页
MATLAB在数学建模中的应用_第4页
MATLAB在数学建模中的应用_第5页
已阅读5页,还剩126页未读 继续免费阅读

下载本文档

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

文档简介

MATLAB软件及其在数学建模中的应用

整理ppt求解结果发现规律模型验证讨论分析计算在数学建模中的作用整理ppt数学建模中的计算问题的分析修正模型粗假设修正算法结果分析讨论推广修正假设粗模型粗算法发现问题发现规律模型验证整理ppt主要内容Matlab软件简介数学建模Matlab算法整理pptMATLAB简介MATLAB是MATrixLABoratory的缩写,是由美国MathWorks公司开发的工程计算软件,迄今MATLAB已推出了6.5版.1984年MathWorks公司正式将MATLAB推向市场,从这时起,MATLAB的内核采用C语言编写,而且除原有的数值计算能力外,还新增了数据图视功能.在国际学术界,MATLAB已经被确认为准确、可靠的科学计算标准软件.在设计研究单位和工业部门,MATLAB被认作进行高效研究、开发的首选软件工具.MATLAB的开展

1984年,MATLAB第1版(DOS版)

1992年,MATLAB4.0版

1994年,MATLAB4.2版

1997年,MATLAB5.0版

1999年,MATLAB5.3版

2000年,MATLAB6.0版

2001年,MATLAB6.1版

2002年,MATLAB6.5版

2004年,MATLAB7.0版整理pptMATLAB的功能MATLAB产品组是从支持概念设计、算法开发、建模仿真,到实时实现的集成环境,可用来进行:数据分析数值与符号计算工程与科学绘图控制系统设计数字图像信号处理建模、仿真、原型开发财务工程、应用开发、图形用户界面设计功能强大整理pptMATLAB语言特点编程效率高,允许用数学的语言来编写程序用户使用方便,把程序的编辑、编译、连接和执行融为一体高效方便的矩阵和数组运算语句简单,内涵丰富扩充能力强,交互性,开放性方便的绘图功能该软件由c语言编写,移植性好语言简洁整理ppt学习该软件的必要性:目前,MATLAB软件不仅走入企业、公司和科研机构,而且在高等院校也是从大学生到博士生都必须掌握的一项根本技能,是必不可少的计算工具,。MATLAB功能:数值计算、符号运算和图形处理。整理ppt学习它的意义:随着计算机科学和计算软件的开展,数学系学生必须掌握一门好的计算软件。这是我们就业、继续身造或做科研工作所要用到的。是当代大学生必备的一项技能。整理ppt其它计算软件:MATHEMATIC〔数学分析问题的计算〕;LINGO〔规划问题的计算〕。可以说一个人掌握了一门计算软件,再学习其它计算软件就很容易。整理pptMATLAB的环境菜单项;工具栏;【CommandWindow】命令窗口;【LaunchPad】分类帮助窗口;【Workspace】工作区窗口;【CommandHistory】指令历史记录窗口;【CurrentDirectory】当前目录选择窗口;整理pptMATLAB操作窗口双击桌面快捷键,启动软件。接受命令的窗口整理pptMATLAB在?微积分?中的应用1、求函数值例1

在命令窗口中键入表达式并求时的函数值。>>x=2,y=4>>z=x^2+exp(x+y)-y*log(x)-3x=2y=4z=401.6562命令窗口显示结果:整理ppt例2

用循环语句编写M文件计算ex的值,其中x,n为输入变量,ex的近似表达式为functiony=e(x,n)y=1;s=1;fori=1:ns=s*i;y=y+x^i/s;endy>>y=e(1,100)ans=yy=2.7183调用函数M文件整理pptMATLAB在?微积分?中的应用2、求极限例3

求极限>>symsn;>>limit(sqrt(n+sqrt(n))-sqrt(n),n,inf)ans=1/2LIMITLimitofanexpression.LIMIT(F,x,a)takesthelimitofthesymbolicexpressionFasx->a.LIMIT(F,x,a,'right')orLIMIT(F,x,a,'left')specifythedirectionofaone-sidedlimit.定义符号变量整理pptMATLAB在?微积分?中的应用3、求导数例4

设,求>>symsx>>y=10^x+x^10+log(x)y=x^10+10^x+log(x)>>diff(y)ans=10*x^9+10^x*log(10)+1/x定义X为符号变量求Difference:差分Differential:微分的整理ppt例5

设求>>symsx;>>y=log(1+x);>>a=diff(y,x,2)a=-1/(1+x)^2>>x=1;eval(a)ans=-0.2500求求将符号表达式转换成数值表达式整理ppt例6

设,求>>symsxy;z=exp(2*x)*(x+y^2+2*y);a=diff(z,x)b=diff(z,y)c=diff(z,x,2)d=diff(z,y,2)e=diff(a,y)

整理ppta=2*exp(2*x)*(x+y^2+2*y)+exp(2*x)

b=exp(2*x)*(2*y+2)c=4*exp(2*x)*(x+y^2+2*y)+4*exp(2*x)d=2*exp(2*x)e=2*exp(2*x)*(2*y+2)整理pptMATLAB在?微积分?中的应用4、求极值和零点例7

已知,求(1)函数的零点;(2)函数在[-1,2]上的最小值>>fzero('3*x^5-x^4+2*x^3+x^2+3',0)ans=-0.8952起始点函数命令函数>>fminbnd('3*x^5-x^4+2*x^3+x^2+3',-1,2)ans=-1.1791e-005整理pptMATLAB在?微积分?中的应用4、求极值和零点,求例8

已知函数在点(1,-1,0)附近的最小值>>[X,FVAL]=FMINSEARCH('x(1)^2+2.5*sin(x(2))-x(3)*x(1)*x(2)^2',[1-10])X=0.0010-1.57080.0008FVAL=-2.5000整理pptMATLAB在?微积分?中的应用5、求积分例9

求不定积分>>int(cos(2*x)*cos(3*x))ans=1/2*sin(x)+1/10*sin(5*x)例10

求定积分Integrate:积分>>eval(int(x^2*log(x),1,exp(1)))ans=4.5746>>x=1:0.01:exp(1);>>y=x.^2.*log(x);>>trapz(x,y)ans=4.5137整理ppt例10

求定积分>>int(exp(-x^2/2),0,1)ans=1/2*erf(1/2*2^(1/2))*2^(1/2)*pi^(1/2)>>x=0:0.01:1;y=exp(-x.^2/2);trapz(x,y)ans=0.8556>>y='exp(-x.^2/2)';>>quadl(y,0,1)ans=0.8556变步长数值积分梯形法数值积分整理pptMATLAB在?微积分?中的应用5、求积分例11

求二重积分>>symsxy;>>f=y^2/x^2;>>int(int(f,x,1/2,2),y,1,2)ans=7/2符号积分>>f='(y.^2)./(x.^2)';>>dblquad(f,1/2,2,1,2)ans=3.5000数值计算整理pptMATLAB在?微积分?中的应用6、解微分方程例12

计算初值问题:

>>dsolve('Dy=x+y','y(0)=1','x')ans=-x-1+2*exp(x)一定要大写整理pptMATLAB在?微积分?中的应用7、级数问题例13

求函数的泰勒展开式,并计算该函数在x=3.42时的近似值。>>symsx;>>taylor(sin(x)/x,x,10)ans=1-1/6*x^2+1/120*x^4-1/5040*x^6+1/362880*x^8>>x=3.42;>>eval(ans)ans=-0.0753整理pptMATLAB在?线性代数?中的应用1、矩阵的根本运算例1>>a=[4-22;-305;153];b=[134;-20-3;2-11];>>a*b1210247-14-7-30-8ans==AB整理pptMATLAB在?线性代数?中的应用1、矩阵的根本运算例1>>inv(a)ans=0.1582-0.10130.0633-0.0886-0.06330.16460.09490.13920.0380整理pptMATLAB在?线性代数?中的应用1、矩阵的根本运算例1>>rank(a)ans=3整理pptMATLAB在?线性代数?中的应用1、矩阵的根本运算例1>>a/bans=002.0000-2.7143-8.0000-8.14292.42863.00002.2857整理pptMATLAB在?线性代数?中的应用1、矩阵的根本运算例1>>a\bans=0.48730.41141.00000.3671-0.43040-0.10760.24680整理ppt2、解线性方程组>>a=[1-14-2;1-1-12;317-2;1-3-126];>>rref(a)ans=1000010000100001将矩阵A化为最简阶梯形R〔A〕=4=n;所以方程组只有零解。RREFReducedrow

echelonform整理ppt2、解线性方程组整理ppt求齐次方程组的根底解系>>a=[231;1-24;38-2;4-19];>>b=[4;-5;13;-6];>>c=null(a,'r')c=-211求非齐次方程组的一个特解>>[lu]=lu(a);>>x0=u\(l\b)x0=-3124/1353529/2702989/270所以方程组的一般解为整理ppt3、将矩阵对角化>>a=[-120;-230;302];>>[v,d]=eig(a)v=0379/1257379/12570379/1257379/12571-379/419-379/419d=200010001A的特征值为2,1,1整理ppt4、用正交变换化二次型为标准形>>a=[1111111111111111];>>format>>[ut]=schur(a)u=0.08460.49280.70710.50000.08460.4928-0.70710.5000-0.7815-0.373200.50000.6124-0.612400.5000t=-0.00000000-0.00000000000004.0000整理ppt>>a=[1111;1111;1111;1111];formatrat[ut]=schur(a)u=596/70491095/2222985/13931/2596/70491095/2222-985/13931/2-1198/1533-789/211401/21079/1762-1079/176201/2t=*0000*00“*〞表示0000近似于零0004FORMATRATApproximationbyratioofsmallintegers.整理ppt4、用正交变换化二次型为标准形结论:作正交变换那么有整理ppt上机实验题一、根底型实验1、计算以下极限整理ppt2、计算以下导数(1)(2)(3)(4)整理ppt

实验练习一.输入A=[1,1,1;1,2,3;1,3,6],B=[8,1,6;3,5,7;4,9,2],u=[3;1;4],1.A+B;2.A-B;3.A*B;4.A*u;5.2A-3B;6.A2+B2;7.AB-BA。二.求以下矩阵的逆阵并求其行列式的值1.A=[1,3,3;1,4,3;1,3,4];2.A=[1,2,3;2,2,1;3,4,3];

3.A=[1,1,1,1;1,1,-1,-1;1,-1,1,-1;1,-1,-1,1];4.A=[1,1,0,0;1,2,0,0;3,7,2,3;2,5,1,2]。

三.解矩阵方程1.A=[2,5;1,3],B=[4,-6;2,1],AX=B;2.A=[2,1,-1;2,1,0;1,-1,1],B=[1,-1,3;4,3,2;1,-2,5],XA=B;3.A=[1,4;-1,2],B=[2,0;-1,1],C=[3,1;0,-1],AXB=C;4.A=[0,1,0;1,0,0;0,0,1],B=[1,0,0;0,0,1;0,1,0],C=[1,-4,3;2,0,-1;1,-2,0],AXB=C.整理ppt四.将以下矩阵化为阶梯矩阵1.A=[1,-2,0;-1,1,1;1,3,2];2.A=[0,1;1,0;0,-1];3.A=[1,2,3,4;0,1,2,3;0,0,1,2;0,0,0,1];

4.A=[2,1,0,0;3,2,0,0;1,1,3,4;2,-1,2,3].五.求以下矩阵的秩1.A=[-5,6,-3;3,1,11;4,-2,8];2.A=1,-2,3,-1;3,-1,5,-3;2,1,2,-2];3.A=[3,1,0,2;1,-1,2,-1;1,3,-4,4];4.A=[1,4,-1,2,2;2,-2,1,1,0;-2,-1,3,2,0].整理pptMATLAB典型函数含义MATLAB典型函数含义abs(x)求绝对值tan(x)正切值sqrt(x)求平方根值cot(x)余切值exp(x)指数运算atan(x)反正切值sin(x)正弦值acot(x)反余切值cos(x)余弦值log(x)自然对数asin(x)反正弦值Log10(x)常用对数acos(x)反余弦值

附录:MATLAB软件中局部常用函数表整理ppt作为一个功能强大的工具软件,Matlab具有很强的图形处理功能,提供了大量的二维、三维图形函数。由于系统采用面向对象的技术和丰富的矩阵运算,所以在图形处理方面即方便又高效。

一、绘图功能整理ppt一、plot—数据点绘图命令命令格式:plot(x,y)

其中x和y为坐标向量命令功能:以向量x、y为轴,绘制曲线。【例1】在区间0≤X≤2

内,绘制正弦曲线Y=sin(x),其程序为:x=0:pi/100:2*pi;y=sin(x);plot(x,y)1.二维图形整理ppt【例2】同时绘制正、余弦两条曲线y1=sin(x)和y2=cos(x),其程序为:x=0:pi/100:2*pi;y1=sin(x);y2=cos(x);plot(x,y1,x,y2)plot函数还可以为plot(x,y1,x,y2,x,y3,…)形式,其功能是以公共向量x为X轴,分别以y1,y2,y3,…为Y轴,在同一幅图内绘制出多条曲线。整理ppt〔一〕线型与颜色格式:plot(x,y1,’cs’,...)其中c表示颜色,s表示线型。【例3】用不同线型和颜色重新绘制例2图形,其程序为:x=0:pi/100:2*pi;y1=sin(x);y2=cos(x);plot(x,y1,'go',x,y2,'b-.')其中参数'go'和'b-.'表示图形的颜色和线型。g表示绿色,o表示图形线型为圆圈;b表示蓝色,-.表示图形线型为点划线。整理ppt绘图根本线型和颜色整理ppt〔二〕图形标记在绘制图形的同时,可以对图形加上一些说明,如图形名称、图形某一局部的含义、坐标说明等,将这些操作称为添加图形标记。title(‘加图形标题');xlabel('加X轴标记');ylabel('加Y轴标记');text(X,Y,'添加文本');整理ppt〔三〕设定坐标轴用户假设对坐标系统不满意,可利用axis命令对其重新设定。axis([xminxmaxyminymax])设定最大和最小值axis〔’auto’〕将坐标系统返回到自动缺省状态axis〔’square’〕将当前图形设置为方形axis〔’equal’〕两个坐标因子设成相等axis〔’off’〕关闭坐标系统axis〔’on’〕显示坐标系统整理ppt【例4】在坐标范围0≤x≤2π,-2≤y≤2内重新绘制正弦曲线,其程序为:x=linspace(0,2*pi,60);

%生成含有60个数据元素的向量xy=sin(x);plot(x,y);axis([02*pi-22]);%设定坐标轴范围整理ppt〔四〕加图例给图形加图例命令为legend。该命令把图例放置在图形空白处,用户还可以通过鼠标移动图例,将其放到希望的位置。格式:legend('图例说明','图例说明');【例5】为正弦、余弦曲线增加图例,其程序为:x=0:pi/100:2*pi;y1=sin(x);y2=cos(x);plot(x,y1,x,y2,'--');legend('sin(x)','cos(x)');整理ppt〔五〕加网格线命令假设在图形中加网格线,用gridon。阅读以下程序:x=-2:0.1:2;%产生横坐标x数组y=x.^3-3*x;%计算由y=x^3-3x确定的纵坐标y数组plot(x,y)

%绘图gridon

%给图形加上网格线axisequal

%使x,y轴单位刻度相等整理ppt〔一〕subplot〔m,n,p〕该命令将当前图形窗口分成m×n个绘图区,即每行n个,共m行,区号按行优先编号,且选定第p个区为当前活动区。二、subplot—并列绘图命令整理ppt【例6】在一个图形窗口中同时绘制正弦、余弦、正切、余切曲线,程序为:x=linspace(0,2*pi,60);y=sin(x);z=cos(x);t=sin(x)./(cos(x)+eps);%eps为系统内部常数ct=cos(x)./(sin(x)+eps);subplot(2,2,1);%分成2×2区域且指定1号为活动区plot(x,y);title('sin(x)');axis([02*pi-11]);subplot(2,2,2);plot(x,z);title('cos(x)');axis([02*pi-11]);subplot(2,2,3);plot(x,t);title('tangent(x)');axis([02*pi-4040]);subplot(2,2,4);plot(x,ct);title('cotangent(x)');axis([02*pi-4040]);整理ppt〔二〕figure—多图形窗口绘图命令需要建立多个图形窗口,绘制并保持每一个窗口的图形,可以使用figure命令。每执行一次figure命令,就创立一个新的图形窗口,该窗口自动为活动窗口,假设需要还可以返回该窗口的识别号码,称该号码为句柄。句柄显示在图形窗口的标题栏中,即图形窗口标题。用户可通过句柄激活或关闭某图形窗口,而axis、xlabel、title等许多命令也只对活动窗口有效。整理ppt重新绘制上例4个图形,程序变动后如下:x=linspace(0,2*pi,60);y=sin(x);z=cos(x);t=sin(x)./(cos(x)+eps);ct=cos(x)./(sin(x)+eps);H1=figure;%创立新窗口并返回句柄到变量H1plot(x,y);%绘制图形并设置有关属性title('sin(x)');axis([02*pi-11]);H2=figure;%创立第二个窗口并返回句柄到变量H2plot(x,z);%绘制图形并设置有关属性title('cos(x)');axis([02*pi-11]);H3=figure;%同上plot(x,t);title('tangent(x)');axis([02*pi-4040]);H4=figure;%同上plot(x,ct);title('cotangent(x)');axis([02*pi-4040]);整理ppt〔三〕hold—图形保持命令假设在已存在图形窗口中用plot命令继续添加新的图形内容,可使用图形保持命令hold。发出命令holdon后,再执行plot命令,在保持原有图形或曲线的根底上,添加新绘制的图形。整理ppt阅读如下程序:x=linspace(0,2*pi,60);y=sin(x);z=cos(x);plot(x,y,'b');%绘制正弦曲线holdon;%设置图形保持状态plot(x,z,'g');%保持正弦曲线同时绘制余弦曲线axis([02*pi-11]);legend('cos','sin');holdoff%关闭图形保持整理ppt三、fplot--函数f(x)绘图命令fplot函数那么可自适应地对函数进行采样,能更好地反响函数的变化规律。fplot函数格式:fplot(fname,lims)其中fname为函数名,以字符串形式出现,lims=[a,b]或[a,b,c,d],为变量取值范围。a,b为x的区间,c,d为y的区间。例:fplot('sin(x)',[02*pi],'-+')fplot('[sin(x),cos(x)]',[02*pi],'.')%同时绘制正弦、余弦曲线整理ppt为绘制f(x)=cos(tan(πx))曲线,可先建立函数文件fct.m,其内容为:functiony=fct(x)y=cos(tan(pi*x));用fplot函数调用fct.m函数,其命令为:fplot(‘fct’,[01])整理ppt四、explot—符号函数的绘图命令ezplot函数格式:ezplot(‘fname’,lims)其中fname为函数名,以字符串形式出现,

lims=[a,b]或[a,b,c,d],为变量取值范围。例:%绘制正弦函数从0到2pi区间上的图形ezplot(‘sin(x)’,[02*pi])%绘制隐函数f(x,y)=0在[a,b]与[c,d]区间上的图形

ezplot('4*x^2+16*y^2-3',[-11-11])%绘制参数方程x=sinx,y=cosx的图形ezplot('sin(x)','cos(x)',[02*pi])整理ppt一、对数坐标图形〔一〕loglog(x,y)双对数坐标【例7】绘制y=|1000sin(4x)|+1的双对数坐标图。程序为:x=[0:0.1:2*pi];y=abs(1000*sin(4*x))+1;loglog(x,y);%双对数坐标绘图命令2特殊坐标图形整理ppt〔二〕单对数坐标以X轴为对数重新绘制上述曲线,程序为:x=[0:0.01:2*pi]y=abs(1000*sin(4*x))+1semilogx(x,y);%单对数X轴绘图命令同样,可以以Y轴为对数重新绘制上述曲线,程序为:x=[0:0.01:2*pi]y=abs(1000*sin(4*x))+1semilogy(x,y);%单对数Y轴绘图命令整理ppt二、极坐标图函数polar(theta,rho)用来绘制极坐标图,theta为极坐标角度,rho为极坐标半径【例8】绘制sin(2*θ)*cos(2*θ)的极坐标图,程序为:theta=[0:0.01:2*pi];rho=sin(2*theta).*cos(2*theta);polar(theta,rho);%绘制极坐标图命令title('polarplot');整理ppt一、阶梯图形函数stairs(x,y)可以绘制阶梯图形,如以下程序段:x=[-2.5:0.25:2.5];y=exp(-x.*x);stairs(x,y);%绘制阶梯图形命令title('stairsplot');3其它图形函数整理ppt二、条形图形函数bar(x,y)可以绘制条形图形,如以下程序段将绘制条形图形x=[-2.5:0.25:2.5];y=exp(-x.*x);bar(x,y);%绘制条形图命令整理ppt三、填充图形fill(x,y,’c’)函数用来绘制并填充二维多边图形,x和y为二维多边形顶点坐标向量。字符’c’规定填充颜色,其取值前已表达。下述程序段绘制一正方形并以黄色填充:x=[01100];%正方形顶点坐标向量y=[00110];fill(x,y,'y');%绘制并以黄色填充正方形图整理ppt再如:x=[0:0.025:2*pi];y=sin(3*x);fill(x,y,[0.50.30.4]);%颜色向量Matlab系统可用向量表示颜色,通常称其为颜色向量。根本颜色向量用[rgb]表示,即RGB颜色组合;以RGB为根本色,通过r,g,b在0~1范围内的不同取值可以组合出各种颜色。整理ppt常用绘图命令:plot:用于数据点绘图。fplot:用于函数绘图。ezplot:用于符号函数绘图。可绘制隐函数和参数方程的图形。区别与差异:plot,fplot可对图形的线形,颜色作出控制,而ezplot那么不能。fplot可绘出比较精确的图形,而ezplot一般较适宜画不太精确的图形。小结整理pptplot二维图形根本函数fplotf(x)函数曲线绘制ezplot符号函数绘图fill填充二维多边图形polar极坐标图bar条形图loglog双对数坐标图semilogxX轴为对数的坐标图semilogyY轴为对数的坐标图stairs阶梯形图二维绘图函数小结axis设置坐标轴figure创立图形窗口grid放置坐标网格线hold保持当前图形窗口内容subplot创立子图title放置图形标题xlabel放置X轴坐标标记ylabel放置Y轴坐标标记整理ppt阅读下面程序:%绘制摆线:holdont=0:0.01:4*pi;fora=1:1:3x=a*(t-sin(t));y=a*(1-cos(t));plot(x,y)end整理ppth=[3210.5];%在曲线上取不同的点a=(exp(h)-1)./h;%计算连接点M与与点P的各条割线的斜率x=-1:0.1:3;%选定图形的自变量范围plot(x,exp(x),'r');%作函数图形holdon;%在图形上继续作图fori=1:4plot(h(i),exp(h(i)),'w')%在图上作出不同的点

plot(x,a(i)*x+1)%作割线的图endaxissquare%把所有图形放在一个正方形框内plot(x,x+1,'g')%画出切线的图形画出在点P(0,1)处的切线及假设干条割线,观察割线的变化趋势,理解导数的定义及几何意义.整理ppt一、plot3函数最根本的三维图形函数为plot3,它是将二维函数plot的有关功能扩展到三维空间,用来绘制三维图形。函数格式:plot3(x1,y1,z1,c1,x2,y2,z2,c2,…)其中x1,y1,z1…表示三维坐标向量,c1,c2…表示线形或颜色。函数功能:以向量x,y,z为坐标,绘制三维曲线。

三维图形整理ppt【例9】绘制三维螺旋曲线,其程序为:t=0:pi/50:10*pi;y1=sin(t);y2=cos(t);plot3(y1,y2,t);title('helix'),text(0,0,0,'origin');xlabel('sin(t)'),ylabel('cos(t)'),zlabel('t');grid;整理ppt二、mesh函数mesh函数用于绘制三维网格图。在不需要绘制特别精细的三维曲面结构图时,可以通过绘制三维网格图来表示三维曲面。三维曲面的网格图最突出的优点是:它较好地解决了实验数据在三维空间的可视化问题。函数格式:mesh(x,y,z,c)其中x,y控制X和Y轴坐标,矩阵z是由(x,y)求得Z轴坐标,(x,y,z)组成了三维空间的网格点;c用于控制网格点颜色。【例10】以下程序绘制三维网格曲面图x=[0:0.15:2*pi];y=[0:0.15:2*pi];z=sin(y')*cos(x);%矩阵相乘mesh(x,y,z);整理ppt三、surf函数surf用于绘制三维曲面图,各线条之间的补面用颜色填充。surf函数和mesh函数的调用格式一致。函数格式:surf(x,y,z)其中x,y控制X和Y轴坐标,矩阵z是由x,y求得的曲面上Z轴坐标。【例11】以下程序绘制三维曲面图形x=[0:0.15:2*pi];y=[0:0.15:2*pi];z=sin(y')*cos(x);%矩阵相乘surf(x,y,z);xlabel('x-axis'),ylabel('y-axis'),zlabel('z-label');title('3-Dsurf');整理ppt例绘制马鞍面的图形,并用平行截面法观察马鞍面的特点x=-4:0.1:4;y=x;[mx,my]=meshgrid(x,y);mz=mx.^2-my.^2;ix=find(mx==2);px=2*ones(1,length(ix));py=my(ix);pz=mz(ix);subplot(1,2,1)holdonmesh(mx,my,mz)plot3(px,py',pz','r*')subplot(1,2,2)plot3(px,py',pz')拟合2.拟合的根本原理1.拟合问题引例整理ppt拟合问题引例1温度t(0C)20.532.751.073.095.7电阻R()7658268739421032已知热敏电阻数据:求600C时的电阻R。

R=at+ba,b为待定系数整理ppt拟合问题引例2

t(h)0.250.511.523468c(g/ml)19.2118.1515.3614.1012.899.327.455.243.01已知一室模型快速静脉注射下的血药浓度数据(t=0注射300mg)求血药浓度随时间的变化规律c(t).作半对数坐标系(semilogy)下的图形MATLAB(aa1)整理ppt曲线拟合问题的提法一组〔二维〕数据,即平面上n个点〔xi,yi)i=1,…n,寻求一个函数〔曲线〕y=f(x),使f(x)在某种准那么下与所有数据点最为接近,即曲线拟合得最好。+++++++++xyy=f(x)(xi,yi)

ii为点〔xi,yi)与曲线y=f(x)的距离整理ppt拟合与插值的关系

函数插值与曲线拟合都是要根据一组数据构造一个函数作为近似,由于近似的要求不同,二者的数学方法上是完全不同的。

实例:下面数据是某次实验所得,希望得到X和f之间的关系?MATLAB(cn)问题:给定一批数据点,需确定满足特定要求的曲线或曲面解决方案:假设不要求曲线〔面〕通过所有数据点,而是要求它反映对象整体的变化趋势,这就是数据拟合,又称曲线拟合或曲面拟合。假设要求所求曲线〔面〕通过所给所有数据点,就是插值问题;整理ppt最临近插值、线性插值、样条插值与曲线拟合结果:整理ppt曲线拟合问题最常用的解法——线性最小二乘法的根本思路第一步:先选定一组函数r1(x),r2(x),…rm(x),m<n,令f(x)=a1r1(x)+a2r2(x)+…+amrm(x)〔1〕其中a1,a2,…am为待定系数。第二步:确定a1,a2,…am的准那么〔最小二乘准那么〕:使n个点〔xi,yi)与曲线y=f(x)的距离i的平方和最小。记

问题归结为,求

a1,a2,…am

使

J(a1,a2,…am)

最小。整理ppt线性最小二乘法的求解:预备知识超定方程组:方程个数大于未知量个数的方程组即Ra=y其中超定方程一般是不存在解的矛盾方程组。

如果有向量a使得达到最小,则称a为上述超定方程的最小二乘解。整理ppt线性最小二乘法的求解定理:当RTR可逆时,超定方程组〔3〕存在最小二乘解,且即为方程组RTRa=RTy的解:a=(RTR)-1RTy

所以,曲线拟合的最小二乘法要解决的问题,实际上就是求以下超定方程组的最小二乘解的问题。其中Ra=y(3)整理ppt线性最小二乘拟合f(x)=a1r1(x)+…+amrm(x)中函数{r1(x),…rm(x)}的选取

1.通过机理分析建立数学模型来确定f(x);++++++++++++++++++++++++++++++f=a1+a2xf=a1+a2x+a3x2f=a1+a2x+a3x2f=a1+a2/xf=aebxf=ae-bx2.将数据(xi,yi)i=1,…n作图,通过直观判断确定f(x):整理ppt用MATLAB解拟合问题1、线性最小二乘拟合2、非线性最小二乘拟合整理ppt用MATLAB作线性最小二乘拟合1.作多项式f(x)=a1xm+…+amx+am+1拟合,可利用已有程序:a=polyfit(x,y,m)2.对超定方程组可得最小二乘意义下的解。,用3.多项式在x处的值y可用以下命令计算:y=polyval〔a,x〕输出拟合多项式系数a=[a1,…am,

am+1](数组))输入同长度的数组X,Y拟合多项式次数整理ppt即要求出二次多项式:中的使得:例对下面一组数据作二次多项式拟合整理ppt1〕输入以下命令:x=0:0.1:1;y=[-0.4471.9783.286.167.087.347.669.569.489.3011.2];R=[(x.^2)'x'ones(11,1)];A=R\y'MATLAB(zxec1)解法1.用解超定方程的方法2〕计算结果:A=-9.810820.1293-0.0317整理ppt1〕输入以下命令:x=0:0.1:1;y=[-0.4471.9783.286.167.087.347.669.569.489.3011.2];A=polyfit(x,y,2)z=polyval(A,x);plot(x,y,'k+',x,z,'r')%作出数据点和拟合曲线的图形2〕计算结果:A=-9.810820.1293-0.0317解法2.用多项式拟合的命令MATLAB(zxec2)整理ppt1.lsqcurvefit数据点:xdata=〔xdata1,xdata2,…,xdatan〕,ydata=〔ydata1,ydata2,…,ydatan〕用MATLAB作非线性最小二乘拟合Matlab的提供了两个求非线性最小二乘拟合的函数:lsqcurvefit和lsqnonlin。两个命令都要先建立M-文件fun.m,在其中定义函数f(x),但两者定义f(x)的方式是不同的,可参考例题.

lsqcurvefit用以求含参量x(向量)的向量值函数F(x,xdata)=(F(x,xdata1),…,F(x,xdatan))T中的参变量x(向量),使得整理ppt

输入格式为:(1)x=lsqcurvefit(‘fun’,x0,xdata,ydata);(2)x=lsqcurvefit(‘fun’,x0,xdata,ydata,options);(3)x=lsqcurvefit(‘fun’,x0,xdata,ydata,options,’grad’);(4)[x,options]=lsqcurvefit(‘fun’,x0,xdata,ydata,…);(5)[x,options,funval]=lsqcurvefit(‘fun’,x0,xdata,ydata,…);(6)[x,options,funval,Jacob]=lsqcurvefit(‘fun’,x0,xdata,ydata,…);fun是一个事先建立的定义函数F(x,xdata)

的M-文件,自变量为x和xdata说明:x=lsqcurvefit(‘fun’,x0,xdata,ydata,options);迭代初值已知数据点选项见无约束优化整理ppt

lsqnonlin用以求含参量x(向量)的向量值函数

f(x)=(f1(x),f2(x),…,fn(x))T

中的参量x,使得

最小。其中fi(x)=f(x,xdatai,ydatai)

=F(x,xdatai)-ydatai

2.lsqnonlin数据点:xdata=〔xdata1,xdata2,…,xdatan〕ydata=〔ydata1,ydata2,…,ydatan〕整理ppt输入格式为:1〕x=lsqnonlin〔‘fun’,x0〕;2〕x=lsqnonlin〔‘fun’,x0,options〕;3〕x=lsqnonlin〔‘fun’,x0,options,‘grad’〕;4〕[x,options]=lsqnonlin〔‘fun’,x0,…〕;5〕[x,options,funval]=lsqnonlin〔‘fun’,x0,…〕;说明:x=lsqnonlin〔‘fun’,x0,options〕;fun是一个事先建立的定义函数f(x)的M-文件,自变量为x迭代初值选项见无约束优化整理ppt

例2用下面一组数据拟合中的参数a,b,k该问题即解最优化问题:整理pptMATLAB(fzxec1)1〕编写M-文件curvefun1.mfunctionf=curvefun1(x,tdata)f=x(1)+x(2)*exp(-0.02*x(3)*tdata)%其中x(1)=a;x(2)=b;x(3)=k;2〕输入命令tdata=100:100:1000cdata=1e-03*[4.54,4.99,5.35,5.65,5.90,6.10,6.26,6.39,6.50,6.59];x0=[0.2,0.05,0.05];x=lsqcurvefit('curvefun1',x0,tdata,cdata)f=curvefun1(x,tdata)

F(x,tdata)=,x=(a,b,k)解法1.用命令lsqcurvefit整理ppt3〕运算结果为:f=0.00430.00510.00560.00590.00610.00620.00620.00630.00630.0063x=0.0063-0.00340.25424〕结论:a=0.0063,b=-0.0034,k=0.2542整理pptMATLAB(fzxec2)

解法2

用命令lsqnonlin

f(x)=F(x,tdata,ctada)=x=(a,b,k)1〕编写M-文件curvefun2.mfunctionf=curvefun2(x)tdata=100:100:1000;cdata=1e-03*[4.54,4.99,5.35,5.65,5.90,6.10,6.26,6.39,6.50,6.59];f=x(1)+x(2)*exp(-0.02*x(3)*tdata)-cdata2〕输入命令:x0=[0.2,0.05,0.05];x=lsqnonlin('curvefun2',x0)f=curvefun2(x)函数curvefun2的自变量是x,cdata和tdata是参数,故应将cdatatdata的值写在curvefun2.m中整理ppt3〕运算结果为f=1.0e-003*(0.2322-0.1243-0.2495-0.2413-0.1668-0.07240.02410.11590.20300.2792x=0.0063-0.00340.2542可以看出,两个命令的计算结果是相同的.4〕结论:即拟合得a=0.0063b=-0.0034k=0.2542整理pptMATLAB解应用问题实例1、电阻问题2、给药方案问题*3、水塔流量估计问题整理pptMATLAB(dianzu1)电阻问题温度t(0C)20.532.751.073.095.7电阻R()7658268739421032例.由数据拟合R=a1t+a2方法1.用命令polyfit(x,y,m)得到a1=3.3940,a2=702.4918方法2.直接用结果相同。MATLAB(dianzu2)整理ppt一室模型:将整个机体看作一个房室,称中心室,室内血药浓度是均匀的。快速静脉注射后,浓度立即上升;然后迅速下降。当浓度太低时,达不到预期的治疗效果;当浓度太高,又可能导致药物中毒或副作用太强。临床上,每种药物有一个最小有效浓度c1和一个最大有效浓度c2。设计给药方案时,要使血药浓度保持在c1~c2之间。此题设c1=10,c2=25(ug/ml).拟合问题实例2给药方案——一种新药用于临床之前,必须设计给药方案.

药物进入机体后血液输送到全身,在这个过程中不断地被吸收、分布、代谢,最终排出体外,药物在血液中的浓度,即单位体积血液中的药物含量,称为血药浓度。整理ppt

在实验方面,对某人用快速静脉注射方式一次注入该药物300mg后,在一定时刻t(小时)采集血药,测得血药浓度c(ug/ml)如下表:

t(h)0.250.511.523468c(g/ml)19.2118.1515.3614.1012.899.327.455.243.01

要设计给药方案,必须知道给药后血药浓度随时间变化的规律。从实验和理论两方面着手:整理ppt给药方案1.在快速静脉注射的给药方式下,研究血药浓度〔单位体积血液中的药物含量〕的变化规律。tc2cc10

问题2.给定药物的最小有效浓度和最大治疗浓度,设计给药方案:每次注射剂量多大;间隔时间多长。分析

理论:用一室模型研究血药浓度变化规律

实验:对血药浓度数据作拟合,符合负指数变化规律整理ppt3.血液容积v,t=0注射剂量d,血药浓度立即为d/v.2.药物排除速率与血药浓度成正比,比例系数k(>0)模型假设1.机体看作一个房室,室内血药浓度均匀——一室模型模型建立在此,d=300mg,t及c〔t〕在某些点处的值见前表,需经拟合求出参数k、v整理ppt用线性最小二乘拟合c(t)MATLAB(lihe1)计算结果:d=300;t=[0.250.511.523468];c=[19.2118.1515.3614.1012.899.327.455.243.01];y=log(c);a=polyfit(t,y,1)k=-a(1)v=d/exp(a(2))程序:用非线性最小二乘拟合c(t)整理ppt给药方案设计cc2c10

t

设每次注射剂量D,间隔时间

血药浓度c(t)

应c1

c(t)

c2

初次剂量D0应加大给药方案记为:2、1、计算结果:给药方案:c1=10,c2=25k=0.2347v=15.02整理ppt故可制定给药方案:即:

首次注射375mg,其余每次注射225mg,注射的间隔时间为4小时。整理ppt估计水塔的流量2、解题思路3、算法设计与编程1、问题整理ppt某居民区有一供居民用水的园柱形水塔,一般可以通过测量其水位来估计水的流量,但面临的困难是,当水塔水位下降到设定的最低水位时,水泵自动启动向水塔供水,到设定的最高水位时停止供水,这段时间无法测量水塔的水位和水泵的供水量.通常水泵每天供水一两次,每次约两小时.水塔是一个高12.2米,直径17.4米的正园柱.按照设计,水塔水位降至约8.2米时,水泵自动启动,水位升到约10.8米时水泵停止工作.表1是某一天的水位测量记录,试估计任何时刻〔包括水泵正供水时〕从水塔流出的水流量,及一天的总用水量.整理ppt整理ppt流量估计的解题思路拟合水位~时间函数确定流量~时间函数估计一天总用水量整理ppt拟合水位~时间函数测量记录看,一天有两个供水时段〔以下称第1供水时段和第2供水时段〕,和3个水泵不工作时段〔以下称第1时段t=0到t=8.97,第2次时段t=10.95到t=20.84和第3时段t=23以后〕.对第1、2时段的测量数据直接分别作多项式拟合,得到水位函数.为使拟合曲线比较光滑,多项式次数不要太高,一般在3~6.由于第3时段只有3个测量记录,无法对这一时段的水位作出较好的拟合.整理ppt2、确定流量~时间函数对于第1、2时段只需将水位函数求导数即可,对于两个供水时段的流量,那么用供水时段前后〔水泵不工作时段〕的流量拟合得到,并且将拟合得到的第2供水时段流量外推,将第3时段流量包含在第2供水时段内.整理ppt3、一天总用水量的估计

总用水量等于两个水泵不工作时段和两个供水时段用水量之和,它们都可以由流量对时间的积分得到。整理ppt算法设计与编程1、拟合第1、2时段的水位,并导出流量2、拟合供水时段的流量3、估计一天总用水量4、流量及总用水量的检验整理ppt1、拟合第1时段的水位,并导出流量设t,h为已输入的时刻和水位测量记录〔水泵启动的4个时刻不输入〕,第1时段各时刻的流量可如下得:1〕c1=polyfit〔t〔1:10〕,h〔1:10〕,3〕;%用3次多项式拟合第1时段水位,c1输出3次多项式的系数2〕a1=polyder〔c1〕;%a1输出多项式〔系数为c1〕导数的系数

3〕tp1=0:0.1:9;x1=-polyval〔a1,tp1〕;%x1输出多项式〔系数为a1〕在tp1点的函数值〔取负后边为正值〕,即tp1时刻的流量

MATLAB(llgj1)4〕流量函数为:整理ppt2、拟合第2时段的水位,并导出流量设t,h为已输入的时刻和水位测量记录〔水泵启动的4个时刻不输入〕,第2时段各时刻的流量可如下得:1〕c2=polyfit(t(10.9:21),h(10.9:21),3);%用3次多项式拟合第2时段水位,c2输出3次多项式的系数2〕a2=polyder(c2);%a2输出多项式〔系数为c2〕导数的系数

3〕tp2=10.9:0.1:21;x2=-polyval(a2,tp2);%x2输出多项式〔系数为a2〕在tp2点的函数值〔取负后边为正值〕,即tp2时刻的流量MATLAB(llgj2)4〕流量函数为:整理ppt3、拟合供水时段的流量在第1供水时段〔t=9~11〕之前〔即第1时段〕和之后〔即第2时段〕各取几点,其流量已经得到,用它们拟合第1供水时段的流量.为使流量函数在t=9和t=11连续,我们简单地只取4个点,拟合3次多项式〔即曲线必过这4个点〕,实现如下:xx1=-polyval〔a1,[89]〕;%取第1时段在t=8,9的流量xx2=-polyval〔a

温馨提示

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

评论

0/150

提交评论