24小时热门版块排行榜    

Znn3bq.jpeg
查看: 2240  |  回复: 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求调剂 +23 GENJIOW 2026-04-07 26/1300 2026-04-09 18:02 by 朱成玉2017
[考研] 085501机械英二77总分294求调剂,接受跨专业学习 +6 守法公民亓纪 2026-04-08 6/300 2026-04-09 15:55 by wp06
[考研] 初试分332,一志愿报考西北工业大学, +7 故人?? 2026-04-09 7/350 2026-04-09 15:04 by 猪会飞
[考研] 070300化学学硕311分求调剂 +18 梁富贵险中求 2026-04-04 20/1000 2026-04-09 11:18 by 哒哒哒呱呱呱
[考研] 二次调剂求老师收留 +3 笑笑袁 2026-04-08 3/150 2026-04-08 23:50 by 醉在风里
[考研] 302分求调剂 +4 凡语祈愿 2026-04-08 5/250 2026-04-08 22:03 by 土木硕士招生
[考研] 0703化学调剂 348分 +14 唉我超真没招了 2026-04-06 15/750 2026-04-08 19:16 by 我减肥1
[考研] 一志愿南昌大学,085600,344分求调剂 +11 调剂上岸玘 2026-04-05 12/600 2026-04-08 16:17 by luoyongfeng
[考研] 0854电子信息319求调剂(接受跨专业调剂) +5 星星不眨眼喽 2026-04-05 6/300 2026-04-07 22:16 by hemengdong
[考研] 307求调剂 +3 Youth@@ 2026-04-07 3/150 2026-04-07 22:00 by hemengdong
[考研] 277求调剂 数一104分 +9 瓶子PZ 2026-04-05 14/700 2026-04-07 17:52 by 蓝云思雨
[考研] 081700,311,求调剂 +17 冬十三 2026-04-04 18/900 2026-04-07 12:50 by Sammy2
[考研] 338求调剂 +4 我想上岸ii 2026-04-05 4/200 2026-04-06 21:04 by 木子君1218
[考研] 调剂 一志愿吉林大学357分 +5 .Starry. 2026-04-04 5/250 2026-04-06 09:28 by cql1109
[考研] 326求调剂 +3 顾若浮生 2026-04-05 3/150 2026-04-05 18:32 by 蓝云思雨
[考研] 材料调剂 +7 dxy调剂 2026-04-04 7/350 2026-04-05 09:15 by 陌秋26
[考研] 313求调剂 +3 海日海日 2026-04-04 3/150 2026-04-05 07:48 by 544594351
[考研] 11408,335分,本科211,求调剂,可转专业 +5 鳄梨大鳄鱼 2026-04-03 5/250 2026-04-04 22:49 by chongya
[考研] 一志愿沪9,求生物学调剂,326分 +6 刘墨墨 2026-04-04 6/300 2026-04-04 19:44 by 唐沐儿
[考研] 求调剂,一志愿南京航空航天大学 ,080500材料科学与工程学硕 +10 @taotao 2026-04-03 10/500 2026-04-04 09:01 by T可可西里T
信息提示
请填处理意见