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!

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

カテゴリ

ヘルプ センター および File ExchangeProgramming についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by