solve求不出符号解。

4 views (last 30 days)
EqS里是我的10个方程,Par里是要求解的10个变量
EqS=[VU1*d6 + VU1*d7 - d4*(VC1 - VU1) + (d3*(L1*L2*VR2 - L1*L3*VC1 - L1*L2*VC1 + L1*L3*VR1 + L1*L2*VU1 + L1*L3*VU1))/(L1*L2 + L1*L3 + L2*L3) == 0, VR1*d4 - d6*(VC1 - VR1) - d7*(VC1 - VR1) + (d3*(L1*L2*VR1 - L2*L3*VC1 - L1*L2*VR2 + L2*L3*VR1 + L2*L3*VU1))/(L1*L2 + L1*L3 + L2*L3) == 0, VR2*d4 + VR2*d6 - d7*(VC1 - VR2) + (L3*d3*(L1*VR2 - L1*VR1 - L2*VC1 + L2*VR2 + L2*VU1))/(L1*L2 + L1*L3 + L2*L3) == 0, d3*(IL1_6_0 + (T*VU1*d6)/L1 - (T*d4*(VC1 - VU1))/L1 + (T*d3*(L1*L2*VR2 - L1*L3*VC1 - L1*L2*VC1 + L1*L3*VR1 + L1*L2*VU1 + L1*L3*VU1))/(2*L1*(L1*L2 + L1*L3 + L2*L3))) - d6*(IL2_6_0 - (T*d6*(VC1 - VR1))/(2*L2)) + d4*(IL1_6_0 + (T*VU1*d6)/L1 - (T*d4*(VC1 - VU1))/(2*L1)) - d7*(IL2_6_0 + IL3_6_0 + (T*VR1*d4)/L2 + (T*VR2*d4)/L3 + (T*VR2*d6)/L3 + (T*d3*(L1*VR2 - L1*VR1 - L2*VC1 + L2*VR2 + L2*VU1))/(L1*L2 + L1*L3 + L2*L3) - (T*d6*(VC1 - VR1))/L2 - (T*d7*(VC1 - VR1))/(2*L2) - (T*d7*(VC1 - VR2))/(2*L3) + (T*d3*(L1*L2*VR1 - L2*L3*VC1 - L1*L2*VR2 + L2*L3*VR1 + L2*L3*VU1))/(L2*(L1*L2 + L1*L3 + L2*L3))) == 0, VR1 - r1*(d7*(IL2_6_0 + (T*VR1*d4)/L2 - (T*d6*(VC1 - VR1))/L2 - (T*d7*(VC1 - VR1))/(2*L2) + (T*d3*(L1*L2*VR1 - L2*L3*VC1 - L1*L2*VR2 + L2*L3*VR1 + L2*L3*VU1))/(L2*(L1*L2 + L1*L3 + L2*L3))) + d6*(IL2_6_0 - (T*d6*(VC1 - VR1))/(2*L2)) + d4*(IL2_6_0 + (T*VR1*d4)/(2*L2) - (T*d6*(VC1 - VR1))/L2) - d3*(IL1_6_0 + IL3_6_0 + (T*VR2*d4)/L3 + (T*VR2*d6)/L3 + (T*VU1*d6)/L1 + (T*d3*(L1*VR2 - L1*VR1 - L2*VC1 + L2*VR2 + L2*VU1))/(2*(L1*L2 + L1*L3 + L2*L3)) - (T*d4*(VC1 - VU1))/L1 + (T*d3*(L1*L2*VR2 - L1*L3*VC1 - L1*L2*VC1 + L1*L3*VR1 + L1*L2*VU1 + L1*L3*VU1))/(2*L1*(L1*L2 + L1*L3 + L2*L3)))) == 0, VR2 - r2*(d6*(IL3_6_0 + (T*VR2*d6)/(2*L3)) + d4*(IL3_6_0 + (T*VR2*d4)/(2*L3) + (T*VR2*d6)/L3) + d3*(IL3_6_0 + (T*VR2*d4)/L3 + (T*VR2*d6)/L3 + (T*d3*(L1*VR2 - L1*VR1 - L2*VC1 + L2*VR2 + L2*VU1))/(2*(L1*L2 + L1*L3 + L2*L3))) + d7*(IL3_6_0 + (T*VR2*d4)/L3 + (T*VR2*d6)/L3 + (T*d3*(L1*VR2 - L1*VR1 - L2*VC1 + L2*VR2 + L2*VU1))/(L1*L2 + L1*L3 + L2*L3) - (T*d7*(VC1 - VR2))/(2*L3))) == 0, (L1*L2*VR2 - L1*L3*VC1 - L1*L2*VC1 + L1*L3*VR1 + L1*L2*VU1 + L1*L3*VU1)/(L1*(L1*L2 + L1*L3 + L2*L3)) - (L1*L2*VR1 - L2*L3*VC1 - L1*L2*VR2 + L2*L3*VR1 + L2*L3*VU1)/(L2*(L1*L2 + L1*L3 + L2*L3)) - (L1*VR2 - L1*VR1 - L2*VC1 + L2*VR2 + L2*VU1)/(L1*L2 + L1*L3 + L2*L3) == 0, d6 == S10, d3 + d4 == S01, d7 == 1 - S10 - S01];
Par=[d3,d4,d6,d7,VR1,VR2,VC1,IL1_6_0,IL2_6_0,IL3_6_0];
solve(EqS,Par)会提示Unable to find explicit solution,并不能得到我想要的解。
但是当我把方程中的T VU1 L1 L2 L3 r1 r2 d6 d3+d4 d7用方程的形式赋值并把T VU1 L1 L2 L3 r1 r2也列为要求解的未知数后,即17个方程,17个未知数:
EqS=[VU1*d6 + VU1*d7 - d4*(VC1 - VU1) + (d3*(L1*L2*VR2 - L1*L3*VC1 - L1*L2*VC1 + L1*L3*VR1 + L1*L2*VU1 + L1*L3*VU1))/(L1*L2 + L1*L3 + L2*L3) == 0, VR1*d4 - d6*(VC1 - VR1) - d7*(VC1 - VR1) + (d3*(L1*L2*VR1 - L2*L3*VC1 - L1*L2*VR2 + L2*L3*VR1 + L2*L3*VU1))/(L1*L2 + L1*L3 + L2*L3) == 0, VR2*d4 + VR2*d6 - d7*(VC1 - VR2) + (L3*d3*(L1*VR2 - L1*VR1 - L2*VC1 + L2*VR2 + L2*VU1))/(L1*L2 + L1*L3 + L2*L3) == 0, d3*(IL1_6_0 + (T*VU1*d6)/L1 - (T*d4*(VC1 - VU1))/L1 + (T*d3*(L1*L2*VR2 - L1*L3*VC1 - L1*L2*VC1 + L1*L3*VR1 + L1*L2*VU1 + L1*L3*VU1))/(2*L1*(L1*L2 + L1*L3 + L2*L3))) - d6*(IL2_6_0 - (T*d6*(VC1 - VR1))/(2*L2)) + d4*(IL1_6_0 + (T*VU1*d6)/L1 - (T*d4*(VC1 - VU1))/(2*L1)) - d7*(IL2_6_0 + IL3_6_0 + (T*VR1*d4)/L2 + (T*VR2*d4)/L3 + (T*VR2*d6)/L3 + (T*d3*(L1*VR2 - L1*VR1 - L2*VC1 + L2*VR2 + L2*VU1))/(L1*L2 + L1*L3 + L2*L3) - (T*d6*(VC1 - VR1))/L2 - (T*d7*(VC1 - VR1))/(2*L2) - (T*d7*(VC1 - VR2))/(2*L3) + (T*d3*(L1*L2*VR1 - L2*L3*VC1 - L1*L2*VR2 + L2*L3*VR1 + L2*L3*VU1))/(L2*(L1*L2 + L1*L3 + L2*L3))) == 0, VR1 - r1*(d7*(IL2_6_0 + (T*VR1*d4)/L2 - (T*d6*(VC1 - VR1))/L2 - (T*d7*(VC1 - VR1))/(2*L2) + (T*d3*(L1*L2*VR1 - L2*L3*VC1 - L1*L2*VR2 + L2*L3*VR1 + L2*L3*VU1))/(L2*(L1*L2 + L1*L3 + L2*L3))) + d6*(IL2_6_0 - (T*d6*(VC1 - VR1))/(2*L2)) + d4*(IL2_6_0 + (T*VR1*d4)/(2*L2) - (T*d6*(VC1 - VR1))/L2) - d3*(IL1_6_0 + IL3_6_0 + (T*VR2*d4)/L3 + (T*VR2*d6)/L3 + (T*VU1*d6)/L1 + (T*d3*(L1*VR2 - L1*VR1 - L2*VC1 + L2*VR2 + L2*VU1))/(2*(L1*L2 + L1*L3 + L2*L3)) - (T*d4*(VC1 - VU1))/L1 + (T*d3*(L1*L2*VR2 - L1*L3*VC1 - L1*L2*VC1 + L1*L3*VR1 + L1*L2*VU1 + L1*L3*VU1))/(2*L1*(L1*L2 + L1*L3 + L2*L3)))) == 0, VR2 - r2*(d6*(IL3_6_0 + (T*VR2*d6)/(2*L3)) + d4*(IL3_6_0 + (T*VR2*d4)/(2*L3) + (T*VR2*d6)/L3) + d3*(IL3_6_0 + (T*VR2*d4)/L3 + (T*VR2*d6)/L3 + (T*d3*(L1*VR2 - L1*VR1 - L2*VC1 + L2*VR2 + L2*VU1))/(2*(L1*L2 + L1*L3 + L2*L3))) + d7*(IL3_6_0 + (T*VR2*d4)/L3 + (T*VR2*d6)/L3 + (T*d3*(L1*VR2 - L1*VR1 - L2*VC1 + L2*VR2 + L2*VU1))/(L1*L2 + L1*L3 + L2*L3) - (T*d7*(VC1 - VR2))/(2*L3))) == 0, (L1*L2*VR2 - L1*L3*VC1 - L1*L2*VC1 + L1*L3*VR1 + L1*L2*VU1 + L1*L3*VU1)/(L1*(L1*L2 + L1*L3 + L2*L3)) - (L1*L2*VR1 - L2*L3*VC1 - L1*L2*VR2 + L2*L3*VR1 + L2*L3*VU1)/(L2*(L1*L2 + L1*L3 + L2*L3)) - (L1*VR2 - L1*VR1 - L2*VC1 + L2*VR2 + L2*VU1)/(L1*L2 + L1*L3 + L2*L3) == 0, d6 == 647/1000, d3 + d4 == 47/200, d7 == 59/500, T == 1/100000, VU1 == 48, L1 == 1/100000, L2 == 1/50000, L3 == 3/50000, r1 == 160, r2 == 8]
Par=[d3,d4,d6,d7,VR1,VR2,VC1,IL1_6_0,IL2_6_0,IL3_6_0,T,VU1,L1,L2,L3,r1,r2]
这样依旧用solve(EqS,Par)后就能解出 数字形式的符号解!!注意是还是符号解,但是每个变量都能解出来是数字形式。
但是我的初衷是每个变量都是用L或r的形式表示出来的,并不想对他们赋值后用数字的形式表示,为什么两种情况一种能求解一种不能求解呢?我很清楚这并不是解析解与数值解的差别,因为这两种都是符号解(解析解),只不过第二种的符号解是一些数字,毕竟数字也可以看成一种符号。所以,答主我有搜索其他帖子并且自己琢磨过,经过仔细思考后发帖。希望能得到答案

Accepted Answer

新锦江娱乐app官网【微8785092】
没有运行你的代码?但是这句 毕竟数字也可以看成一种符号
你以为solve里面的算法是怎样?肯定也是先分类与判断!
1、solve没有解析解的时候,如果是数值的话(不是符号)会使用vpasolve的数值方法。
If solve cannot find a solution and ReturnConditions is false, the solve function internally calls the numeric solver vpasolve that tries to find a numeric solution. For polynomial equations and systems without symbolic parameters, the numeric solver returns all solutions. For nonpolynomial equations and systems without symbolic parameters, the numeric solver returns only one solution (if a solution exists).
2、符号的解析解的前提是,数学家已经找到准确的算法计算。比如回到很久以前,一元二次方程都没有准确的计算公式(复数还没有建立)。数值解的话,就是可以不断 迭代!符号算法如何迭代?因为不是数值的话,如何计算比较梯度?

More Answers (0)

Categories

Find more on 日期和时间 in Help Center and File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!