我想在图表上画一条线来找到与另一条线的交点。但是,我执行下面的脚本后没有响应。我可以知道问题是什么,我该如何解决?
x=1:2^20;
y2=2^24;
plot(x,y2);
谢谢!
答案 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);
然而,你仍然不在那里!
答案 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。)