How to evaluate a unknown variable?

3 vues (au cours des 30 derniers jours)
Miroslav Mitev
Miroslav Mitev le 9 Juil 2019
Commenté : Peter Jarosi le 10 Juil 2019
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 Matrix Indexing dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by