我有一个微分方程,看起来像这样:
dT/dx = (1+alpha*M1)*(T^2)*S(x) - 4*(2+gamma*M2)*x*T
我想微分这个方程,比方说在alpha
上。但是,T
依赖于alpha
。如何得到一个包含导数dT/da
的微分方程(使用ode45
或其他东西(?
注意:我无法手动微分方程,因为我也需要对Ys
进行微分,因为我没有简单的分析函数。
到目前为止我的代码:
syms L alpha gamma Y2 Y3 Y4 Y5 Y6 x T X
M1 = 0;
M2 = 7;
Y1 = 1 + M2 / 10;
Y7 = 3 + M1 / 10;
xcp = [0 0.1*L 0.25*L 0.5*L 0.6*L 0.75*L L];
ycp = [Y1 Y2 Y3 Y4 Y5 Y6 Y7];
T0 = 5 + 1/L - 25/(L^2);
S = bezier_syms(); % Assume this returns a function of L,x,Y2,Y3,Y4,Y5,Y6
ode = diff(T,x) == (1+alphaM1)*(T^2)*S(L,x,Y2,Y3,Y4,Y5,Y6) - 4*(2 + gamma*M2)xT;
给定方程
dT/dx = F(x,T,a)
和U=dT/da
,那么通过像链式规则这样的微分规则,你就得到了
dU/dx = dF/da(x,T,a) + dF/dT(x,T,a)*U
其中偏导数易于确定。有关更精确的公式,请参见https://math.stackexchange.com/a/3699281/115115