无法在 Octave 中绘制简单图形

Failed to plot simple graph in Octave

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

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

谢谢!

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

此解决方案适用于 Matlab

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

你想要的是在 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);

然而,你还是不在!

另一个不依赖绘图的解决方案:

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

所以你的交点在1.1987e6

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