Warning: Explicit solution could not be found. > In solve at 169
Afficher commentaires plus anciens
Hi Everyone,
I've looked through all of the other questions associated with the failure of Matlab to resolve simultaneous equations and haven't found an answer to my problem unfortunately. I have 10 equations and 10 unknowns, 5 unknowns and 5 equations split into their real and imaginary components, code below
clear
syms Itr Iti I2r I2i V2r V2i Inr Ini Vnr Vni;
char eqn1r eqn1i eqn2r eqn2i eqn3r eqn3i eqn4r eqn4i eqn5r eqn5r_lhs eqn5r_rhs eqn5i eqn5i_lhs eqn5i_rhs;
syms Vt n k c beta Rt Xt Rc Xc;
eqn1r = 'I2r*V2r + I2i*V2i = Inr*Vnr + Ini*Vni';
eqn1i = 'I2r*V2i - I2i*V2r = Inr*Vni - Ini*Vnr';
eqn2r = 'Vnr - V2r = (1/2)*k*(I2r*Rc + Inr*Rc - I2i*Xc - Ini*Xc)';
eqn2i = 'Vni - V2i = (1/2)*k*(I2i*Rc + Ini*Rc + I2r*Xc + Inr*Xc)';
eqn3r = 'I2r*Vnr - I2i*Vni = 2*Inr*Vnr - 2*Ini*Vni - Inr*V2r + Ini*V2i';
eqn3i = 'I2i*Vnr + I2r*Vni = 2*Inr*Vni + 2*Ini*Vnr - Inr*V2i - Ini*V2r';
eqn4r = '2*Itr*Rc + Itr*Rt - 2*Iti*Xc - Iti*Xt = V2r - Vt';
eqn4i = '2*Itr*Xc + Itr*Xt + 2*Iti*Rc + ItiRt = V2i';
eqn5r_lhs = ' Itr*V2r - Iti*V2i - Itr^2*Rc + 2*Itr*Iti*Xc + Iti^2*Rc =';
eqn5r_rhs = ' (1/2)*c*(I2r*V2r + I2i*V2i + Inr*Vnr + Ini*Vni) + (1/4)*beta*(I2r^2*Rc - I2i^2*Rc + Inr^2*Rc - Ini^2*Rc - 2*I2r*I2i*Rc + 2*I2r*Inr*Rc - 2*I2r*Ini*Xc - 2*I2i*Inr*Xc - 2*I2i*Ini*Rc - 2*Inr*Ini*Xc)';
eqn5r = strcat(eqn5r_lhs, eqn5r_rhs);
eqn5i_lhs = ' Iti*V2r + Itr*V2i - Itr^2*Xc - 2*Itr*Iti*Rc + Iti^2*Xc =';
eqn5i_rhs = ' (1/2)*c*(-I2i*V2r + I2r*V2i - Ini*Vnr + Inr*Vni) + (1/4)*beta*(I2r^2*Xc - I2i^2*Xc + Inr^2*Xc - Ini^2*Xc + 2*I2r*I2i*Rc + 2*I2r*Inr*Xc + 2*I2r*Ini*Rc + 2*I2i*Inr*Rc - 2*I2i*Ini*Xc + 2*Inr*Ini*Rc)';
eqn5i = strcat(eqn5i_lhs, eqn5i_rhs);
S = solve(eqn1r, eqn1i, eqn2r, eqn2i, eqn3r, eqn3i, eqn4r, eqn4i, eqn5r, eqn5i, Itr, Iti, I2r, I2i, V2r, V2i, Inr, Ini, Vnr, Vni);
Any help much appreciated
Cheers,
Simon
2 commentaires
Walter Roberson
le 27 Sep 2013
Could you confirm that Vt n k c beta Rt Xt Rc Xc are all intended to be constants, not to be solved for? For one thing, "n" does not appear in the equations.
simon
le 27 Sep 2013
Réponses (1)
Walter Roberson
le 27 Sep 2013
In equation 4,
eqn4i = '2*Itr*Xc + Itr*Xt + 2*Iti*Rc + ItiRt = V2i';
you have ItiRt instead of Iti*Rt
7 commentaires
simon
le 27 Sep 2013
Walter Roberson
le 27 Sep 2013
You can reduce out 6 of the variables without much difficulty, but when you get down to the V* variables, all remaining possibilities involve solving at least quartics. You have not put any restrictions on the range of any of the variables, and with there being those 8 constants of unknown range in the picture, it is necessary to assume that all 4 of the general solutions to the quartics are valid, and to proceed case-by-case with each of them. If you got lucky and everything stayed as tractable as quartics, then you would need to run through 4*4*4*4 combinations (there being 4 equations each generating at least 4 solutions), but even a single general solution of a quartic is terribly long. You would need a lot of memory and a bunch of time to get through all of the possibilities. Even if one assumes that 3/4 of the solutions are redundant, what you would be left with afterwards would be a good 64+ different and very long solutions.
It might take considerably less memory if the constants were available. It would certainly take less effort if the constants were available and a constraint was added that precluded solutions in imaginaries.
Walter Roberson
le 27 Sep 2013
Some fooling around with random substituted constants suggest that possibly the final variable to solve might require an order 6 polynomial that does not have a closed form solution. If, that is, everything else is resolved in the right order; otherwise you might end up with two order 6 polynomials.
simon
le 27 Sep 2013
simon
le 27 Sep 2013
Walter Roberson
le 27 Sep 2013
Modifié(e) : Walter Roberson
le 27 Sep 2013
Yes.
If the 10 equations have already been split into real and imaginary part, then can we assume that all of the variables are real valued ?
simon
le 27 Sep 2013
Catégories
En savoir plus sur Linear Algebra dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!