matlab 常微分方程参数拟合 10

有x,y两组数据方程是dy/dx=ky(1-y)求matlab代码拟合求k... 有x,y两组数据
方程是 dy/dx=ky(1-y)
求matlab代码拟合求k
展开
 我来答
pyl_EF
推荐于2018-05-11 · TA获得超过1.4万个赞
知道小有建树答主
回答量:2719
采纳率:96%
帮助的人:146万
展开全部
有关微分方程参数拟合的技术,已经有相关的讨论:
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
推荐于2017-11-27 · TA获得超过775个赞
知道小有建树答主
回答量:275
采纳率:0%
帮助的人:348万
展开全部
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
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式