1stopt微分方程组参数拟合
真心希望有人能帮我一下,这个问题已经困扰我很多天了,这10个金币是我所有的金币了。
具体的内容是这样[latex]dv/dt=Eint/(M*v*t)[/latex]
[latex]dEint/t=(L/(1+t/tsd)^2)-4*pi*c*Eint*t*v/(3*k*M)-Eint/t[/latex]
然后再得
[latex]LL=Eint*t*(4*pi*c*v)/(3*k*M)[/latex]
c是光速为3*10^10,k=0.5,M、tsd和L是未知参数,需要拟合求解,现在只知道能得到t和LL的实验值。具体的计算应该是v和Eint都是不知道的,若知道M、tsd和L的值,我用的是ode45,参数v和Eint根据t来回算(初始值是0,0),然后带入到LL里面。现在反过来了不知道M、tsd和L的值我就不知道怎么写了,用MATLAB的ode45和lsqnonlin写了个程序,最后求出来不是很理想,而且跟初始值那些影响蛮大。用1stopt写了一个,运行不了(我觉得肯定是错的),不知道怎么写,能帮我改改,然后算出来吗?真的麻烦了,在线等啊。。。
Parameters M,tsd,L;
Constant c=3*10^10,k=0.5;
Variable t,v,E,LL;
Function v'=E/(M*v*t);
E'=(L/((1+t/tsd)^2))-4*pi*c*E*t*v/(3*k*M)-E/t;
LL=E*t*(4*pi*c*v)/(3*k*M);
Data;
//t LL
502272 5.65432*10^42
762325 1.30331*10^43
1114354 9.00958*10^42
1364122 5.3601*10^42
1706100 3.56514*10^42
1964980 2.5611*10^42
2140916 2.27497*10^42
2313059 1.94825*10^42
2489034 1.50971*10^42
2742752 1.22059*10^42
3001044 1.04568*10^42 返回小木虫查看更多
没有人愿意帮帮忙吗
微分方程项v'和E'的初值应该知道吧?还有数据的量级有点离谱吧。
初值都是0,量级是超新星爆发的理论计算值,这个大小算是一般的,能帮我看看是怎么回事吗?我加了初值都还是运行不了。
建议将一般公式:
LL=E*t*(4*pi*c*v)/(3*k*M);
写成微分方程形式:LL'=。。。。
这样才能进行微分方程计算
能帮我试试看吗,我试过了,不知道是盗版的原因还是什么运行不了
Parameters M,tsd,L;
Constant c=3*10^10,k=0.5;
InitialODEValue t=0.1,E=0.1,v=0.1,LL=0;
Variable t,LL;
ODEFunction v'=E/(M*v*t);
E'=(L/((1+t/tsd)^2))-4*pi*c*E*t*v/(3*k*M)-E/t;
LL'=E*(4*pi*c*v)/(3*k*M)
Data;
//t LL
0.1 0.1
502272 1.12575E+37
762325 1.70965E+37
1114354 8.08503E+36
1364122 3.92934E+36
1706100 2.08964E+36
1964980 1.30337E+36
2140916 1.06261E+36
2313059 8.42281E+35
2489034 6.06545E+35
2742752 4.45025E+35
3001044 3.4844E+35
改成这样了,还是不能运行
,
数据还是上面那个,我搞错了