呵呵,我的qq393773310,有什么问题可以直接问。您好实际上这个帖子我在振动论坛和simwe都发了类似的求助帖,我本身也在做这样一个类似的微分方程识别,正如好心人bainhome所言,帖子出处http://www.chinavib.com/thread- 99146-1-1.html。是global 的问题。参数传递的问题正确的应该改为把global
3变参数微分方程系数回归
您好斑竹,我的最终目的是要识别k参数,我的微分方程模型为
y'=k(1)(y-y0)*y^k(2)+v ;
(我的参数识别方法是参考一个例子,后面给贴出来。但是这个例子是不带v输入变量的)
1 我前面一段程序先假设k=3,然后利用变参量数值解法求解了(仿真)y值;(因为这个式子有个带外部输入的参数v,没法求得解析解,所以只好用数值微分方程方法求出ydata;
2 我后面一段程序就是利用前边得到的t值和y值去识别参数k;
3.1 生成数据xxdata为2 的x数据。
function dydt=modelsq(t,y,k,v)
dydt =k(1)*(y-6).^k(2)+v;
clear;
k=[-3.548 3.236];
y0=6;
x=[0 1 2 3 4 5 7 9 11 14 17 20 25 30 35 40 45 53 60 70 80 90 100 110 120 130 140 150]';%给出x值
fraction=500;%计算出500个数据;
t1=min(x):(max(x)-min(x))/fraction:max(x);