Iterative solution for a non-linear equation
14 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Raihan Rahmat Rabi
il 23 Lug 2021
Commentato: Walter Roberson
il 24 Lug 2021
I am looking for a solution to the problem:
ag_p*Gamma_p - Sa = 0 with Gamma_p = A+B*ag_p.
A, B and Sa are constants.
This can be solved by iterations starting with a certain guess value for ag_p. I tried to use the following code:
Sa = 2.7956;
A = 2.24;
B = 0.5547;
f = @(ag_p) ag_p*Gamma_p - Sa;
Gamma_p = A+B*ag_p;
z = fzero(@(ag_p) f(ag_p), 1E-3);
My code cant be run because the Gamma_p is a function of ag_p which is unknown. What would be the efficient way to tell the program to start with a guess value for ag_p ?
0 Commenti
Risposta accettata
Walter Roberson
il 23 Lug 2021
format long g
Sa = 2.7956;
A = 2.24;
B = 0.5547;
Gamma_p = @(ag_p) A+B*ag_p;
f = @(ag_p) ag_p*Gamma_p(ag_p) - Sa;
z = fzero(@(ag_p) f(ag_p), 1E-3)
f(z)
Più risposte (1)
Chunru
il 23 Lug 2021
Sa = 2.7956;
A = 2.24;
B = 0.5547;
% Change the original code to the following. Otherwise not working.
f = @(ag_p) ag_p*(A+B*ag_p) - Sa;
%Gamma_p = A+B*ag_p;
z = fzero(@(ag_p) f(ag_p), 1E-3) % 1E-3 is the initial value
z0 = 0.99; % a closer initial value
z = fzero(@(ag_p) f(ag_p), z0)
0 Commenti
Vedere anche
Categorie
Scopri di più su Get Started with Optimization Toolbox in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!