apximhd: (Default)
[personal profile] apximhd
Octave огорчает всё больше и больше. Вот, казалось бы, совсем простая задача: интегрирование системы дифференциальных уравнений методом Эйлера. Проще уже не бывает, и что же мы получаем?

Время работы Matlab — 1.2 c
Время работы Octave — 101.1 c


% Интегрирование орбиты Земли простым методом Эйлера

npoints=2500000; % Количество выводимых точек
dt = 0.001;      % Шаг интегрирования в годах
xx=zeros(1,npoints); % Массив выходных данных x
yy=zeros(1,npoints); % Массив выходных данных y
x=1;          % Начальная координата x в а.е.
y=0;          % Начальная координата y в а.е.
v_x=0;        % Начальный компонент скорости x в а.е./год
v_y=2*pi;  % Начальный компонент скорости y в а.е./год

% Рисуем Солнце (не в масштабе)
plot(0,0,'oy','MarkerSize',30, 'MarkerFaceColor','yellow');
axis([-1.2 1.2 -1.2 1.2]);
xlabel('x(а.е.)');
ylabel('y(а.е.)');
hold on;
tic; % Запускаем таймер

% Главный цикл
for step = 1:npoints; 
radius=sqrt(x^2+y^2); 
v_x_new=v_x - (4*pi^2*x*dt)/(radius^3);
v_y_new=v_y - (4*pi^2*y*dt)/(radius^3);
x_new=x+v_x_new*dt;
y_new=y+v_y_new*dt;
v_x=v_x_new;
v_y=v_y_new;
xx(step)=x_new;
yy(step)=y_new;
x=x_new;
y=y_new;
end;
toc; % Останавливаем таймер
plot(xx,yy);



Octave выполняет скрипт в сто раз медленнее, чем Matlab. В сто раз, Карл!
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting
Page generated Jan. 4th, 2026 09:50 am
Powered by Dreamwidth Studios