How to draw a log function?
조회 수: 35 (최근 30일)
이전 댓글 표시
I love function handles in matlab, I can do this for example:
f = @(x,a,b) a*(x.^b);
plot(x,f(x,a,b));
This is so useful! I want to be able to plot log(y)=1+log(x), I tried:
f = @(x) 1+log10(x);
plot(x,f(log10(f(x));
It doesn't however give a straight line, so this syntax might be wrong! Please tell me how I can do it. Thanks.
댓글 수: 0
답변 (3개)
John BG
2017년 2월 23일
is this what you are after?
clc
close all
warning off
z = @(x) 10.^(-.3+(1.75*log10(x)));
y = @(x) (10.^-.3)*(x.^1.75);
x = -100:0.5:100;
plot(x,z(x),'-b','LineWidth',2)
grid on
figure
loglog(x,y(x),'-r','LineWidth',2)
grid on
.
John BG
댓글 수: 0
John BG
2016년 5월 2일
Ahmad
try this
f = @(x) 1+log10(x)
x=[-20:.1:20]
y=f(x)
plot(x,y)
plot(x,y);grid on
If you find this answer of any help solving your question,
please click on the thumbs-up vote link,
thanks in advance
John
Roger Stafford
2016년 5월 2일
The quantity f(log10(f(x)) does not yield the solution to log10(y) = 1 + log10(x). It is actually equal to
f(log10(f(x)) = f(log10(1+log10(x))) = 1+log10(log10(1+log10(x)))
If you were to take the log10 of that, you certainly would not come back to 1+log10(x).
To solve for y, take 10 to the power of both sides of the equation
y = 10^(log10(y)) = 10^(1+log10(x)) = (10^1)*(10^log10(x)) = 10*x
What could be simpler?
댓글 수: 5
Roger Stafford
2016년 5월 2일
편집: Roger Stafford
2016년 5월 2일
The plot you show in your previous comment plots log(y) against log(x) or log10(y) against log10(x), I’m not sure which. With the equation log(y) = -.3+1.75*log(x) you will naturally get a straight line with this kind of plot. However, that is not the same thing as plotting y against x. For the equation log(y) = -.3+1.75*log(x) you will NOT get a straight line with y against x. For the equation log(y) = 1 + log(x), or log10’s either one, you WILL get a straight line with y against x. The present or absence of the factor 1.75 makes the difference.
Incidentally you should be careful to distinguish between logarithms base ten and natural logarithms with a base e. In matlab the natural logarithm is indicated by ‘log’ whereas logarithm base ten is indicated by ‘log10’.
참고 항목
카테고리
Help Center 및 File Exchange에서 Surface and Mesh Plots에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!