Clear Filters
Clear Filters

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

75 views (last 30 days)
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 Comments
Dyuman Joshi
Dyuman Joshi on 11 Oct 2023
Moved: Sam Chak on 11 Oct 2023
Did you tried the approach that is mentioned in the accepted answer?
Sam Chak
Sam Chak on 11 Oct 2023
@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')

Sign in to comment.

Accepted Answer

Star Strider
Star Strider on 28 Feb 2016
This works:
x_for_y30 = fzero(@(x)y(x)-30, 50)
x_for_y30 =
14.0341
  8 Comments
Star Strider
Star Strider on 17 Apr 2024
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))
.

Sign in to comment.

More Answers (1)

John BG
John BG on 28 Feb 2016
Edited: John BG on 29 Feb 2016
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

Community Treasure Hunt

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

Start Hunting!