I am trying to evaluate a specific variable, i.e., lambda from the following expression:
alpha=0.9;
g=[3, 2, 1];
N=10;
P=5;
sum(( lambda*(2-alpha)-sqrt(lambda*alpha*(lambda*alpha+g.*4*(1-alpha))) ) ./ ( g.*2*lambda*(alpha-1) )) = N*P
Which function shall I use to find the value of lambda that satisfies the equality above, since it is the only unknown variable?

1 commentaire

Guillaume
Guillaume le 9 Juil 2019
You could use fzero if your equation made sense. On the left side of your equation you have a 3 element vector (with 3 different values obviously). On the right hand side you have a scalar.

Connectez-vous pour commenter.

 Réponse acceptée

Peter Jarosi
Peter Jarosi le 9 Juil 2019
Using fsolve:
alpha=0.9;
g=[3, 2, 1];
N=10;
P=5;
f = @(lambda) sum(( lambda*(2-alpha)-sqrt(lambda*alpha*(lambda*alpha+g.*4*(1-alpha))) ) ...
./ ( g.*2*lambda*(alpha-1) )) - N*P;
lambda0 = 1;
options = optimoptions('fsolve','Display','iter','Algorithm','levenberg-marquardt');
lambda = fsolve(f, lambda0, options);

2 commentaires

Miroslav Mitev
Miroslav Mitev le 10 Juil 2019
That works, thank you :)
Peter Jarosi
Peter Jarosi le 10 Juil 2019
You're very welcome! :)

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Develop Apps Using App Designer dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by