Tsing
Tsing

Reputation: 123

Failed to plot simple graph in Octave

I want to draw a line on a graph to find the intersection point with another line. However, there's no response after I executed the script below. May I know what is the problem and how can I solve it?

x=1:2^20;
y2=2^24;
plot(x,y2);

Thanks!

Upvotes: 0

Views: 255

Answers (4)

Victor Pira
Victor Pira

Reputation: 1172

There is one more and maybe a bit smarter way: if you want to solve ((k+1)(ln k)<2^24) as you've commented above, use fsolve function to get just solution of an equation(!). Then use that solution to specify the area of your interest, so you won't have to plot the domain of 2^20. (All functions are continuous so you don't have to worry about any wild singularities. Just examine the neigborhood of ks for which (k+1)(ln k)-2^24=0.)

Upvotes: 0

am304
am304

Reputation: 13886

Another solution, which does not rely on plotting:

>> f = @(x) (x+1)*log(x)-2^24;
>> soln = fzero(f,1e6)
soln =   1.1987e+006
>> f(soln)
ans =   3.7253e-009

So your intersection point is at 1.1987e6.

Upvotes: 1

Ander Biguri
Ander Biguri

Reputation: 35525

What you want is to plot a line on 2^24. However, there are too many points for you computer probably, and you run out of memory

I am guessing that you'll need to plot your other inequality as well.

Something like

x=1:100:2^20;                    
% As Zoran and others suggested, You may not want all the points!
% It is too much memory
y2=2^24*ones(size(x)); % This ones is optional, but its good to know what you are doing (personal opinion)
plot(x,y2);
hold on
y1=(x+1).*log(x);
plot(x,y1);

enter image description here

However, you are still not there!

Upvotes: 1

zoran
zoran

Reputation: 31

Apparently,you have too many points for x, 2^20 Have to wait program to calculate, or plot,for example, every 100th point

This solution works for Matlab

x=1:100:2^20;
y2=2^2;
plot(x,y2,'o');

Upvotes: 0

Related Questions