matlab 常微分方程参数拟合 10
2个回答
展开全部
有关微分方程参数拟合的技术,已经有相关的讨论:
1、基于matlab四种方法解决变参量常微分方程参数识别(回归)
2、基于MATLAB和Forcal进行微分方程参数拟合
3、一个典型隐式方程(通用有效介质方程)的拟合实例
总的来说微分方程参数拟合有三种方法:
1.将原问题转换为一个优化问题,就是使拟合得到的结果和实验测量值之差的平方和最小,此时您可以调用MATLAB优化工具箱的所有函数,最这个目标进行优化,比如fmincon,ga,lsqnonlin等.
2 将问题看成一个超静定方程组,也就是说一组已知数据构成一个方程,如果有n测量数据就构成n组方程,此时fsolve函数可以搞定这个工作.
3..然当作一个拟合问题,而微分方程当作一个黑匣子,只是这个拟合的一直数据是测量的两组而已.这个时候lsqcurvefit、cftool和Simulink Design Optimization就可以大显身手了.不过调用lsqcurvefit和cftool函数来拟合,您必须对这两个函数熟悉呀,这个可是需要一定的MATLAB底子,不是一般的所谓大侠能够搞定的.
当然以上是高手的做法.
但如果你对Matlab只是一般性的了解的话推荐用插值拟合+数值微分的方法,如果实验数据够多误差是能满足一定要求的.
1、基于matlab四种方法解决变参量常微分方程参数识别(回归)
2、基于MATLAB和Forcal进行微分方程参数拟合
3、一个典型隐式方程(通用有效介质方程)的拟合实例
总的来说微分方程参数拟合有三种方法:
1.将原问题转换为一个优化问题,就是使拟合得到的结果和实验测量值之差的平方和最小,此时您可以调用MATLAB优化工具箱的所有函数,最这个目标进行优化,比如fmincon,ga,lsqnonlin等.
2 将问题看成一个超静定方程组,也就是说一组已知数据构成一个方程,如果有n测量数据就构成n组方程,此时fsolve函数可以搞定这个工作.
3..然当作一个拟合问题,而微分方程当作一个黑匣子,只是这个拟合的一直数据是测量的两组而已.这个时候lsqcurvefit、cftool和Simulink Design Optimization就可以大显身手了.不过调用lsqcurvefit和cftool函数来拟合,您必须对这两个函数熟悉呀,这个可是需要一定的MATLAB底子,不是一般的所谓大侠能够搞定的.
当然以上是高手的做法.
但如果你对Matlab只是一般性的了解的话推荐用插值拟合+数值微分的方法,如果实验数据够多误差是能满足一定要求的.
展开全部
dsolve('Dy=k*y*(1-y)','x')可以求得三个解
y1=0;
y2=1;
y3=-1/(exp(c - k*x) - 1)
举个栗子:
x=[1 2 3 4];
y=[2 3 1 6];
%%%%%%%%%%下面是程序%%%%%%%%%%%%%%%
clear;
clc;
x=[1 2 3 4];
y=[2 3 1 6];
f=@(var) sum((y+1./(exp(var(1) - var(2)*x) - 1)).^2);%c=var(1),k=var(2)
nvars=2;
[var,fval,exitflag]=ga(f,nvars)
求得:k=-0.1414
y1=0;
y2=1;
y3=-1/(exp(c - k*x) - 1)
举个栗子:
x=[1 2 3 4];
y=[2 3 1 6];
%%%%%%%%%%下面是程序%%%%%%%%%%%%%%%
clear;
clc;
x=[1 2 3 4];
y=[2 3 1 6];
f=@(var) sum((y+1./(exp(var(1) - var(2)*x) - 1)).^2);%c=var(1),k=var(2)
nvars=2;
[var,fval,exitflag]=ga(f,nvars)
求得:k=-0.1414
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询