用matlab编程解数学题(急)
文件1jisi.m
%Creat the function for jisi
%Let x(1)=x, x(2)=y
function dx=jisi(t,x,a,b,c)
s=sqrt((c-x(1))^2+(a*t-x(2))^2);
dx=[b*(c-x(1))/s;b*(a*t-x(2))/s];
文件2seajisi.m
clear,clf,shg
%Set the definied time
%ts=0:0.05:.5;
%
ts=0:0.1:1.6;
n=length(ts);
x0=[0 0];
%a=20;b=40;c=15;
%
a=35;b=40;c=15;
%
opt=odeset('RelTol',1e-6,'AbsTol',1e-9);
%[t,x]=ode45(@jisi,ts,x0,[],a,b,c);
%
[t,x]=ode45(@jisi,ts,x0,opt,a,b,c);
%exact solution x1=c
y1=a*t;
%output t,x(t),y(t) and draw x(t),y(t)
[t,x,y1]
plot(t,x),grid,gtext('x(t)','FontSize',16),
gtext('y(t)','FontSize',16),pause
%draw y(x): the position of tatch jisi
plot(x(:,1),x(:,2),'r*'),grid
xlabel('x','FontSize',16),ylabel('y','FontSize',16)
文件2到哪里结束呀?还有,就是好像没有定义“ts”呀?
就到图片的上方,ts在前几行,这是老师编的,应该不会有什么问题
//以缉私艇开始位置为坐标原点
double x_p,y_p,x_c,y_c,t;
double dt,r,dx_p,dy_p,dx_c,dy_c,v_p,v_c;
dt=0.001;
v_p=40.0; v_c=20.0;
x_p=0.0; y_p=0.0;
x_c=15.0; y_c=0.0;
t=0.0;
dx_p=v_p; dy_p=0.0;
dx_c=0.0; dy_c=v_c;
r=sprt((x_c-x_p)*(x_c-x_p)+(y_c-y_p)*(y_c-y_p));
for(t=0.0;r<0.0001;t+=dt)
{
dx_p=(x_c-x_p)/r;
dy_p=(y_c-y_p)/r;
//更新位置
x_p+=dx_p; y_p+=dy_p;
x_c+=dx_c; y_c+=dy_c;
r=sprt((x_c-x_p)*(x_c-x_p)+(y_c-y_p)*(y_c-y_p));
}
cout<<"相遇时间 t="<<t;
广告 您可能关注的内容 |