当前位置: 首页 > 计算模拟 >1stopt微分方程组参数拟合

1stopt微分方程组参数拟合

作者 quuq432
来源: 小木虫 800 16 举报帖子
+关注

真心希望有人能帮我一下,这个问题已经困扰我很多天了,这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 返回小木虫查看更多

今日热帖
  • 精华评论
  • quuq432

    没有人愿意帮帮忙吗

  • dingd

    微分方程项v'和E'的初值应该知道吧?还有数据的量级有点离谱吧。

  • quuq432

    引用回帖:
    3楼: Originally posted by dingd at 2016-03-03 21:12:00
    微分方程项v'和E'的初值应该知道吧?还有数据的量级有点离谱吧。

    初值都是0,量级是超新星爆发的理论计算值,这个大小算是一般的,能帮我看看是怎么回事吗?我加了初值都还是运行不了。

  • dingd

    建议将一般公式:
    LL=E*t*(4*pi*c*v)/(3*k*M);

    写成微分方程形式:LL'=。。。。

    这样才能进行微分方程计算

  • quuq432

    引用回帖:
    5楼: Originally posted by dingd at 2016-03-04 11:37:12
    建议将一般公式:
    LL=E*t*(4*pi*c*v)/(3*k*M);

    写成微分方程形式:LL'=。。。。

    这样才能进行微分方程计算

    能帮我试试看吗,我试过了,不知道是盗版的原因还是什么运行不了

  • quuq432

    引用回帖:
    5楼: Originally posted by dingd at 2016-03-04 11:37:12
    建议将一般公式:
    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

    改成这样了,还是不能运行

  • quuq432

    数据还是上面那个,我搞错了

猜你喜欢
下载小木虫APP
与700万科研达人随时交流
  • 二维码
  • IOS
  • 安卓