How to graph ln(x^2)=0.7?

22 Ansichten (letzte 30 Tage)
sam
sam am 2 Feb. 2013
Beantwortet: Image Analyst am 5 Dez. 2022
I know how to graph f(x) equations in matlab but I have no idea how I would enter ln(x^2)=0.7 and have it plotted? Sorry I am very new to matlab.
  2 Kommentare
Image Analyst
Image Analyst am 2 Feb. 2013
What is there to plot? You can solve for x, but you have no y values to plot. You only have two isolated x values that solve the equation but you don't have any dependent variable to plot, unless you want to say y = ln(x^2) and plot that, then plot a horizontal line at y = 0.7 and observe where it intersects the first plot. Is that what you want to do?
Youssef  Khmou
Youssef Khmou am 2 Feb. 2013
i agree with "Image Analyst" , maybe "sam" wants to plot vertical lines as constants x1=(exp(0.5*0.7)) x2=-exp(0.5*0.7) .

Melden Sie sich an, um zu kommentieren.

Antworten (3)

Daniell Algar
Daniell Algar am 2 Feb. 2013
Well, to plot the point f(x)= 0.7, I guess you would need to use a solver, e.g. ode45.
To just plot the function, you first specify the x-values, then calculates the y-values, then plot them, i.e.
x= 1: .1: 100;
y= log(x.^2);
figure(1)
plot(x, y)
  2 Kommentare
Youssef  Khmou
Youssef Khmou am 2 Feb. 2013
Hi, the x axis above will not give the right value 0.7 .
Daniell Algar
Daniell Algar am 2 Feb. 2013
As I said...

Melden Sie sich an, um zu kommentieren.


Youssef  Khmou
Youssef Khmou am 2 Feb. 2013
Hi , Sam
Using Symbolic Math ToolBox :
You define your variable x and your constant c ( in your case c=0.7) and solve your equation :
syms x c
x=solve('log(x^2)=c');
figure, ezplot(x(1)), title(' Root 1')
figure, ezplot(x(2)), title(' Root 2')
You will get
x =
exp(1/2*c)
-exp(1/2*c)
Next , as c=0.7 in your example, you compute the solution numerically :
c=0.7; root1=exp(0.5*0.7); root2=-exp(0.5*c);
figure, plot(root1,0:0.001:1), hold on ,
plot(root2,0:0.001:1,'r'), legend(' root1','root2'),
title(' Solution log(x^2)=0.7')

Image Analyst
Image Analyst am 5 Dez. 2022
Try this:
x = linspace(1, 2, 10000);
y = log(x.^2);
plot(x, y, 'b-', 'LineWidth', 2)
hold on;
yline(0.7, 'Color', 'r', 'LineWidth', 2)
grid on;
% Find element of y closest to 0.7
[minDistance, index] = min(abs(y - 0.7))
minDistance = 3.6143e-05
index = 4191
xCrossing = x(index)
xCrossing = 1.4190
% Put a green line there
xline(xCrossing, 'Color', 'g', 'LineWidth', 2)
yCrossing = y(index)
yCrossing = 0.7000
caption = sprintf('y crosses 0.7 at x = %f', xCrossing);
title(caption);

Kategorien

Mehr zu Line Plots finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by