2016-05-15 171 views
-4

我有一個非常複雜的方程,我試圖解決直徑變量d。我以前從未使用Matlab,但這是我可用的唯一資源。因此,對於一個基本的例子...用Matlab求解代數方程

eq = 40; 
eq = 1+((2*d)/3); 
answer = solve(d) 

我以前做過的VBA編程,我不知道Matlab的

+0

什麼阻止你找到'd'分析表達式......? –

回答

-2

感謝您的幫助正確的語法,但我想通了。

syms d eq; 
eq = 40 
eqn = 1+((2*d)/3)-eq==0; 
solve(eqn,d) 

完整的問題。

syms d eq Ktaxial Ktbending Kttorsion p1 p2 T sigxpoint1 sigxpoint2 Transhear torxypoint1 torxypoint2 torshear pie M Length Bending Area Q I; 
%Loading level 1 
eq = 41904.7617; %Constant 
Ktaxial = 1.95; %Constant 
Ktbending = 1.7; %Constant 
Kttorsion = 1.45; %Constant 
P1 = 9453; %Change 
P2 = 493; %Change 
T = 298; %Change 
Length = 22; %Constant 

%Constants, do not change 
pie = 3.141592654; 
Area = ((pie/4)*(d)^2); 
Ybar = ((2*d)/(3*pie)); 
Q = (Area/2)*(Ybar); 
I = ((pie/64)*(d)^4); 
M = P2*Length; 
Bending = Ktbending*((32*M)/(pie*(d)^3)); 
sigaxial = ((P1/Area))*Ktaxial; 
torshear = ((16*T)/(pie*(d)^3))*Kttorsion; 
Transhear = ((P2*Q)/(I*d)); 
%Calculate Stresses 
sigxpoint1 = (sigaxial+Bending); 
torxypoint1 = (torshear); 
sigxpoint2 = (sigaxial); 
torxypoint2 = (Transhear+torshear); 
%Final Equations 
point1 = (sqrt(((sigxpoint1)^2)+3*(torxypoint1)^2))-eq == 0; 
point2 = (sqrt(((sigxpoint2)^2)+3*(torxypoint2)^2))-eq == 0; 
%Solve 
double(solve(point1,d)) 
double(solve(point2,d))