您好,欢迎访问三七文档
当前位置:首页 > 高等教育 > 理学 > 数学建模MATLAB教案
1.三种插值方法拉格朗日多项式插值构造基函数011011()()()()()()()()()iiniiiiiiinxxxxxxxxlxxxxxxxxx插值多项式0()()nniiiLxylx分段线性插值将每两个相邻的节点用直线连起来,即在每个小区间上是线性函数。有现成命令。三次样条插值一根有弹性的细长木条固定在节点上,其他地方自然弯曲,如此称为样条曲线。普遍使用的样条函数是分段三次多项式:在每个小区间上是三次多项式,在大区间上二阶导数连续,通过全部节点。有现成命令。例子对21,551yxx,用11个等分节点作上述三种插值,用21个等分插值点作图。比较结果,spline插值最好。2.数据拟合2.1多项式拟合指令方法x=[123456789];y=[9763-125720];P=polyfit(x,y,3);xi=0:.2:10;yi=polyval(P,xi);plot(xi,yi,x,y,'r*');图形窗口方法x=[123456789];y=[9763-125720];plot(x,y,'r*');2.2指定函数类型拟合例子某次阻尼振荡实验中测得数据点x=[0;0.4;1.2;2;2.8;3.6;4.4;5.2;6;7.2;8;9.2;10.4;11.6;12.4;13.6;14.4;15];y=[1;0.85;0.29;-0.27;-0.53;-0.4;-0.12;0.17;0.28;0.15;-0.03;-0.15;-0.071;0.059;0.08;0.032;-0.015;-0.02];f=fittype('a*cos(k*t)*exp(w*t)','independent','t','coefficients',{'a','k','w'});cfun=fit(x,y,f)xi=0:.1:20;yi=cfun(xi);plot(x,y,'r*',xi,yi,'b-');补充:三维图形例子作曲面(,)zfxy的图形,2222sin,7.57.5,7.57.5xyzxyxy作螺旋线sin,cos,xtytzt练习矩阵运算:+加法;-减法;'转置;*乘法;^乘幂;\左除;/右除。.*乘法;.^乘幂;.\左除;./右除。矩阵函数:zeros;ones;eye;rand;randn。图形:线型:-实线;:点线;-.虚点线;--波折线;.圆点;+加号;*星号;xx形;。小圆。颜色:y黄;r红;g绿;b蓝;w白;k黑;m紫;c青。例子车灯光源投影区域的绘制(CUMCM2002A)3.数值积分矩形公式10,nnkkbaLhfhn1,nnkkbaRhfhn梯形公式(相当于将两矩阵公式平均,也相当于用分段线性插值函数作为近似)101(+),2nnknkhbaThfffhn辛普森公式(抛物线法)110221201(+42),32mmnmkkkkhbaSffffhm例子20sinxdx例子卫星轨道长度人造地球卫星轨道可视为平面上的椭圆。我国第一颗人造地球卫星近地点距地球表面439km,远地点距地球表面2384km,地球半径为6371km,求该卫星的轨道长度。4.数值微分'()()()fahfafah前差公式'()()()fafahfah后差公式'()()()2fahfahfah中心差商前差形式数值微分,现成命令:diff(x)。输入x是n维数组,输出为n-1维数组21321[,,,]nnxxxxxx。5.常微分方程数值解设'00(,),()yfxyyxy,其中f适当光滑,对y满足Lipschitz条件,以保证解存在且唯一。在一系列离散点012nxxxx上求()nyx的近似值(1,2,)nyn,通常取等步长h,即0(1,2,)nxxnhn。向前欧拉公式在小区间1[,]nnxx上用差商1()()nnyxyxh代替方程左端的导数,方程右端(,)fxy中的x取小区间1[,]nnxx的左端点nx,可得1()()(,())nnnnyxyxhfxyx从0x出发,由初值00()yxy,得到1()yx的近似值1y为(以下用代替)1000(,)yyhfxy再以1y作为1()yx的近似值,得到2()yx的近似值2y为2111(,)yyhfxy继续下去,一般地1(,),0,1,nnnnyyhfxyn龙格库塔方法按照微分中值定理有'1()()(),01nnnyxyxyxhh注意到方程'(,)yfxy就有1()()(,())nnnnyxyxhfxhyxh记(,())nnKfxhyxh,称为区间1[,]nnxx上的平均斜率。向前欧拉公式简单地取(,)nnfxy为K,精度很低。龙格库塔方法的基本思想:在区间1[,]nnxx内多取几个点,将它们的斜率加权平均作为K。取2个点,2阶龙格库塔公式。取4个点,4阶龙格库塔公式。有现成的命令:[t,x]=ode23('f',ts,x0,options)[t,x]=ode45('f',ts,x0,options)其中,f是由待解方程写成的m文件名;ts为自变量的取值;x0为函数的初值;options用于设定误差限(可以缺省,缺省时设定为相对误差310,绝对误差610),设定命令:options=odeset('reltol',rt,'abstol',at),rt,at分别为设定的相对误差和绝对误差。t,x为输出的自变量和函数值。例子单摆运动方程sinmlmg,初始条件0(0),(0)0在0不大的条件下,可将方程中的sin近似为,于是得到线性常系数微分方程0gl,容易算出其在初始条件下的解为0()cos,gttl。当0较大时,若仍用近似sin,误差太大了。试用数值方法在0等于10和30两种情况下求解(设25lcm),画出()t的图形,并与近似解的结果比较。先将它化为方程组。令12,xx,则方程化为1221,singxxxxl,初始条件为1102(0),(0)0xxx,其中9.8g,25l,10x为100.1745弧度和300.5236弧度两种情况。对于近似解,周期252210()9.8lTsg可以看出,初始角度为10时精确(数值)解与近似解相差不大,而初始角度为30时,随着时间的增加二者差别就很大了。食饵-捕食者模型食饵甲和捕食者乙在时刻t的数量分别记作()xt和()yt。当甲独立生存时它的(相对)增长率为r,即xrx,而乙的存在使甲的增长率减小,设减小的程度与乙的数量成正比,于是()xt满足()xxrayrxaxy,比例系数a反映捕食者掠取食饵的能力。捕食者离开食饵无法生存,设乙独自存在时死亡率为d,即ydy,而甲的存在使乙的死亡率降低,设这个作用与甲的数量成正比,于是()yt满足()yydbxdybxy,比例系数b反映食饵对捕食者的供养能力。设初始数量分别为00(0),(0)xxyy。设001,0.5,0.1,0.02,25,2rdabxy,求数值解,画出函数()xt和()yt的图形以及相图(,)xy。6.线性规划LINPROGLinearprogramming.X=LINPROG(f,A,b)solvesthelinearprogrammingproblem:minf'*xsubjectto:A*x=bx例子1231231212323428..326,,0minzxxxxxxstxxxxxc=[2;3;1];a=[1,4,2;3,2,0];b=[8;6];[x,y]=linprog(c,-a,-b,[],[],zeros(3,1))1231231231232357..2510,,0maxzxxxxxxstxxxxxxc=[2;3;-5];a=[-2,5,-1];b=-10;aeq=[1,1,1];beq=7;x=linprog(-c,a,b,aeq,beq,zeros(3,1))value=c'*x7.优化工具箱helpoptim查看优化工具箱的帮助信息基本程序名:fmin,fminu,fmins,leastsq,curvefit,constr,lp,qp,minimax,nnls,conls,fzero,fsolve等。例子求解22minxyab,2ab(本题精确结果为x=y=0)用下面一组数据拟合()ktctre中的系数r和k。(也可以用指定函数类型拟合)t=[0.250.511.523468];c=[19.2118.1515.3614.1012.899.327.455.243.01];控制参数options的设置18个参数1,输出形式,1表示有中间结果输出,0表示无中间结果输出2,解的精度3,函数的精度4,约束的精度,,,8,函数值输出,,,10,函数计算次数例子22minxyab,10a,1b将解和函数值的精度提高到810,给出迭代次数及结果的函数值。8.灰色预测算法实现其他算法的实现
本文标题:数学建模MATLAB教案
链接地址:https://www.777doc.com/doc-2426837 .html