Finding x that approximate y to zero

5 visualizzazioni (ultimi 30 giorni)
I am trying to find the the value x that make y approximately zero. Here is what I did:
e= 0.001 %error bar
for x = linspace(100, 170, 1000);
y = 18.9*log(x/170) +0.0042*(x-170) + 8.314*log(0.000267/0.0001413);
end
Thanks in advance.

Risposta accettata

Azzi Abdelmalek
Azzi Abdelmalek il 12 Lug 2015
e= 0.01 %error bar
x = linspace(100, 170, 1000);
y = 18.9*log(x/170) +0.0042*(x-170) + 8.314*log(0.000267/0.0001413);
idx=find(abs(y)<e)
  4 Commenti
Azzi Abdelmalek
Azzi Abdelmalek il 12 Lug 2015
If you are looking for the nearest value to 0.
e= 0.01 %error bar
x = linspace(100, 170, 1000);
y = 18.9*log(x/170) +0.0042*(x-170) + 8.314*log(0.000267/0.0001413);
[max_val,index_val]=min(abs(y))
Abdullah Al-Alawi
Abdullah Al-Alawi il 12 Lug 2015
Thank you! Much Appreciated!

Accedi per commentare.

Più risposte (1)

Walter Roberson
Walter Roberson il 12 Lug 2015
Consider
x0 = fzero( @(x) 18.9*log(x/170) +0.0042*(x-170) + 8.314*log(0.000267/0.0001413), [100, 170]);
  1 Commento
Abdullah Al-Alawi
Abdullah Al-Alawi il 12 Lug 2015
Thank you Walter! That's indeed a faster way! Much Appreciated! You Rock!

Accedi per commentare.

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by