24小时热门版块排行榜    

Znn3bq.jpeg
查看: 2252  |  回复: 4

gainly

木虫 (职业作家)


[交流] 【求助完毕】用ode逆向求解微分方程问题

在Matlab中用ode45函数求解微分方程,已知终端时刻的值y(tf),要反向积分求初值y(0),请问高手应该注意什么?方程中含有随时间变化的参数。
例如:
tspan=[5 0];        %%%%%  (时间需  反向)
dy1dt=-f*y(1)+g*y(2);    %%%%%%% f  和g都是随时间变化的函数
dy2dt=f^2*y(1);       %%%  f 和 g 可以 数值  求得,需要实时 代入微分方程中求解

[ Last edited by cenwanglai on 2011-4-3 at 11:31 ]
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

» 抢金币啦!回帖就可以得到:

查看全部散金贴

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

gainly

木虫 (职业作家)


在里面不是高手如云吗?就急啊!!

用ode(例如 ode45 ; ode113 )求解微分方程,如果已知终端条件,进行反向积分时,除了把积分区间设置之外,还需要注意什么。今天编写了一个程序怎么结果都会出错,请高手指点。

因为中间参数随时间变化,不知道问题出在哪儿:



ft = linspace(5,0,25);          % Generate t for f
f = ft.^2 - ft - 3;        % Generate f(t)
gt = linspace(6,1,25); % Generate t for g
g = 3*sin(gt-0.25); % Generate g(t)
Tspan = [5 1]; % Solve from t=5  to t=1 % 计算范围修改
IC = -0.1518; % y(t=5) --终端y值
[T Y] = ode45(@(t,y) myode(t,y,ft,f,gt,g),Tspan,IC); % Solve ODE
figure(1)
plot(T,Y)


---------------------------------------------

function dydt = myode(t,y,ft,f,gt,g)
%%%%%  中间参数变化
f =interp1(ft,f,t);         % Interpolate the data set (ft,f) at time t    -----------这儿需要修改吗??如何变?
g =interp1(gt,g,t);         % Interpolate the data set (gt,g) at time t-----------这儿需要修改吗??如何变?

dydt = -f.*y + g;               % Evalute ODE at time t----------原微分方程 应该无需改动吧??

%%%%%%%%%%
运算结果错误,量级都差太远,请高手快点救急啊!!


----------------------------------------------------------------
又试验了一下,貌似如果是常系数、或者方程简单就容易求解,应该改变积分区间和初值就没问题。
只是现在必选考虑变参数情况,请高手帮忙啊……
分析上面的主要问题出在哪儿??
2楼2010-11-19 16:31:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lijinfeng042

木虫 (小有名气)


gainly(金币+5):谢谢关注,请指点 2010-11-20 11:20:28
引用回帖:
Originally posted by gainly at 2010-11-19 16:31:45:
用ode(例如 ode45 ; ode113 )求解微分方程,如果已知终端条件,进行反向积分时,除了把积分区间设置之外,还需要注意什么。今天编写了一个程序怎么结果都会出错,请高手指点。

因为中间参数随时间变化,不知 ...

呃 还是直接给出方程吧 这样看比较费事啊 还是看不太明白
三面等待中~
3楼2010-11-19 23:18:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

gainly

木虫 (职业作家)


dydt = -f.*y + g;     
这就是原微分方程;需要积分出t=[5, 1]的结果
其中f,g是随时间变化的参数:f = ft.^2 - ft - 3;    g = 3*sin(gt-0.25);
这只是MAtlab Help中的算例。
本来已知y(t=1)=1;可以得到:y(t=5)= -0.1518;
我现在是想已知y(t=5)= -0.1518;求未知的(t=1)=?
引用回帖:
Originally posted by lijinfeng042 at 2010-11-19 23:18:07:

呃 还是直接给出方程吧 这样看比较费事啊 还是看不太明白
三面等待中~

[ Last edited by gainly on 2010-11-20 at 11:26 ]
4楼2010-11-20 11:24:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

gainly

木虫 (职业作家)


在微分方程数值求解过程中随时改变其中的参数,这个问题有人做过吧?
5楼2010-11-23 17:02:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 gainly 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 297,工科调剂? +11 河南农业大学-能 2026-04-14 11/550 2026-04-19 20:07 by Equinoxhua
[考研] 294求调剂 +8 淡然654321 2026-04-17 9/450 2026-04-19 19:51 by Equinoxhua
[考研] 289 分105500药学专硕求调剂(找B区学校) +5 白云123456789 2026-04-13 5/250 2026-04-19 18:12 by Equinoxhua
[考研] 求调剂推荐 +9 小聂爱学习 2026-04-14 9/450 2026-04-19 17:03 by 中豫男
[考研] 327求调剂 +27 Xxjc1107. 2026-04-13 30/1500 2026-04-19 08:22 by cuisz
[考研] 300求调剂 +12 橙a777 2026-04-15 12/600 2026-04-18 23:51 by 路病情
[考研] 一志愿沪9,326求生物学调剂 +12 刘墨墨 2026-04-13 12/600 2026-04-18 23:31 by 路病情
[考研] 接受任何调剂 +6 也就是栗子 2026-04-17 7/350 2026-04-18 17:20 by 涵竹刘
[考研] 22408 312求调剂 +24 门路摸摸 2026-04-14 26/1300 2026-04-18 13:04 by wunaiy88
[考博] 申博/考博 +3 啃面包的小书虫 2026-04-17 4/200 2026-04-17 23:54 by 阳阳阳^_^
[考研] 化工学硕294分,求导师收留 +33 yzyzx 2026-04-12 37/1850 2026-04-17 23:00 by wunaiy88
[有机交流] 二苯甲酮酸类衍生物 50+3 小白爱主人 2026-04-17 6/300 2026-04-17 18:47 by kf2781974
[考研] 一志愿中科大材料与化工,353分还有调剂学校吗 +10 否极泰来2026 2026-04-15 12/600 2026-04-17 17:54 by mapenggao
[考研] 295分求调剂 +5 ?要上岸? 2026-04-17 5/250 2026-04-17 16:51 by fenglj492
[考研] 322求调剂 +6 tekuzu 2026-04-17 6/300 2026-04-17 13:48 by Espannnnnol
[教师之家] 转长聘了 +7 简单化xn 2026-04-13 7/350 2026-04-14 14:50 by xindong
[考研] 考研调剂 +13 长弓傲 2026-04-13 14/700 2026-04-14 14:44 by zs92450
[考研] 085408光电信息工程专硕355一志愿长春光机所调剂 +6 王ymaa 2026-04-13 13/650 2026-04-14 11:33 by 王ymaa
[考研] 245求调剂 +6 冰糖橘?汽水 2026-04-13 10/500 2026-04-14 10:49 by jyl0317
[考研] 085600材料与化工329分求调剂 +24 叶zilin 2026-04-13 25/1250 2026-04-14 09:20 by 试管破裂
信息提示
请填处理意见