Последний раз редактировалось Spartak-12 04.06.2013, 22:41, всего редактировалось 1 раз.
Траектория отклоняется от цели, преподаватель сказал, что нужно работать с погрешностями! Помогите пожалуйста!?
rigid.m
function dy = rigid(t,y) dy = zeros(4,1); dy(1) = y(2); dy(3) = y(4); dy(2) = (-5*y(1))/sqrt(y(1)^2+y(3)^2)^3; dy(4) = (-5*y(3))/sqrt(y(1)^2+y(3)^2)^3;
rm.m
function mi = rm(fi) global x1 y1; global v; vx = v*cos(fi); vy = v*sin(fi); options = odeset('RelTol',1e-5,'AbsTol',1e-5); [T,Y] = ode45(@rigid,[0 1],[0 vx 1 vy],options); r=sqrt((x1-Y(:,1)).^2.+(y1-Y(:,3)).^2); mi=min(r); plot(Y(:,1),Y(:,3), ' -')
main3.m
function main hold on; global x1 y1; global v; x1=6; y1=7.9; v=5; fi2=fminsearch(@rm, 2*pi); axis equal plot(x1, y1,'ro-') vx = v*cos(fi2); vy = v*sin(fi2); options = odeset('RelTol',1e-3); options = odeset('AbsTol',6e-6); [T,Y] = ode45(@rigid,[0 3],[0 vx 1 vy],options); plot(Y(:,1),Y(:,3), 'c-'); plot(0, 1,'ro-');
|