无法在Octave中绘制简单图形

时间:2015-02-17 10:01:58

标签: matlab graph plot octave

我想在图表上画一条线来找到与另一条线的交点。但是,我执行下面的脚本后没有响应。我可以知道问题是什么,我该如何解决?

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

谢谢!

4 个答案:

答案 0 :(得分:1)

你想要的是在2 ^ 24上画一条线。但是,计算机可能存在太多分数,而且内存不足

我猜你也需要绘制你的其他不平等。

这样的东西
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

然而,你仍然不在那里!

答案 1 :(得分:1)

另一种解决方案,不依赖于绘图:

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

所以你的交叉点在1.1987e6

答案 2 :(得分:0)

显然,你有太多的分数,x,2 ^ 20 必须等待程序计算,或绘制,例如,每100点

此解决方案适用于Matlab

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

答案 3 :(得分:0)

还有一种更聪明的方法:如果你想解决((k + 1)(ln k)< 2 ^ 24),如上所述,请使用fsolve函数得到方程的解(!)。然后使用该解决方案指定您感兴趣的区域,这样您就不必绘制2 ^ 20的域。 (所有函数都是连续的,所以你不必担心任何奇异的奇点。只需检查ks的neigborhood(k + 1)(ln k)-2 ^ 24 = 0。)