solving three non linear equation simultaneously??

i have following set of equations-
ex = (1/Ec)*(sigx - v*(sigy + sigz); ---(1)
ey = (1/Ec)*(sigy - v*(sigx + sigz); ---(2)
ez= (1/Ec)*(sigz - v*(sigy + sigx); ---(3)
where,
sigx= -(px*ex*Es + Pfx*Ef*ex + lx);
sigy= -(py*ey*Es + Pfy*Ef*ey + ly);
sigz= -(px*ex*Es + lz);
For equations (1) (2) and(3), known term is ex and hence sigx
Unknowns are ey and ez
Values of other terms are-
Ef = 180000;
Es= 2*10^5;
Ec= 25000;
fx=fy=420;
lx=0;
ly=5;
lz=0;
px=0.016;
py=0.024;
pz= 0.016;
v=0.15;
pfx=0.0125;
pfy=0.0125;
PROBLEM - when i am solving (2) and (3) simultaneously for a given value of ex and hence sigx , I am getting values of ey and ez which are not satisfying (1) equation. What is the reason for this contradiction? Please help!!

2 comentarios

Birdman
Birdman el 30 de En. de 2018
What are your expected results for ey and ez?
udita pant
udita pant el 31 de En. de 2018
there are no such expected results for ey and ez . But the values of ey and ez should be such that when kept in eq(1) it should give the same value of ex which was initially assumed.

Iniciar sesión para comentar.

 Respuesta aceptada

Birdman
Birdman el 30 de En. de 2018
I believe what you are looking for is as follows:
syms ex ey ez
Ef=180000;Es=2*10^5;Ec=25000;fx=420;fy=420;Ix=0;Iy=5;Iz=0;px=0.016;py=0.024;pz=0.016;v=0.15;pfx=0.0125;pfy=0.0125;
ex = (1/Ec)*(-(px*ex*Es + pfx*Ef*ex + Ix) - v*(-(py*ey*Es + pfy*Ef*ey + Iy) + -(pz*ez*Es + Iz)));
ey = (1/Ec)*(-(py*ey*Es + pfy*Ef*ey + Iy) - v*(-(px*ex*Es + pfx*Ef*ex + Ix) + -(pz*ez*Es + Iz)));
ez= (1/Ec)*(-(pz*ez*Es + Iz) - v*(-(py*ey*Es + pfy*Ef*ey + Iy) + -(px*ex*Es + pfx*Ef*ex + Ix)));
sol=solve([ex,ey,ez])
See the solutions by typing
sol.ex
sol.ey
sol.ez

9 comentarios

udita pant
udita pant el 31 de En. de 2018
Thanks for your help.... but actually i want to find the value of ey and ez for a given value of ex.
Birdman
Birdman el 31 de En. de 2018
Then set the valıe of ex to something, then you will have two equations for two unknowns.
udita pant
udita pant el 31 de En. de 2018
Editada: Walter Roberson el 31 de En. de 2018
syms ey ez
Ef=180000;Es=2*10^5;Ec=25000;fx=420;fy=420;Ix=0;Iy=5;Iz=0;px=0.016;py=0.024;pz=0.016;v=0.15;pfx=0.0125;pfy=0.0125;
ex= 0.00003;
sigx= -(px*ex*Es + pfx*Ef*ex + Ix);
ey = (1/Ec)*(-(py*ey*Es + pfy*Ef*ey + Iy) - v*(sigx + -(pz*ez*Es + Iz)));
ez= (1/Ec)*(-(pz*ez*Es + Iz) - v*(-(py*ey*Es + pfy*Ef*ey + Iy) + sigx));
sol=solve([ey,ez]);
y=sol.ey
z=sol.ez
excheck = (1/Ec)*(sigx - v*(-(py*y*Es + pfy*Ef*y + Iy) + -(pz*z*Es + Iz)))
As u said, i fixed the value of ex and got the value of ey and ez .
But when these values of ey and ez are not satisfying the first equation then...i.e excheck is not equal to ex..
this is the problem!!
How are you deriving your equation for excheck ?
You can not expect it to be the same. Actually, when you check their difference:
err=abs(ex)-abs(vpa(excheck))
>> 0.00002895
which means that their difference can be easily thought as zero.
udita pant
udita pant el 17 de Feb. de 2018
but this value is very large if in terms of strain so for my project i cannot take it as zero. Is there any method through which i can solve this problem.? Kindly answer.
How are you deriving your equation for excheck ?
udita pant
udita pant el 17 de Feb. de 2018
By assuming ex we get the value of ex and ey and consequently sigx ,sigy and sigz. Therefore by back substituting these values in eq(1) i.e sigx= -(px*ex*Es + pfx*Ef*ex + Ix) , I am trying to check the value of ex.
I notice that your lines
ey = (1/Ec)*(-(py*ey*Es + pfy*Ef*ey + Iy) - v*(sigx + -(pz*ez*Es + Iz)));
ez= (1/Ec)*(-(pz*ez*Es + Iz) - v*(-(py*ey*Es + pfy*Ef*ey + Iy) + sigx));
assign to symbols on the left that are also used on the right. I wonder if those should be
eqns = [ey == (1/Ec)*(-(py*ey*Es + pfy*Ef*ey + Iy) - v*(sigx + -(pz*ez*Es + Iz))),
ez == (1/Ec)*(-(pz*ez*Es + Iz) - v*(-(py*ey*Es + pfy*Ef*ey + Iy) + sigx))];
sol = solve(eqns,[ey, ez]);
This does not bring ex and excheck into agreement, but might hint at further difficulties.

Iniciar sesión para comentar.

Más respuestas (1)

Torsten
Torsten el 30 de En. de 2018

0 votos

As far as I can see, the equations are linear in the unknowns. So you only have to solve a system of linear equations using the "backslash" operator.
Best wishes
Torsten.

Preguntada:

el 30 de En. de 2018

Comentada:

el 17 de Feb. de 2018

Community Treasure Hunt

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

Start Hunting!

Translated by