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 commentaires

Birdman
Birdman le 30 Jan 2018
What are your expected results for ey and ez?
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.

Connectez-vous pour commenter.

 Réponse acceptée

Birdman
Birdman le 30 Jan 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 commentaires

Thanks for your help.... but actually i want to find the value of ey and ez for a given value of ex.
Birdman
Birdman le 31 Jan 2018
Then set the valıe of ex to something, then you will have two equations for two unknowns.
udita pant
udita pant le 31 Jan 2018
Modifié(e) : Walter Roberson le 31 Jan 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 le 17 Fév 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 le 17 Fév 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.

Connectez-vous pour commenter.

Plus de réponses (1)

Torsten
Torsten le 30 Jan 2018

0 votes

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.

Community Treasure Hunt

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

Start Hunting!

Translated by