フィルターのクリア

Simple question: How to find the 'x' at a certain value of y(x) equation?

77 ビュー (過去 30 日間)
A
A 2016 年 2 月 28 日
コメント済み: Star Strider 2024 年 4 月 17 日
This may be a simple question. But let's assume I have one ugly equation:
x = [0:10];
y = @(x) x.^2.*12./23./23.9.*log(x).^2
How do I find the value of 'x' where y = 30?
Thanks!
  4 件のコメント
Dyuman Joshi
Dyuman Joshi 2023 年 10 月 11 日
移動済み: Sam Chak 2023 年 10 月 11 日
Did you tried the approach that is mentioned in the accepted answer?
Sam Chak
Sam Chak 2023 年 10 月 11 日
@Ceylin, Which intersection do you want to solve for x?
syms f(x)
f(x) = sin(x);
fplot(f, [-2*pi, 2*pi]), grid on % draw left side of Eqn
yline(0.2, 'r-') % draw right side of Eqn
xlabel('x')
legend('sin(x)', '0.2')

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

採用された回答

Star Strider
Star Strider 2016 年 2 月 28 日
This works:
x_for_y30 = fzero(@(x)y(x)-30, 50)
x_for_y30 =
14.0341
  8 件のコメント
Thanh Thuy Duyen Nguyen
Thanh Thuy Duyen Nguyen 2024 年 4 月 17 日
If I have x and want y then how could I compute that?
Star Strider
Star Strider 2024 年 4 月 17 日
Actually there is an additional way of solving this, using interp1, especially if the actual function is not available —
x = [0:15]+eps;
y = @(x) x.^2.*12./23./23.9.*log(x).^2
y = function_handle with value:
@(x)x.^2.*12./23./23.9.*log(x).^2
yq = 30;
x_for_y30 = interp1(y(x), x, yq) % Get 'x' For Specific 'y'
x_for_y30 = 14.0322
y_for_x2pi = interp1(x, y(x), 2*pi) % Get 'y' For Specific 'x'
y_for_x2pi = 2.9555
figure
plot(x, y(x))
grid
hold on
plot(x_for_y30, 30, 'ms', 'MarkerFaceColor','m')
plot(2*pi, y_for_x2pi, 'cs', 'MarkerFaceColor','c')
hold off
xline(2*pi,'--k', '2\pi')
yline(y_for_x2pi, '--k', sprintf('y=%.2f for x=2\\pi',y_for_x2pi))
xline(x_for_y30, '--k', sprintf('x=%.2f for y=30',x_for_y30))
.

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

その他の回答 (1 件)

John BG
John BG 2016 年 2 月 28 日
編集済み: John BG 2016 年 2 月 29 日
Alpha
If you plot the following
x=[-100:.1:100]
f = @(x) x.^2.*12./23./23.9.*log(x).^2
y=f(x)
plot(x,y)
grid on
place the marker on the point that shows y=30 f(x) is not symmetric, it has 2 zeros, and f=30 on 2 places:
x01=14.04
x02=-29.5
if what you really mean is:
f2 = @(x) x.^2.*12./(23.*23.9).*log(abs(x)).^2
then the function is symmetric and there are 2 values of x that satisfy your question:
x01=14.04
x02=-14.04
Compare both functions and y=30
If you find this answer of any help solving this question, please click on the thumbs-up vote link
thanks in advance
John

カテゴリ

Help Center および File ExchangeCalculus についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by