Интерполяция в пространстве в ode45 - PullRequest
0 голосов
/ 20 февраля 2019

У меня проблема в Matlab.Я должен решить движение частицы внутри магнитного поля с изменяющимися в пространстве.Я вычисляю магнитное поле, используя закон био-саварта, но я до сих пор не понял, как его использовать в ode45.Вот код в функции, вызываемой ode45:

function xdot=func(t,x,X,Y,Z,Bx,By,Bz)
% q=0.001;
% m=0.000005;
H=1e+4;

xdot(1)=x(4);
xdot(2)=x(5);
xdot(3)=x(6);
xdot(4)=(H).*(((interp3(X,Y,Z,Bz,x(1),x(2),x(3),'natural')).*x(5))-...
    ((interp3(X,Y,Z,By,x(1),x(2),x(3),'natural')).*x(6)));
xdot(5)=(H).*(((interp3(X,Y,Z,Bx,x(1),x(2),x(3),'natural')).*x(6))-...
     ((interp3(X,Y,Z,Bz,x(1),x(2),x(3),'natural')).*x(4)));
xdot(6)=(H).*(((interp3(X,Y,Z,By,x(1),x(2),x(3),'natural')).*x(4))-...
     ((interp3(X,Y,Z,Bx,x(1),x(2),x(3),'natural')).*x(5)));

xdot=xdot';
end

Я интерполирую, используя interp3 в Matlab.Я думаю, что ошибка в интерполяции.Спасибо, ребята

...