2015-02-17 3 views
0

Я хочу нарисовать линию на графике, чтобы найти точку пересечения с другой линией. Однако после выполнения сценария ниже ответа нет. Могу ли я узнать, в чем проблема, и как я могу ее решить?Не удалось построить простой граф в Octave

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

Спасибо!

+2

Ваш x содержит все числа от 1 до 2^20 = 1048576, если вы вставляете такие большие данные в функцию графика, это медленное или может закончиться нехваткой памяти. – Daniel

+3

Вы уверены, что y2 должен быть скаляром? – sobek

+0

как Daniel a sobek предложил: вы x и y данные должны быть одного размера! в вашем случае x является вектором 1048577x1, а y2 равен 1x1 (число) –

ответ

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

Однако, вы все еще не было!

0

Видимо, у вас есть слишком много точек для х, 2^20 Придется ждать программу вычисления, или сюжет, например, каждый 100-ый пункт

Это решение работает для Matlab

x=1:100:2^20; 
y2=2^2; 
plot(x,y2,'o'); 
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.

0

Существует еще один и, возможно, более разумный способ: если вы хотите решить ((k + 1) (ln k) < 2^24), как вы уже прокомментировали выше, используйте функцию fsolve, чтобы получить просто решение уравнение (!). Затем используйте это решение, чтобы указать интересующую вас область, поэтому вам не нужно будет строить домен 2^20. (Все функции непрерывны, поэтому вам не нужно беспокоиться о каких-либо диких особенностях. Просто изучите окрестности ks, для которых (k + 1) (ln k) -2^24 = 0.)

Смежные вопросы