24小时热门版块排行榜    

查看: 2464  |  回复: 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 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 麻烦专家们看看评委们的意见(F口面上) +4 gdd2018 2026-08-28 5/250 2026-08-28 12:41 by Tide man
[基金申请] 国自然面上复盘~欢迎讨论 (金币+5) +12 晴天加油 2026-08-26 13/650 2026-08-28 11:32 by skyjudy
[基金申请] 基金系统什么内容也没有 30+4 winsaint 2026-08-27 9/450 2026-08-28 11:06 by maolC
[基金申请] 为什么资助数各大高校都创新高,自己申请怎么就这么难 +10 Kittylucky 2026-08-27 11/550 2026-08-28 10:45 by Kittylucky
[基金申请] 面上合作单位盖章 +5 ssyjh 2026-08-27 5/250 2026-08-27 20:50 by gdfollow
[基金申请] 申请删除本帖 +6 lyz123lyz 2026-08-27 7/350 2026-08-27 17:31 by 宁静致远sy
[基金申请] 基金不中,共勉 +10 eulota 2026-08-26 10/500 2026-08-27 17:23 by lqllinqiaoli
[文学芳草园] 梦想 +3 myrtle 2026-08-26 3/150 2026-08-27 10:01 by angelyueyi
[基金申请] 2026年的国家社科基金项目通讯评审的新规则与新动向、新挑战 +7 process2012 2026-08-23 10/500 2026-08-26 19:23 by hmhminy
[基金申请] 范进中举一文的中心思想 +9 炎黄贵胄 2026-08-22 10/500 2026-08-26 15:40 by semaglutide
[基金申请] 2026国自然函评费到账 +22 羊腰板 2026-08-21 25/1250 2026-08-26 15:00 by zuocuiping
[基金申请] 出来了 +9 trojank 2026-08-26 9/450 2026-08-26 14:25 by 宝贝虫子
[基金申请] 国合里面能看到了 +7 一怀馨秋 2026-08-26 7/350 2026-08-26 11:23 by zhaosm1982
[基金申请] 系统进不去 +4 yanglien 2026-08-26 5/250 2026-08-26 11:10 by wenfengw83
[基金申请] 项目信息和经费信息在系统里都可以看到了 +6 wittyboy 2026-08-26 14/700 2026-08-26 10:55 by wittyboy
[基金申请] 今天务委会开完了,明天出结果吗 +19 angus9576 2026-08-25 23/1150 2026-08-26 10:03 by zp519
[基金申请] 国合现在查不到了吗? +10 chengyan1220 2026-08-24 20/1000 2026-08-26 08:57 by peasantsprig
[基金申请] 某些机构,以效率低为荣,以效率低作为存在感 +9 yuleib84 2026-08-25 10/500 2026-08-25 17:14 by alexon
[基金申请] 建议基金发布提前给出明确的时间点 +13 kulium 2026-08-21 16/800 2026-08-24 16:27 by superceng
[教师之家] 跳槽后在研项目怎么办? +5 简单化xn 2026-08-22 10/500 2026-08-23 12:38 by 简单化xn
信息提示
请填处理意见