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.

 採用された回答

Azzi Abdelmalek
Azzi Abdelmalek 2015 年 7 月 12 日

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);
idx=find(abs(y)<e)

4 件のコメント

Abdullah Al-Alawi
Abdullah Al-Alawi 2015 年 7 月 12 日
Thank you for your quick response. That really helped me, but I want to know the value of X. like what value of x between this range( 100 to 170) that make Y approximately equal to zero. Thank you though for your time.
Azzi Abdelmalek
Azzi Abdelmalek 2015 年 7 月 12 日
x(idx)
Azzi Abdelmalek
Azzi Abdelmalek 2015 年 7 月 12 日
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 2015 年 7 月 12 日
Thank you! Much Appreciated!

サインインしてコメントする。

その他の回答 (1 件)

Walter Roberson
Walter Roberson 2015 年 7 月 12 日

1 投票

Consider
x0 = fzero( @(x) 18.9*log(x/170) +0.0042*(x-170) + 8.314*log(0.000267/0.0001413), [100, 170]);

1 件のコメント

Abdullah Al-Alawi
Abdullah Al-Alawi 2015 年 7 月 12 日
Thank you Walter! That's indeed a faster way! Much Appreciated! You Rock!

サインインしてコメントする。

カテゴリ

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by