当前位置:首页 > 关于MATLAB的数学建模算法学习笔记 - 图文
积分函数命令 :quadl
同一组数据用不同插值方法效果比较 线性插值、三次样条插值 例子clc;clear;
x0=[0 3 5 7 9 11 12 13 14 15];
y0=[0 1.2 1.7 2.0 2.1 2.0 1.8 1.2 1.0 1.6]; x=0:0.1:15;
y1=interp1(x0,y0,x);%%线性插值
y2=interp1(x0,y0,x,'spline');%%%立方样条插值 pp1=csape(x0,y0);
y3=ppval(pp1,x);%%边界为一阶导插值 pp2=csape(x0,y0,'second'); y4=ppval(pp2,x);%%边界为二阶导插值 [x',y1',y2',y3',y4'];
subplot(1,3,1) plot(x0,y0,'+',x,y1) title('Piecewise linear') subplot(1,3,2) plot(x0,y0,'+',x,y2) title('Spline1') subplot(1,3,3) plot(x0,y0,'+',x,y3) title('Spline2')
dx=diff(x);%%diff为一阶微分 dy=diff(y3); dy_dx=dy./dx; dy_dx0=dy_dx(1)
%% 求13<=x<=15内y的最小值 ytemp=y3(131:151); ymin=min(ytemp); index=find(y3==ymin); %%
xmin=x(index); [xmin,ymin] hold on
plot(xmin,ymin,'ro')
参数估计
1)非线性最小拟合
命令:lsqcurvefit解决非线性拟合问题。 人口数学模型的应用:
例子:数学建模算法与应用的的6章人口预报模型
clc, clear
a=textread('data4.txt'); %把原始数据保存在纯文本文件data4.txt中 x=a([2:2:6],:)'; %提出人口数据
x=nonzeros(x); %去掉后面的零,并变成列向量 t=[1790:10:2000]'; t0=t(1); x0=x(1);
fun=@(cs,td)cs(1)./(1+(cs(1)/x0-1)*exp(-cs(2)*(td-t0))); %cs(1)=xm,cs(2)=r
cs=lsqcurvefit(fun,rand(2,1),t(2:end),x(2:end),zeros(2,1))%%拟合,满足使最小二乘最小的参数cs
xhat=fun(cs,[t;2010]) %预测已知年代和2010年的人口 2)线性最小二乘法
人口数学模型的应用,例子:1)利用后项查分 clc, clear
a=textread('data4.txt'); %把原始数据保存在纯文本文件data4.txt中 x=a([2:2:6],:)'; x=nonzeros(x); t=[1790:10:2000]';
a=[ones(21,1), -x(2:end)];
b=diff(x)./x(2:end)/10;%%时间间隔为10年 cs=a\\b;
r=cs(1), xm=r/cs(2) 2)利用前项查分 clc, clear
a=textread('data4.txt'); %把原始数据保存在纯文本文件data4.txt中 x=a([2:2:6],:)'; x=nonzeros(x); t=[1790:10:2000]';
a=[ones(21,1), -x(1:end-1)]; b=diff(x)./x(1:end-1)/10; cs=a\\b;
r=cs(1), xm=r/cs(2) 解微分方程
1)求解常微分、线性常微分、齐次与非齐次微分方程等问题 用命令:dsolve 数学建模算法与应用p112-P114 2)初值问题的matlab数值解
用:ode45 (采用四五阶龙哥库塔方简称RK方法)、 ode23(采用二三阶RK方法)、 ode113(采用多步法,效率一般比ode45高)
用法:例如:[x,y]=ode45(fun,[a,d],y0) 其中fun为定义微分方程,[a,d]为定义区间,y0为初始值,x为在定义区间中采用四五阶龙哥库塔方法取a——d之间的值,y为其求解对应的值。 3)高阶微分方程
方法:就是讲高阶微分方程转化为一节微分方程逐级求解,在同一个命令语句里将多同意解的多节微分方程求出。用:ode45、ode15s等命令。用法和2)中有点不同之处为:fun代表的是一次微分方程且为列向量形式。Y0为一次对应的变量的初始值且也是按列向量形式排列。具体实例见《数学建模算法与应用》的P118。 4)边值问题的Matlab数值解
应用函数:bvp4c%计算数值解以及bvpinit %给出初始猜测解的结构函数。具体用法见《数学建模算法与应用》P119 For example:
共分享92篇相关文档