Matlab 用时间相关值求解常微分方程
我需要帮助解决以下微分方程使用函数ode45从matlab。 我的问题是方程上的时间相关函数。Matlab 用时间相关值求解常微分方程,matlab,ode,Matlab,Ode,我需要帮助解决以下微分方程使用函数ode45从matlab。 我的问题是方程上的时间相关函数。 方程式: d(C(t)*W(t))/dt=F1-F2 F1和F2是我想传递给函数的常量。 下面是我正在使用的代码示例。为了解决ODE,我使用Euler的方法,但我想使用ODE45或适当的ODE解算器来比较结果。Euler方法中的错误值可能导致错误信息。 这是C的函数: function CV=Cfunction(t,CVS,CVD) T =0.0125; %Duration TS
方程式:
d(C(t)*W(t))/dt=F1-F2
F1和F2是我想传递给函数的常量。 下面是我正在使用的代码示例。为了解决ODE,我使用Euler的方法,但我想使用ODE45或适当的ODE解算器来比较结果。Euler方法中的错误值可能导致错误信息。
这是C的函数:
function CV=Cfunction(t,CVS,CVD)
T =0.0125; %Duration
TS=0.0050; %Duration
tcS=0.0025; %time constant
tcD=0.0075; %time constant
tc=rem(t,T); % tc=time in the current cycle,
if(tc<TS)
e=(1-exp(-tc/tcS))/(1-exp(-TS/tcS));
CV=CVD*(CVS/CVD)^e;
else
e=(1-exp(-(tc-TS)/tcD))/(1-exp(-(T-TS)/tcD));
CV=CVS*(CVD/CVS)^e;
end
函数CV=C函数(t、CVS、CVD)
T=0.0125;%期间
TS=0.0050;%期间
tcS=0.0025;%时间常数
tcD=0.0075;%时间常数
tc=雷姆(t,t);%tc=当前循环中的时间,
如果(tc看起来你的方程有一个简单的解析解。假设所有参数都是双参数,Whandle是一个函数句柄,Whandle(t)是非零的,[0,t]上的积分等等
function y = C(t, Whandle, F1, F2)
y = 1/Whandle(t) * (F1 - F2) * t
end
到目前为止,你尝试过什么?你看过文档了吗?例如,你有没有尝试过任何例子?这是一个编程网站,你应该编辑你的问题,将方程转化为代码。我继续编辑了这篇文章,以包含我目前的代码。但是,我没有使用任何ODE解算器。为了解决ODE,我正在实现Euler的方法。我想知道如何使用任何一个解算器来解ODE,以便比较结果并确定使用Euler方法的误差值。我回顾了我最初在问题中提出的方程,意识到我犯了一个错误,我已经纠正了。C和W都是依赖于时间的函数。没关系,equati关于仍然可积,刚刚编辑了我的答案
function y = C(t, Whandle, F1, F2)
y = 1/Whandle(t) * (F1 - F2) * t
end