如何解决系统的常微分方程未知的初始值?

8视图(30天)
你好,我是努力解决一个常微分方程系统:
,
在哪里
和一个给定的10 x10矩阵。
任务需要计算初始值 。所以第一步是找到一个函数
%的矩阵
=[0(5、5)、眼睛(5,5)
9 0 4 0 0 0 0.04 -0.09 0 0
-0.045 - 0.02 -4.5 - 2 0 0 0 0 0
1.333 1.333 -3.666 0.02 0.0133 0.0133 -0.03666 0 0 2
0 0 0 -1.5 0.25 0 0 0 -0.015 0.0025
0 0 1.2 0.2 3 0 0 0.012 0.002 -0.03);
信谊q_01;%符号标量。
信谊问(t) [10 1];%符号向量的函数。
q0 = [q_01 4 3 2 1]。';%初始值为“位移”
dq0 = 0 (5、1);%初始值为“速度”
x0 = [q0; dq0];%初始值向量
%的常微分方程系统
命令= [diff (q1, t) = =(1:) *问
diff (q2, t) = = (2:) * q
diff (q3, t) = = (3:) * q
diff(第四季度,t) = = (4:) * q
diff (q5 t) = = (5:) * q
diff (q1, t, 2) = =(6:) *问
diff (q2, t, 2) = = (7:) * q
diff (q3, t, 2) = = (8:) * q
diff (q4 t 2) = =(9日:)* q
diff (q5 t 2) = = (10:) * q];
Dq1 = diff (q1, t, 2);
Dq2 = diff (q2, t, 2);
Dq3 = diff (q3 t 2);
Dq4 = diff (q4 t 2);
Dq5 = diff (q5 t 2);
气孔导度= (q1 (0) = = q_01, q2(0) = = 4,第三季(0)= = 3,第四季度(0)= = 2,q5 (0) = = 1
Dq1 (0) = = 0, Dq2 (0) = = 0, Dq3 (0) = = 0, Dq4 (0) = = 0, Dq5 (0) = = 0);
%使用dsolve接受解决方案q1Solt (t)
[q1Sol (t) q2Sol (t) q3Sol (t) q4Sol (t) q5Sol (t) q6Sol (t) q7Sol (t) q8Sol (t) q59Sol (t) q10Sol (t)) = dsolve(方程式,气孔导度);
警告:方程数量大于不确定的数量。启发式试图减少广场系统。
错误使用mupadengine / feval_internal
广场系统因为无法减少方程不同于不确定的数量。

错误dsolve > mupadDsolve(第334行)
T = feval_internal (symengine symobj:: dsolve, sys, x,选项);

错误dsolve(第203行)
索尔= mupadDsolve (args,选项);

接受的答案

Torsten
Torsten 2022年12月20日
编辑:Torsten 2022年12月20日
你有一个边值问题。我建议使用BVP4C解决数值。
xmesh = linspace (0, 3100);
solinit = bvpinit (xmesh, (1、4、3、2、1; 0, 0, 0, 0, 0));
索尔= bvp4c (@bvpfcn @bcfcn solinit);
格式
sol.y (1, 1)
ans =
-2.418530283487390
情节(溶胶。x, sol.y (1:)“o”)
函数就要= bvpfcn (x, y)
=[0(5、5)、眼睛(5,5)
9 0 4 0 0 0 0.04 -0.09 0 0
-0.045 - 0.02 -4.5 - 2 0 0 0 0 0
1.333 1.333 -3.666 0.02 0.0133 0.0133 -0.03666 0 0 2
0 0 0 -1.5 0.25 0 0 0 -0.015 0.0025
0 0 1.2 0.2 3 0 0 0.012 0.002 -0.03);
就要= * y;
结束
函数res = bcfcn (ya,)
res =[丫(2)4,丫(3)3;丫(4)2,丫(5)1;yb(1) 1;丫(6);丫(7);丫(8);丫(9);丫(10)];
结束
3评论
Keidi Zyka
Keidi Zyka 2022年12月22日
Torsten非常感谢。它的工作原理非常漂亮。

登录置评。

答案(1)

Bjorn Gustavsson
Bjorn Gustavsson 2022年12月20日
编辑:Bjorn Gustavsson 2022年12月20日
如此:
%一个二阶颂歌转述2耦合一阶
信谊2 q0 [1]
信谊a1 a2
信谊问(t) (2 - 1);
一个= (0 1;a1、a2);
Q = dsolve (diff (Q, t) = = * Q Q (0) = = q0);
这个也适用:
信谊q0 (4 - 1)
信谊问(t) (4 - 1);
信谊a31 a32 a33 a34 a41 a42 a43 a44
= (0 0 1 0,0 0 0 1;a31 a32 a33 a34; a41 a42 a43 a44);
%
% A =
%
% (0,0,1,0)
% (0,0,0,1]
% (a31 a32 a33 a34]
% (a41 a42、a43 a44] % %,是的,我没有太多的工作
Q = dsolve (diff (Q, t) = = * Q Q (0) = = q0);
但如果你看看这一个的解决方案得到几屏为每个组件。这可能是容易看的输出 eig (数值特征值和特征向量),从复指数和手动建立一个解决方案,然后求出所需的初始条件。(因为 一个 大于4 x 4我们知道,“会吗 非常 挑战性”获得封闭分析特征多项式的根)。
HTH
3评论
Keidi Zyka
Keidi Zyka 2022年12月22日
@Bjorn Gustavsson 谢谢你很多。使用nummerical计算的原创想法的EV和电子战作品一样好和是一个很好的实践,解决手工考试练习。

登录置评。

标签

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!