Solving a large equation

I have a large equation of the form:
8.5567=10.75-158.34*y+2112.07*y^2-12211.07*y^3-29.44*x+2185.91*x*y-35690.08*x*y^2+187137.42*x*y^3+129.16*x^2-9697.93*x^2*y+173834.73*x^2*y^2-935832.82*x^2*y^3-174.03*x^3+13191.71*x^3*y-245488.55*x^3*y^2+1384550.57*x^3*y^3
For x ranging from 0.15 to 0.39 I want to develop the value(s) of y.
Any ideas on how to do this would be greatly appreciated.
Thank you.

Respuestas (3)

Roger Stafford
Roger Stafford el 2 de Sept. de 2014
Editada: Roger Stafford el 2 de Sept. de 2014

1 voto

You can use 'roots'. For each value of x you can compute the corresponding value of each of the four coefficients of the powers of y. For example the powers of y^3 can be collected to form a single coefficient which would be:
c3(x) = -12211.07+187137.42*x-935832.82*x^2+1384550.57*x^3
Use a for-loop:
x = linspace(0.15,0.39,n); % You choose n (= 25?)
y = zeros(n,3);
for k = 1:n
y(k,:) = roots([c3(x(k)),c2(x(k)),c1(x(k)),c0(x(k))]).'; % Get three y roots each trip
end
This gives you an n x 3 array of the corresponding possible values of y, some of which may be complex-valued, depending on the numbers you are using.
You may wish to reorder the rows in y you obtain this way in order to preserve continuity in the three branches. That would be an extra step.
MJTHDSN
MJTHDSN el 12 de Abr. de 2018

0 votos

Dear Matlabers,
I have a similar question but a little bit confusing. Let`s assume we have 6 equations as below:
EQ1:a{{(L^2)*(Z^2)+(L^2)*(M^2)-2*L*(Z^2)+(Z^2)}}=(L^2)*(T^2)-2*L*(T^2)+ (T^2)-(2*L*T*B)+(T*B)+(B^2)
EQ2: b{{(L^2)*(Z^2)+(L^2)*(M^2)-2*L*(Z^2)+(Z^2)}}=(L^2)*(T^2)+(2*L*T*B)+(B^2)
EQ3: c{{(L^2)*(Z^2)+(L^2)*(M^2)-2*L*(Z^2)+(Z^2)}}=(T^2)+(2*T*B)+(B^2)
EQ4:d{{(L^2)*(Z^2)+(L^2)*(M^2)-2*L*(Z^2)+(Z^2)}}=(L^2)*(T^2)-2*L*(T^2)+ (T^2)-(2*L*T*B)-(T*B)+(B^2)
EQ5: e{{(L^2)*(Z^2)+(L^2)*(M^2)-2*L*(Z^2)+(Z^2)}}=(L^2)*(T^2)-(2*L*T*B)+(B^2)
EQ6: f{{(L^2)*(Z^2)+(L^2)*(M^2)-2*L*(Z^2)+(Z^2)}}=(T^2)-(2*T*B)+(B^2)
in the equations above a,b,c,d,e and f are the numerical known values (0.543 for example). So we have 6 equations with 5 unknowns as L, Z, M, T and B.
Can you please give me cues how to solve the equations to find these unknowns using MATLAB.
Best Regards,

5 comentarios

Walter Roberson
Walter Roberson el 12 de Abr. de 2018
Generally speaking if you have more equations than unknown, there will typically not be a solution. If you are certain that there is a solution then the implication would tend to be that some of the equations are not independent of each other.
Walter Roberson
Walter Roberson el 12 de Abr. de 2018
With all of those ^2, these equations become analytically intractable quite quickly. The solution for the second variable will involve the root of an equation of order 4. If you use the placeholder form of the 4th root then you lose pretty much all ability to continue analysis. If you ask for the explicit value simplified then it takes a long time to do -- the equations become long enough to become impractical do proceed with.
You can use vpasolve() on any 5 of the 6 equations, and then substitute the values into the 6th equation to cross-check. You should expect most of the solutions to be complex valued. vpasolve() is probably only going to find one solution for the 5-equation subset but there should probably be about 32 of them.
Adithya Valavi
Adithya Valavi el 24 de Mzo. de 2020
If you did know how to slove such equations then plz help me to
Walter Roberson
Walter Roberson el 24 de Mzo. de 2020
If you post your equations, we could try to solve them.
Walter Roberson
Walter Roberson el 25 de Mzo. de 2020
syms B L M T Z
Q = @(v) sym(v);
a = sqrt(Q(2)); b = Q(3); c = Q(-5); d = 1/Q(7); e = Q(11); f = sqrt(Q(13));
EQ1 = a*(((L^2)*(Z^2)+(L^2)*(M^2)-2*L*(Z^2)+(Z^2)))==(L^2)*(T^2)-2*L*(T^2)+ (T^2)-(2*L*T*B)+(T*B)+(B^2);
EQ2 = b*(((L^2)*(Z^2)+(L^2)*(M^2)-2*L*(Z^2)+(Z^2)))==(L^2)*(T^2)+(2*L*T*B)+(B^2);
EQ3 = c*(((L^2)*(Z^2)+(L^2)*(M^2)-2*L*(Z^2)+(Z^2)))==(T^2)+(2*T*B)+(B^2);
EQ4 = d*(((L^2)*(Z^2)+(L^2)*(M^2)-2*L*(Z^2)+(Z^2)))==(L^2)*(T^2)-2*L*(T^2)+ (T^2)-(2*L*T*B)-(T*B)+(B^2);
EQ5 = e*(((L^2)*(Z^2)+(L^2)*(M^2)-2*L*(Z^2)+(Z^2)))==(L^2)*(T^2)-(2*L*T*B)+(B^2);
EQ6 = f*(((L^2)*(Z^2)+(L^2)*(M^2)-2*L*(Z^2)+(Z^2)))==(T^2)-(2*T*B)+(B^2);
EQN = [EQ1, EQ2, EQ3, EQ4, EQ5, EQ6];
sol = vpasolve(EQN, [B L M T Z]);
temp = struct2cell(sol);
disp(vertcat(temp{:}));
The result turns out to be all-zero.

Iniciar sesión para comentar.

Adithya Valavi
Adithya Valavi el 24 de Mzo. de 2020

0 votos

Did you know how to slove these equations then plz tell us tooo

Etiquetas

Preguntada:

el 2 de Sept. de 2014

Comentada:

el 25 de Mzo. de 2020

Community Treasure Hunt

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

Start Hunting!

Translated by