没有大错误,将中文标点改下就行了
新建一个cjxxfun.m文件
function yp=cjxxfun(t,y,flag,q,m)
yp=[y(4);y(5);y(6);q*(10*y(3)+1)*y(5)/m-q*((-5*sqrt(y(1).^2+y(2).^2))*cos(pi/4))*y(6)/m;q*((-5*sqrt(y(1).^2+y(2).^2))*sin(pi/4))*y(6)/m;-q*((-5*sqrt(y(1).^2+y(2).^2))*sin(pi/4))*y(5)/m];
在command窗口输入下面代码结果就有了
clear;
q=1.6e-19;
m=1.6725e-27;
V0=1e6;sita=pi/4;
Vy=0;Vz=V0*cos(sita);Vx=V0*sin(sita);
c=[0;1;0;Vx;Vy;Vz];%给定初始量
[t,y]=ode45('cjxxfun',[0:1e-7:1.5e-6],c,[],q,m);%解微分方程组
plot3(y(:,1),y(:,2),y(:,3),'linewidth',2);%绘制三维粒子运动轨迹
xlabel('z');ylabel('y');zlabel('x');
grid on;title('磁镜现象')
figure
subplot(2,1,1);
plot(y(:,1),y(:,2),'linewidth',2);%从yoz面看到的轨迹
xlabel('z');ylabel('y');
grid on;title('yoz平面')
subplot(2,1,2);
plot(y(:,1),y(:,3),'linewidth',2);%从xoz面观察的轨迹
xlabel('z');ylabel('x');
title('xoz平面');grid on;
1、单引号应为半角,但写成全角了:替换所有的(‘)和(’)为(')。
2、函数定义应该写成:
function yp=cjxxfun(t,y,q,m)
也就是说,没有那个flag。