繁体   English   中英

如何将函数的派生作为函数句柄的输入?

[英]How can I include the derivative of a function as an input to a function handle?

考虑以下与常微分方程组解相对应的代码段

da / dt = t * a /(a ^ 2 + b ^ 2 +1)

db / dt =(ba)^ 2 /(b ^ 2 + c ^ 2 + 1)

dc / dt = t ^ 2 * c ^ 2 /(a ^ 2 + c ^ 2 + 1)

clear;clc;
initial_conditions = [1 0 -1]; 

F=@(t,y) [t.*y(1)./(y(1).^2+y(2).^2+1);
(y(2)-y(1)).^2./(y(2).^2+y(3).^2+1);
t.^2.*y(3).^2./(y(1).^2+y(3).^2+1)];

[t y]=ode23tb(F,[0 2], initial_conditions);

plot(t, y(:,1), 'r', t, y(:,2), 'g', t, y(:,3), 'b')

其中y(1)对应于a,y(2)对应于b,y(3)对应于c。 如何包含z(0)= 2的附加微分方程dz / dt = 5 * da / dt? 我不确定如何将其包括在函数句柄中,因为它是右侧状态变量之一的派生形式,而不是其他方程式本身的状态变量本身之一。

谢谢。

由于a(t)b(t)c(t)以及它们的导数不取决于z(t)dz/dt ,因此问题的性质仍然只是3个未知的ODE。

因此,尽管您可以将其编码为4个未知数的ODE并让ode23()解决整个集合,但效率低下。 只需解决代码中已经完成的abc ,并从ode23()获得的da/dt中的z(t)进行ode23()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM