Explicit solution not found
2 次查看(过去 30 天)
显示 更早的评论
I have a large system of equations. I want to look at their derivatives.
syms X y1(X) y2(X) y3(X) y4(X) y5(X) y6(X) y7(X) y8(X) y9(X) y10(X) y11(X) y12(X) y13(X) y14(X) y15(X) y16(X) y17(X) y18(X) y19(X) y20(X) y21(X) y22(X) y23(X)
k1i = 0.001; k1 = 0.01; k2i = 0.05; k2ii = 1; k2iii = 1;
k3i=0;k3ii=10;k4i=40;k4=40;J3=0.01;J4=0.01;
k7=1;k8=0.2;J7=0.01;J8=0.01;
k9=0.1;k10=0.04;J9=0.01;J10=0.01;
k11=0.2;k12=0.2;k12i=2;k12ii=100;
lp=1000;lm=1;kssim=100;kdsimi=0.0001;kdsim=10;
k13i=0;k13ii=0.05;k14i=0.02;k14=1;
k15i=0.25;k15ii=0;k16i=0.01;k16ii=2;J15=0.1;J16=0.1;
k21i=0;k21=10;k22=0.5;Jtfb=1;
lcp=40;lcm=1;mm=0.1;mp=0.1;
k1111=0.1;js=0.1;js2=0.1;ks=0.1;
ks1=0.1;ks2=0.1;sm=0.1;sp=0.1; kscdh=0.1; vdcdh=0.1; kstfb=0.1;vdtfb=0.1;
eq1=diff(y1)==k1i+k1.*y9-y13.*y1+mp.*y19;
eq2=diff(y2)==y19-y3;
eq3=diff(y3)==mm.*y18.*y1 -mp.*y3 -lp.*y3.*(y4-y2-y23)+lm.*(y19-y3);
eq4=diff(y4)==(ks+ks1.*y12).*(y20-y4)./(js+y20-y4)-(ks2.*y4)./(js2+y4);
eq5=diff(y5)==(k3i+k3ii.*y7).*(y21-y5)./(J3+y21-y5)-(k4i.*y12+k4.*y3).*y5./(J4+y5);
eq6=diff(y6)==k9.*(1-y6).*y3./(J9+1-y6)-k10.*y6./(J10+y6);
eq7=diff(y7)==k7.*y6.*(1-y7)./(J7+1-y7)-k8.*y7./(J8+y7);
eq8=diff(y8)==k11-y14.*y8;
eq9=diff(y9)==(k21i+k21.*y3).*(y22-y9)./(Jtfb+y22-y9)-k22.*y9./(Jtfb+y9);
eq10=diff(y10)==k15i.*(1-y10)./(J15+1-y10)-(k16i+k16ii.*y12).*y10./(J16+y10);
eq11=diff(y11)==k13i+k13ii.*y10-(k14i+k14.*y3).*y11;
eq12=diff(y12)==k13i+k13ii.*y10+lcm.*y16-lcp.*y12.*y17-(k14i+k14.*y3).*y12+sm.*y23-sp.*y12.*(y4-y2-y23);
eq13=diff(y13)==k2i+k2ii.*y5+k2iii.*y7;
eq14=diff(y14)==k12+k12i.*y12+k12ii.*y3;
eq15=diff(y15)==kdsimi+kdsim.*y3;
eq16=diff(y16)==y11-y12-y23;
eq17=diff(y17)==y8-y16;
eq18=diff(y18)==k1i+k1.*y9-k1111.*y18+mp.*y19;
eq19=diff(y19)== mm.*y18.*y1-mp.*y19;
eq20=diff(y20)==kssim-y15.*y20;
eq21=diff(y21)==kscdh-vdcdh.*y21;
eq22=diff(y22)==kssim-y15.*y22;
eq23=diff(y23)==-sm.*y23+sp.*y12.*(y4-y2-y23);
q=dsolve(eq1,eq2,eq3,eq4,eq5,eq6,eq7,eq8,eq9,eq10,eq11,eq12,eq13,eq14,eq15,eq16,eq17,eq18,eq19,eq20,eq21,eq22,eq23,'X');
Can anyone tell me why it can't find a solution? I had a smaller version of this, and it also wouldn't evaluate. I would like to evaluate the derivatives at one or two points to find the slopes. I'm not 100% on how the symbolic toolbox works, so can someone shed some light on this? Any info would be greatly appreciated.
0 个评论
回答(1 个)
Walter Roberson
2016-8-4
syms x y1 y2 y3 y4 y5 y6 y7 y8 y9 y10 y11 y12 y13 y14 y15 y16 y17 y18 y19 y20 y21 y22 y23
and
syms Jy9 kdy4i kdy4 ksy4 ksy9 vdy9
The second list is needed to account for undefined variables in your code. Perhaps some of those are typing mistakes in your code. For example, perhaps kdy4i is intended to be k*diff(y4(X),X)*1i -- we don't know.
You should be replacing each of those diff() to diff() with respect to a variable, such as diff(y4(X),X)
11 个评论
Walter Roberson
2016-8-9
The equations such as for y4, that involve division by the same function, are not easy to automatically deal with. If you try to solve one of them in isolation without any boundary conditions then you get an expression involving roots and arctan and ln, but that expression fails at X = 0 because it encounters ln(0). When you add in the boundary conditions then it looks to me as if the solutions might have to be that the function is a constant 0, but I am not certain of that.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Assumptions 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!