24小时热门版块排行榜    

查看: 2215  |  回复: 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 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 【考研调剂】化学专业 281分,一志愿四川大学,诚心求调剂 +6 吃吃吃才有意义 2026-03-19 6/300 2026-03-20 10:47 by 尽舜尧1
[考研] 085700资源与环境308求调剂 +10 墨墨漠 2026-03-18 10/500 2026-03-20 10:35 by 无际的草原
[考研] 08工学调剂 +4 用户573181 2026-03-20 4/200 2026-03-20 10:32 by 朗月清风1
[考研] 279分求调剂 一志愿211 +7 chaojifeixia 2026-03-19 7/350 2026-03-20 09:00 by sunny300
[考研] 一志愿苏州大学材料求调剂,总分315(英一) +3 sbdksD 2026-03-19 3/150 2026-03-19 23:21 by fmesaito
[考研] 307求调剂 +9 冷笙123 2026-03-17 9/450 2026-03-19 22:44 by 学员8dgXkO
[考研] 288求调剂 +15 于海海海海 2026-03-19 15/750 2026-03-19 22:41 by 学员8dgXkO
[考研] 286求调剂 +6 lemonzzn 2026-03-16 10/500 2026-03-19 14:31 by lemonzzn
[考研] 一志愿福大288有机化学,求调剂 +3 小木虫200408204 2026-03-18 3/150 2026-03-19 13:31 by houyaoxu
[考研] 287求调剂 +3 晨昏线与星海 2026-03-19 4/200 2026-03-19 12:32 by peike
[考研] 材料考研调剂 +3 xwt。 2026-03-19 3/150 2026-03-19 11:22 by w沐阳w
[考研] 一志愿武理材料305分求调剂 +5 想上岸的鲤鱼 2026-03-18 6/300 2026-03-18 17:53 by 无际的草原
[考研] 08工科 320总分 求调剂 +5 梨花珞晚风 2026-03-17 5/250 2026-03-18 14:49 by haxia
[考研] 311求调剂 +6 26研0 2026-03-15 6/300 2026-03-18 14:43 by haxia
[考研] 297求调剂 +8 戏精丹丹丹 2026-03-17 8/400 2026-03-18 14:30 by laoshidan
[考研] 考研求调剂 +3 橘颂. 2026-03-17 4/200 2026-03-17 21:43 by 有只狸奴
[考研] 332求调剂 +6 Zz版 2026-03-13 6/300 2026-03-17 17:03 by ruiyingmiao
[考研] 一志愿,福州大学材料专硕339分求调剂 +3 木子momo青争 2026-03-15 3/150 2026-03-17 07:52 by laoshidan
[基金申请] 今年的国基金是打分制吗? 50+3 zhanghaozhu 2026-03-14 3/150 2026-03-16 17:07 by 北京莱茵润色
[考研] 304求调剂 +7 7712b 2026-03-13 7/350 2026-03-13 21:42 by peike
信息提示
请填处理意见