how to solve this nonlinear equation?

1 view (last 30 days)
Pritha
Pritha on 21 May 2021
Edited: Torsten on 22 May 2021
m = 4.7542;
gsms = 12.684 ;
m1 = (m - gss);
p = 0.1 : 0.5 : 10 ;
k = (3 * p * pi^2 / 2)^(1/3) ;
k1 = sqrt(k^2 + m1^2);
F = (gsms * m1 * (k1 - m1^2/2 *log((k1+k)/m1))/pi^2 )-gss ;
  2 Comments
Dyuman Joshi
Dyuman Joshi on 21 May 2021
What is gss?
Also, you have defined k and k1 incorrectly, use elementwise operators (.*)

Sign in to comment.

Accepted Answer

Torsten
Torsten on 21 May 2021
Edited: Torsten on 22 May 2021
function main
p=0.1:0.5:10;
gss0 = 1.0;
for i=1:numel(p)
gss(i)= fzero(@(x)fun(x,p(i)),gss0)
gss0 = gss(i);
end
plot(p,gss)
end
function gssres = fun(gss,p)
m = 4.7542;
gsms = 12.684;
m1 = m - gss;
k = (3*p*pi^2 / 2)^(1/3);
k1 = sqrt(k^2+m1^2);
F = gsms*m1*( k1-m1^2/2*log((k1+k)/m1) )/pi^2 - gss
gssres = F ;
end
Maybe you will have to change gss0 = 1.0 (a guess for gss for p=0.1) to make the program start.

More Answers (1)

Mike Mierlo van
Mike Mierlo van on 21 May 2021
Please specify variable: 'gss'. This one is unknown in your function.
Also what Tayyab says: what do you want to solve?
It helps a lot if you comment with % after each line what the variable means.

Community Treasure Hunt

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

Start Hunting!