У меня проблема в 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.Я думаю, что ошибка в интерполяции.Спасибо, ребята