У меня есть система символов c 10 ОДУ с 30 граничными условиями. Система такого типа:
ode1=60^2*diff(ul1,s,4)+diff(ul1,s,2)+60^3*diff(um1,s,5)+60*diff(um1,s,3)==0;
ode3=90^2*diff(ul3,s,4)+diff(ul3,s,2)+90^3*diff(um3,s,5)+90*diff(um3,s,3)==0;
ode4=90^2*diff(ul4,s,4)+diff(ul4,s,2)+90^3*diff(um4,s,5)+90*diff(um4,s,3)==0;
ode2=diff(um2,s,4)==0;
ode5=diff(um5,s,4)==0;
ode6=(diff(ul1,s,2)-diff(um1,s,1)/60)==0;
ode7=(diff(ul3,s,2)-diff(um3,s,1)/90)==0;
ode8=(diff(ul4,s,2)-diff(um4,s,1)/90)==0;
ode9=diff(ul2,s,2)==0;
ode10=diff(ul5,s,2)==0;
Условия границы очень просты:
cond1 = N1(0)==F1;
cond2 = T1(0)==F2;
cond3 = M1(0)==0;
cond4 = ul1(30*pi) == ul2(0);
cond5 = theta1(30*pi) == theta2(0);
cond6 = um1(30*pi) == um2(0);
cond7 = N1(30*pi) == N2(0);
cond8 = T1(30*pi) == T2(0);
cond9 = M1(30*pi) == M2(0);
cond10 = um2(120) == um3(0);
cond11 = theta2(120) == theta3(0);
cond12 = ul2(120)==ul3(0);
cond13 = T2(120) == T3(0);
cond14 = M2(120) == M3(0);
cond15 = N2(120) == N3(0);
cond16 = N3(45*pi) == N4(0);
cond17 = T3(45*pi) == -T4(0);
cond18 = M3(45*pi) == -M4(0);
cond19 = ul3(45*pi) == ul4(0);
cond20 = um3(45*pi) == -um4(0);
cond21 = theta3(45*pi) == -theta4(0);
cond22 = theta4(45*pi/2) == theta5(0);
cond23 = um4(45*pi/2) == um5(0);
cond24 = ul4(45*pi/2) == ul5(0);
cond25 = T4(45*pi/2) == T5(0);
cond26 = M4(45*pi/2) == M5(0);
cond27 = N4(45*pi/2) == N5(0);
cond28 = um5(180) == 0;
cond29 = theta5(180) == 0;
cond30 = ul5(180) == 0;
Конечно, все ум (ы) и уль (ы) - неизвестные, F1 , F2 и b являются числами, в то время как M (s), T (s), N (s) и theta (s) записываются как функции ul (s) и um (s).
Например:
theta1(s)=ul1/60+diff(um1,s,1);
M1(s)=b*diff(theta1,s,1);
Почему Matlab не может найти явное решение? Это вычисление слишком сложно для Matlab? Или, может быть, я должен просто использовать другую функцию вместо dsolve?
Большое спасибо за вашу помощь! Извините, но я новичок в этой области