Solve a system of 3 equations with 3 unknowns

4 vues (au cours des 30 derniers jours)
Pavel
Pavel le 4 Avr 2014
Commenté : Pavel le 5 Avr 2014
I have the folowing code. My 3 equations are diff_f1, diff_f2 and diff_f3 with the unkowns a,b,c. I need to make the equations equal to 0 and to solve for a,b and c, but when i do that i obtain that a=b=c=0 and that are not the answers i'm looking for. What i'm doing wrong and how i can solve these equations?
if true
clear all
clc
% a=alpha1; b=alpha2; c=betha
syms a b c d N1 N2 N3 N21 N31 n2 n21 n3 l1 l2 l3 P L sa
% Se calculeaza lungimea elementelor
P=2000;
L=1300;
sa=150;
l1=L/cos(a);
l2=L/cos(b);
l3=L/cos(b+c);
d=a+b;
% Se calculeaza A
N21=(-P*cos(b+c)/(cos(b)*sin(b+c)-cos(b+c)));
N31=P/(sin(b+c)-cos(b+c)/cos(b));
n31=(-sin(a)*cos(b)-sin(b)*cos(a))/(sin(b+c)*cos(b)-cos(b+c)*sin(b));
n3=n31;
n21=(cos(a)-n3*cos(b+c))/cos(b);
n2=n21;
%efortul din elementul 1
N1=(-((n2*l2*N21+n3*l3*N31)/(l1+n2^2*l2*n3^2*l3)));
%efortul din elementul 3
N3=(P*cos(b)-N1*sin(a)*cos(b)-N1*cos(a))/(cos(b)*(sin(b+c)-cos(b+c)));
%efortul din elementul 2
N2=(N1*cos(a)-cos(b+c)*N3)/(cos(b));
%definrea functiei obiectiv
V1=((N1/sa)*l1+(N2/sa)*l2+(N3/sa)*l3);
%diff(V(a,b,c),a)
V=simplify(V1);
diff_f1=diff(V,a);
diff_f2=diff(V,b);
diff_f3=diff(V,c);
[a b c]=solve('diff_f1=0','diff_f2=0','diff_f3=0');
end

Réponse acceptée

Walter Roberson
Walter Roberson le 4 Avr 2014
[a, b, c] = solve(diff_f1, diff_f2, diff_f3);
  5 commentaires
Walter Roberson
Walter Roberson le 5 Avr 2014
Which MATLAB release are you using?
In the meantime try
feval(symengine, 'numeric::solve', [diff_f1, diff_f2, diff_f3], [a b c], [-2*pi 2*pi])
Pavel
Pavel le 5 Avr 2014
i'm using R2012a

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Symbolic Math Toolbox dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by