Efficient way to solve this (nonlinear) equation?

6 次查看(过去 30 天)
Hello all, I want to solve a nonlinear equation but don't know efficient way to do it in Matlab. Can anyone suggest a good way? Here is my code:
G12=7000;
phi=2*pi/180;
syms gamma_6
tau_6= G12*(gamma_6-20*(gamma_6)^2);
sigma_x= -tau_6/(phi+gamma_6);
sigma_1=vpa(diff(sigma_x,gamma_6));
f=matlabFunction(sigma_1);
I want to solve expression sigma_1=0; sigma_1 is function of gamma_6. What I can do is solve till
sigma_1=vpa(diff(sigma_x,gamma_6));
Then copy entire string to solve('.....=0',gamma_6) However this is not most efficient way. I tried fsolve(f,..) but problems with algorithm. Any suggestions most appreciated. Thanks!

回答(1 个)

Walter Roberson
Walter Roberson 2014-2-21
-(1/90)*pi +/- (1/180)*sqrt(4*pi^2 + 18*pi)
sigma_1 has two parts added together. When you bring them to a common denominator the expression simplifies to
((25200000 * gamma_6 - 630000)*pi + 1134000000*gamma_6^2) / (pi+90*gamma_6)^2
You want to solve for 0 so you can solve for the numerator being 0. That is a simple quadratic.

类别

Help CenterFile Exchange 中查找有关 Gamma Functions 的更多信息

标签

产品

Community Treasure Hunt

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

Start Hunting!

Translated by