# Find values that put equation to zero

3 visualizzazioni (ultimi 30 giorni)
MARCO FORTI il 9 Apr 2021
Commentato: MARCO FORTI il 10 Apr 2021
In this model:
where all the variables are of dymension TX1, I need to find all the (T) values of gamma that put the equation to zero.
I tryed with the following code, but the program returns me all NAN, how can I fix the code to get it?
j=1; %increment level. The loop will work for j>1 as well.
for i=1:j:T;
fnc = @(gamma,C,S) 1./(1+gamma).*(C(i)-(S(i)*gamma)) - M(i); % Model function
rn = @(gamma) norm(M - fnc(gamma,C,S)); % Residual norm
gamma0 = [15]; % Inizializzazione
[gamma, ResNorm] = fzero(rn, gamma0);
end
##### 0 CommentiMostra -2 commenti meno recentiNascondi -2 commenti meno recenti

Accedi per commentare.

### Risposta accettata

Matt J il 10 Apr 2021
Modificato: Matt J il 10 Apr 2021
gamma=nan(T,1);
j=1; %increment level. The loop will work for j>1 as well.
for i=1:j:T;
ci=C(i); si=S(i); mi=M(i);
fnc = @(gamma) 1./(1+gamma).*(ci-(si*gamma)) - mi;
gamma0 = 15;
[gamma(i), ResNorm] = fzero(fcn, gamma0);
end
##### 3 CommentiMostra 1 commento meno recenteNascondi 1 commento meno recente
Matt J il 10 Apr 2021
You may be initializing at a bad point. This works:
T=5;
[C,S,M]=deal(rand(T,1), rand(T,1), rand(T,1));
gamma=nan(T,1);
j=1; %increment level. The loop will work for j>1 as well.
for i=1:j:T;
ci=C(i); si=S(i); mi=M(i);
fnc = @(gamma) 1./(1+gamma).*(ci-(si*gamma)) - mi;
gamma0 = 15;
[gamma(i), ResNorm] = fzero(fnc, 0);
end
gamma
gamma = 5×1
-1.0000 0.0302 0.6949 0.1094 -0.4440
MARCO FORTI il 10 Apr 2021
It works, thanks!

Accedi per commentare.

### Più risposte (1)

Alan Stevens il 9 Apr 2021
Modificato: Alan Stevens il 9 Apr 2021
If your expression is equal to zero, then you can rearrange it to get gamma directly. A little algebra gives
gamma = (C-M)./(S+M);
No need for fzero at all.
##### 1 CommentoMostra -1 commenti meno recentiNascondi -1 commenti meno recenti
MARCO FORTI il 10 Apr 2021
Sorry, I mispelled the formula, now I corrected fixed it.
However I would like to understand how to develope a proper matlab code for this (or other similar) situations. Could you help?

Accedi per commentare.

### Categorie

Scopri di più su Gamma Functions 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!

Translated by