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!