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

조회 수: 21 (최근 30일)
sam
sam 2013년 2월 2일
답변: Image Analyst 2022년 12월 5일
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
Image Analyst
Image Analyst 2013년 2월 2일
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 2013년 2월 2일
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) .

댓글을 달려면 로그인하십시오.

답변 (3개)

Daniell Algar
Daniell Algar 2013년 2월 2일
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
Youssef  Khmou
Youssef Khmou 2013년 2월 2일
Hi, the x axis above will not give the right value 0.7 .
Daniell Algar
Daniell Algar 2013년 2월 2일
As I said...

댓글을 달려면 로그인하십시오.


Youssef  Khmou
Youssef Khmou 2013년 2월 2일
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 2022년 12월 5일
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);

카테고리

Help CenterFile Exchange에서 Line Plots에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by