数学建模算法与应用第6章笔记(6.5之后补上)

6.2.4

非线性拟合

数学建模算法与应用第6章笔记(6.5之后补上)_第1张图片
s = nonzeros(A) 返回 A 中非零元素的整个列向量,并且按列排序。

clc, clear
a=textread('data4.txt'); %把原始数据保存在纯文本文件data4.txt中
x=a([2:2:6],:)';   %提出人口数据
x=nonzeros(x);  %s = nonzeros(A) 返回 A 中非零元素的整个列向量,并且按列排序。
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))%zeros(2,1)为左边界
xhat=fun(cs,[t;2010])  %预测已知年代和2010年的人口

线性最小二乘法

/:右除。a/b表示矩阵a乘以矩阵b的逆。
\:左除。a\b表示矩阵a的逆乘以b。

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; %b即为(6.25)左边
cs=a\b;
r=cs(1), xm=r/cs(2)

[ r s ] ∗ [ 1 1 1 . . − x 1 − x 2 − x 3 . . ] = b \left[ \begin{matrix} r &s \end{matrix} \right]* \left[ \begin{matrix} 1 &1&1&.&.&\\ -x1 &-x2&-x3&.&.& \end{matrix} \right]=b [rs][1x11x21x3....]=b

6.3求微分方程的符号解

syms f(x) g(x) %定义符号变量
[f2,g2]=dsolve(diff(f,2)+3*g==sin(x),diff(g)+df==cos(x),df(2)==0,f(3)==3,g(5)==1)%右边为初值

6.3.4

clc,clear
syms x(t) y(t) z(t) %定义符号变量
X=[x;y;z]; A=[1,0,0;2,1,-2;3,2,1];B=[0;0;exp(t)*cos(2*t)];
X0=[0;1;1]; %初值条件
X=dsolve(diff(X)==A*X+B,X(0)==X0) %求符号解
X=simplify([X.x;X.y;X.z]) %原本解为struct结构,显示解的各个分量
pretty(X) %分数线居中的显示方式

数学建模算法与应用第6章笔记(6.5之后补上)_第2张图片
由于struct结构,所以需要X=simplify([X.x;X.y;X.z])。

6.3.5

clc, clear
syms g t(h) %定义符号常量和变量
t=dsolve(diff(t)==10000*pi/sqrt(2*g)*(h^(3/2)-2*h^(1/2)),t(1)==0) %求符号解
t=simplify(t) %化简
pretty(t) %分数线居中的显示方式

结果t会含有g和h。

6.4 放射性废料处理

subs(s,{m,V,rho,g,k},{239.46,0.2058,1035.71,9.8,0.6})

将s中的m,v,rho,g,k用后面的数代替

tt=solve(s==90)
tt=double(tt)   %求到达海底90米处的时间

double()将sym形式变成数字形式

int用法(积分)

数学建模算法与应用第6章笔记(6.5之后补上)_第3张图片

6.5

你可能感兴趣的:(数学建模)