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

下载本文档

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

文档简介

.,1,MATLAB软件及其在数学建模中的应用,.,2,求解结果发现规律模型验证讨论分析,计算在数学建模中的作用,.,3,数学建模中的计算,问题的分析,修正模型,粗假设,修正算法,结果分析,讨论推广,修正假设,粗模型,粗算法,发现问题,发现规律,模型验证,.,4,主要内容,Matlab软件简介数学建模Matlab算法,5,MATLAB简介,MATLAB是MATrixLABoratory的缩写,是由美国MathWorks公司开发的工程计算软件,迄今MATLAB已推出了6.5版.1984年MathWorks公司正式将MATLAB推向市场,从这时起,MATLAB的内核采用C语言编写,而且除原有的数值计算能力外,还新增了数据图视功能.在国际学术界,MATLAB已经被确认为准确、可靠的科学计算标准软件.在设计研究单位和工业部门,MATLAB被认作进行高效研究、开发的首选软件工具.,.,6,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版,.,7,MATLAB的功能,MATLAB产品组是从支持概念设计、算法开发、建模仿真,到实时实现的集成环境,可用来进行:数据分析数值与符号计算工程与科学绘图控制系统设计数字图像信号处理建模、仿真、原型开发财务工程、应用开发、图形用户界面设计,功能强大,.,8,MATLAB语言特点,编程效率高,允许用数学的语言来编写程序用户使用方便,把程序的编辑、编译、连接和执行融为一体高效方便的矩阵和数组运算语句简单,内涵丰富扩充能力强,交互性,开放性方便的绘图功能该软件由c语言编写,移植性好,语言简洁,.,9,学习该软件的必要性:目前,MATLAB软件不仅走入企业、公司和科研机构,而且在高等院校也是从大学生到博士生都必须掌握的一项基本技能,是必不可少的计算工具,。MATLAB功能:数值计算、符号运算和图形处理。,.,10,学习它的意义:随着计算机科学和计算软件的发展,数学系学生必须掌握一门好的计算软件。这是我们就业、继续身造或做科研工作所要用到的。是当代大学生必备的一项技能。,.,11,其它计算软件:MATHEMATIC(数学分析问题的计算);LINGO(规划问题的计算)。可以说一个人掌握了一门计算软件,再学习其它计算软件就很容易。,.,12,MATLAB的环境,菜单项;工具栏;【CommandWindow】命令窗口;【LaunchPad】分类帮助窗口;【Workspace】工作区窗口;【CommandHistory】指令历史记录窗口;【CurrentDirectory】当前目录选择窗口;,.,13,MATLAB操作窗口,接受命令的窗口,.,14,MATLAB在微积分中的应用,1、求函数值,例1在命令窗口中键入表达式并求时的函数值。,x=2,y=4z=x2+exp(x+y)-y*log(x)-3,x=2y=4z=401.6562,命令窗口显示结果:,.,15,例2用循环语句编写M文件计算ex的值,其中x,n为输入变量,ex的近似表达式为,functiony=e(x,n)y=1;s=1;fori=1:ns=s*i;y=y+xi/s;endy,y=e(1,100)ans=yy=2.7183,调用函数M文件,.,16,MATLAB在微积分中的应用,2、求极限,例3求极限,symsn;limit(sqrt(n+sqrt(n)-sqrt(n),n,inf),ans=1/2,LIMITLimitofanexpression.LIMIT(F,x,a)takesthelimitofthesymbolicexpressionFasx-a.LIMIT(F,x,a,right)orLIMIT(F,x,a,left)specifythedirectionofaone-sidedlimit.,定义符号变量,.,17,MATLAB在微积分中的应用,3、求导数,symsxy=10x+x10+log(x)y=x10+10x+log(x)diff(y),ans=10*x9+10x*log(10)+1/x,定义X为符号变量,求,Difference:差分Differential:微分的,.,18,symsx;y=log(1+x);a=diff(y,x,2)a=-1/(1+x)2x=1;eval(a)ans=-0.2500,求,求,将符号表达式转换成数值表达式,.,19,例6设,,求,symsxy;z=exp(2*x)*(x+y2+2*y);a=diff(z,x)b=diff(z,y)c=diff(z,x,2)d=diff(z,y,2)e=diff(a,y),.,20,a=2*exp(2*x)*(x+y2+2*y)+exp(2*x)b=exp(2*x)*(2*y+2)c=4*exp(2*x)*(x+y2+2*y)+4*exp(2*x)d=2*exp(2*x)e=2*exp(2*x)*(2*y+2),.,21,MATLAB在微积分中的应用,4、求极值和零点,fzero(3*x5-x4+2*x3+x2+3,0),ans=-0.8952,起始点,函数,命令函数,fminbnd(3*x5-x4+2*x3+x2+3,-1,2)ans=-1.1791e-005,.,22,MATLAB在微积分中的应用,4、求极值和零点,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,.,23,MATLAB在微积分中的应用,5、求积分,例9求不定积分,int(cos(2*x)*cos(3*x),ans=1/2*sin(x)+1/10*sin(5*x),例10求定积分,Integrate:积分,eval(int(x2*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,.,24,例10求定积分,int(exp(-x2/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,变步长数值积分,梯形法数值积分,.,25,MATLAB在微积分中的应用,5、求积分,例11求二重积分,symsxy;f=y2/x2;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,数值计算,.,26,MATLAB在微积分中的应用,6、解微分方程,例12计算初值问题:,dsolve(Dy=x+y,y(0)=1,x),ans=-x-1+2*exp(x),一定要大写,.,27,MATLAB在微积分中的应用,7、级数问题,例13求函数的泰勒展开式,并计算该函数在x=3.42时的近似值。,symsx;taylor(sin(x)/x,x,10),ans=1-1/6*x2+1/120*x4-1/5040*x6+1/362880*x8,x=3.42;eval(ans)ans=-0.0753,.,28,MATLAB在线性代数中的应用,1、矩阵的基本运算,例1已知,a=4-22;-305;153;b=134;-20-3;2-11;a*b,=AB,.,29,MATLAB在线性代数中的应用,1、矩阵的基本运算,例1已知,inv(a)ans=0.1582-0.10130.0633-0.0886-0.06330.16460.09490.13920.0380,.,30,MATLAB在线性代数中的应用,1、矩阵的基本运算,例1已知,rank(a)ans=3,.,31,MATLAB在线性代数中的应用,1、矩阵的基本运算,例1已知,a/bans=002.0000-2.7143-8.0000-8.14292.42863.00002.2857,.,32,MATLAB在线性代数中的应用,1、矩阵的基本运算,例1已知,abans=0.48730.41141.00000.3671-0.43040-0.10760.24680,.,33,2、解线性方程组,a=1-14-2;1-1-12;317-2;1-3-126;rref(a),ans=,1000010000100001,将矩阵A化为最简阶梯形,R(A)=4=n;所以方程组只有零解。,RREFReducedrowechelonform,.,34,2、解线性方程组,.,35,求齐次方程组的基础解系,a=231;1-24;38-2;4-19;b=4;-5;13;-6;c=null(a,r)c=-211,求非齐次方程组的一个特解,lu=lu(a);x0=u(lb)x0=-3124/1353529/2702989/270,所以方程组的一般解为,.,36,3、将矩阵对角化,a=-120;-230;302;v,d=eig(a)v=0379/1257379/12570379/1257379/12571-379/419-379/419d=200010001,A的特征值为2,1,1,.,37,4、用正交变换化二次型为标准形,a=1111111111111111;formatut=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,.,38,a=1111;1111;1111;1111;formatratut=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近似于零0004,FORMATRATApproximationbyratioofsmallintegers.,.,39,4、用正交变换化二次型为标准形,结论:作正交变换,则有,.,40,上机实验题一、基础型实验1、计算下列极限,.,41,2、计算下列导数(1)(2)(3)(4),.,42,实验练习,一.输入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.,.,43,四.将下列矩阵化为阶梯矩阵,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.,.,44,附录:MATLAB软件中部分常用函数表,.,45,作为一个功能强大的工具软件,Matlab具有很强的图形处理功能,提供了大量的二维、三维图形函数。由于系统采用面向对象的技术和丰富的矩阵运算,所以在图形处理方面即方便又高效。,.,46,一、plot数据点绘图命令命令格式:plot(x,y)其中x和y为坐标向量命令功能:以向量x、y为轴,绘制曲线。【例1】在区间0X2内,绘制正弦曲线Y=sin(x),其程序为:x=0:pi/100:2*pi;y=sin(x);plot(x,y),1.二维图形,.,47,【例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轴,在同一幅图内绘制出多条曲线。,.,48,(一)线型与颜色格式: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表示蓝色,-.表示图形线型为点划线。,.,49,绘图基本线型和颜色,.,50,(二)图形标记在绘制图形的同时,可以对图形加上一些说明,如图形名称、图形某一部分的含义、坐标说明等,将这些操作称为添加图形标记。title(加图形标题);xlabel(加X轴标记);ylabel(加Y轴标记);text(X,Y,添加文本);,.,51,(三)设定坐标轴用户若对坐标系统不满意,可利用axis命令对其重新设定。axis(xminxmaxyminymax)设定最大和最小值axis(auto)将坐标系统返回到自动缺省状态axis(square)将当前图形设置为方形axis(equal)两个坐标因子设成相等axis(off)关闭坐标系统axis(on)显示坐标系统,.,52,【例4】在坐标范围0x2,-2y2内重新绘制正弦曲线,其程序为:x=linspace(0,2*pi,60);%生成含有60个数据元素的向量xy=sin(x);plot(x,y);axis(02*pi-22);%设定坐标轴范围,.,53,(四)加图例给图形加图例命令为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);,.,54,(五)加网格线命令若在图形中加网格线,用gridon。,阅读以下程序:x=-2:0.1:2;%产生横坐标x数组y=x.3-3*x;%计算由y=x3-3x确定的纵坐标y数组plot(x,y)%绘图gridon%给图形加上网格线axisequal%使x,y轴单位刻度相等,.,55,(一)subplot(m,n,p)该命令将当前图形窗口分成mn个绘图区,即每行n个,共m行,区号按行优先编号,且选定第p个区为当前活动区。,二、subplot并列绘图命令,.,56,【例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);%分成22区域且指定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);,.,57,(二)figure多图形窗口绘图命令需要建立多个图形窗口,绘制并保持每一个窗口的图形,可以使用figure命令。每执行一次figure命令,就创建一个新的图形窗口,该窗口自动为活动窗口,若需要还可以返回该窗口的识别号码,称该号码为句柄。句柄显示在图形窗口的标题栏中,即图形窗口标题。用户可通过句柄激活或关闭某图形窗口,而axis、xlabel、title等许多命令也只对活动窗口有效。,.,58,重新绘制上例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);,.,59,(三)hold图形保持命令若在已存在图形窗口中用plot命令继续添加新的图形内容,可使用图形保持命令hold。发出命令holdon后,再执行plot命令,在保持原有图形或曲线的基础上,添加新绘制的图形。,.,60,阅读如下程序: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%关闭图形保持,.,61,三、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,.)%同时绘制正弦、余弦曲线,.,62,为绘制f(x)=cos(tan(x)曲线,可先建立函数文件fct.m,其内容为:functiony=fct(x)y=cos(tan(pi*x);用fplot函数调用fct.m函数,其命令为:fplot(fct,01),.,63,四、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*x2+16*y2-3,-11-11)%绘制参数方程x=sinx,y=cosx的图形ezplot(sin(x),cos(x),02*pi),.,64,一、对数坐标图形(一)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特殊坐标图形,.,65,(二)单对数坐标以X轴为对数重新绘制上述曲线,程序为:x=0:0.01:2*piy=abs(1000*sin(4*x)+1semilogx(x,y);%单对数X轴绘图命令同样,可以以Y轴为对数重新绘制上述曲线,程序为:x=0:0.01:2*piy=abs(1000*sin(4*x)+1semilogy(x,y);%单对数Y轴绘图命令,.,66,二、极坐标图函数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);,.,67,一、阶梯图形函数stairs(x,y)可以绘制阶梯图形,如下列程序段:x=-2.5:0.25:2.5;y=exp(-x.*x);stairs(x,y);%绘制阶梯图形命令title(stairsplot);,3其它图形函数,.,68,二、条形图形函数bar(x,y)可以绘制条形图形,如下列程序段将绘制条形图形x=-2.5:0.25:2.5;y=exp(-x.*x);bar(x,y);%绘制条形图命令,.,69,三、填充图形fill(x,y,c)函数用来绘制并填充二维多边图形,x和y为二维多边形顶点坐标向量。字符c规定填充颜色,其取值前已叙述。下述程序段绘制一正方形并以黄色填充:x=01100;%正方形顶点坐标向量y=00110;fill(x,y,y);%绘制并以黄色填充正方形图,.,70,再如:x=0:0.025:2*pi;y=sin(3*x);fill(x,y,0.50.30.4);%颜色向量Matlab系统可用向量表示颜色,通常称其为颜色向量。基本颜色向量用rgb表示,即RGB颜色组合;以RGB为基本色,通过r,g,b在01范围内的不同取值可以组合出各种颜色。,.,71,常用绘图命令:plot:用于数据点绘图。fplot:用于函数绘图。ezplot:用于符号函数绘图。可绘制隐函数和参数方程的图形。区别与差异:plot,fplot可对图形的线形,颜色作出控制,而ezplot则不能。fplot可绘出比较精确的图形,而ezplot一般较适宜画不太精确的图形。,小结,.,72,plot二维图形基本函数fplotf(x)函数曲线绘制ezplot符号函数绘图fill填充二维多边图形polar极坐标图bar条形图loglog双对数坐标图semilogxX轴为对数的坐标图semilogyY轴为对数的坐标图stairs阶梯形图,二维绘图函数小结,axis设置坐标轴figure创建图形窗口grid放置坐标网格线hold保持当前图形窗口内容subplot创建子图title放置图形标题xlabel放置X轴坐标标记ylabel放置Y轴坐标标记,.,73,阅读下面程序:%绘制摆线:holdont=0:0.01:4*pi;fora=1:1:3x=a*(t-sin(t);y=a*(1-cos(t);plot(x,y)end,.,74,h=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)处的切线及若干条割线,观察割线的变化趋势,理解导数的定义及几何意义.,.,75,一、plot3函数最基本的三维图形函数为plot3,它是将二维函数plot的有关功能扩展到三维空间,用来绘制三维图形。函数格式:plot3(x1,y1,z1,c1,x2,y2,z2,c2,)其中x1,y1,z1表示三维坐标向量,c1,c2表示线形或颜色。函数功能:以向量x,y,z为坐标,绘制三维曲线。,三维图形,.,76,【例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;,.,77,二、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);,.,78,三、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);,79,例绘制马鞍面的图形,并用平行截面法观察马鞍面的特点,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),.,80,拟合,2.拟合的基本原理,1.拟合问题引例,.,81,拟合问题引例1,求600C时的电阻R。,设R=at+ba,b为待定系数,.,82,拟合问题引例2,求血药浓度随时间的变化规律c(t).,作半对数坐标系(semilogy)下的图形,MATLAB(aa1),.,83,曲线拟合问题的提法,已知一组(二维)数据,即平面上n个点(xi,yi)i=1,n,寻求一个函数(曲线)y=f(x),使f(x)在某种准则下与所有数据点最为接近,即曲线拟合得最好。,y=f(x),i为点(xi,yi)与曲线y=f(x)的距离,.,84,拟合与插值的关系,函数插值与曲线拟合都是要根据一组数据构造一个函数作为近似,由于近似的要求不同,二者的数学方法上是完全不同的。,实例:下面数据是某次实验所得,希望得到X和f之间的关系?,MATLAB(cn),问题:给定一批数据点,需确定满足特定要求的曲线或曲面,解决方案:,若不要求曲线(面)通过所有数据点,而是要求它反映对象整体的变化趋势,这就是数据拟合,又称曲线拟合或曲面拟合。,若要求所求曲线(面)通过所给所有数据点,就是插值问题;,.,85,最临近插值、线性插值、样条插值与曲线拟合结果:,.,86,曲线拟合问题最常用的解法线性最小二乘法的基本思路,第一步:先选定一组函数r1(x),r2(x),rm(x),m0),模型假设,1.机体看作一个房室,室内血药浓度均匀一室模型,模型建立,在此,d=300mg,t及c(t)在某些点处的值见前表,需经拟合求出参数k、v,.,110,用线性最小二乘拟合c(t),MATLAB(lihe1),计算结果:,用非线性最小二乘拟合c(t),.,111,给药方案设计,设每次注射剂量D,间隔时间,血药浓度c(t)应c1c(t)c2,初次剂量D0应加大,给药方案记为:,2、,1、,计算结果:,给药方案:,c1=10,c2=25k=0.2347v=15.02,.,112,故可制定给药方案:,即:首次注射375mg,其余每次注射225mg,注射的间隔时间为4小时。,.,113,估计水塔的流量,2、解题思路,3、算法设计与编程,1、问题,.,114,某居民区有一供居民用水的园柱形水塔,一般可以通过测量其水位来估计水的流量,但面临的困难是,当水塔水位下降到设定的最低水位时,水泵自动启动向水塔供水,到设定的最高水位时停止供水,这段时间无法测量水塔的水位和水泵的供水量通常水泵每天供水一两次,每次约两小时.水塔是一个高12.2米,直径17.4米的正园柱按照设计,水塔水位降至约8.2米时,水泵自动启动,水位升到约10.8米时水泵停止工作表1是某一天的水位测量记录,试估计任何时刻(包括水泵正供水时)从水塔流出的水流量,及一天的总用水量,.,115,.,116,流量估计的解题思路,拟合水位时间函数,确定流量时间函数,估计一天总用水量,.,117,拟合水位时间函数测量记录看,一天有两个供水时段(以下称第1供水时段和第2供水时段),和3个水泵不工作时段(以下称第1时段t=0到t=8.97,第2次时段t=10.95到t=20.84和第3时段t=23以后)对第1、2时段的测量数据直接分别作多项式拟合,得到水位函数为使拟合曲线比较光滑,多项式次数不要太高,一般在36由于第3时段只有3个测量记录,无法对这一时段的水位作出较好的拟合,.,118,2、确定流量时间函数对于第1、2时段只需将水位函数求导数即可,对于两个供水时段的流量,则用供水时段前后(水泵不工作时段)的流量拟合得到,并且将拟合得到的第2供水时段流量外推,将第3时段流量包含在第2供水时段内,.,119,3、一天总用水量的估计总用水量等于两个水泵不工作时段和两个供水时段用水量之和,它们都可以由流量对时间的积分得到。,.,120,算法设计与编程,1、拟合第1、2时段的水位,并导出流量,2、拟合供水时段的流量,3、估计一天总用水量,4、流量及总用水量的检验,.,121,1、拟合第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)流量函数为:,.,122,2、拟合第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)流量函数为:,.,123,3、拟合供水时段的流量在第1供水时段(t=911)之前(即第1时段)和之后(即第2时段)各取几点,其流量已经得到,用它们拟合第1供水时段的流量为使流量函数在t=9和t=11连续,我们简单地只取4个点,拟合3次多项式(即曲线必过这4个点),实现如下:xx1=-polyval(a1,89);%取第1时段在t=8,9的流量xx2=-polyval(a2,1112);%取第2时段在t=11,12的流量xx12=xx1xx2;c12=polyfit(891112,xx12,3);%拟合3次多项式tp12=9:0.1:11;x12=polyval(c12,tp12);%x12输出第1供水时段各时刻的流量,MATLAB(llgj3),拟合的流量函数为:,.,124,在第2供水时段之前取t=20,20.8两点的流水量,在该时刻之后(第3时段)仅有3个水位记录,我们用差分得到流量,然后用这4个数值拟合第2供水时段的流量如下:dt3=di

温馨提示

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

评论

0/150

提交评论