Dynamics Problem using two moving object

I've been having problems solving this equation in MATLAB. Solving on paper is more intuitive to me and I'm struggling in making the language jump. So far, here is my code:
pA = [0 14]; %position of ship A at start
pB = [-25 0]; %position of ship B at start
vA = [0 -7]; %velocity of ship A at start
vB = [16 0]; %velocity of ship B at start
for t=1:4;
dA=(pA+vA*t) %position of A based on time
dB=(pB+vB*t) %position of B based on time
end
I can't seems to figure out how to get the positions of each of the ships in relation to each other. Once I do that, I was attempting to use the zeros function to solve for the 8 mile visibility. couldn't get it to work. Thanks for your help!

 采纳的回答

You can find position of A with repsect to B by the following:
pAwrtB=dA-dB;%position of A with repsect to B
vice versa:
pBwrtA=dB-dA;%position of B with repsect to A
Because imagine every time we spot our position on the x-y coordinate axis, we actually reference to the origin and to this
dOurPosition - [0 0]
But in this situation, relative positions are found just as above. Change the for loop like this:
for t=1:4
dA=pA+vA*t;
dB=pB+vB*t;
pBwrtA=dB-dA;%position of B with repsect to A
pAwrtB=dA-dB;%position of A with repsect to B
end

4 个评论

Thank you for the help. I've taken what you've taught me and continued to plug away at it. I have one remaining question. I can't figure out how to make my y-axis span the time from 07:00 to 11:00 in one hour increments. Below is my code and you'll see that I'm very close to figuring it out. I believe the problem is in the way I've defined 't'.
%Defining the variables
pA = [0 14]; pB = [-25 0];
vA = [0 -7]; vB = [16 0];
t=linspace(0,4,100);
dT=zeros(size(t));
%compute a loop for the distance
for i=1:length(t)
dA=pA+vA*t(i);
dB=pB+vB*t(i);
dT(i)=sqrt(dA(2).^2+dB(1).^2);
end
%Identify the row and column for when the distance is less than 8
[r, c]=find(dT<=8);
x1=t(min(c)); x2=t(max(c));
%plot distance curve and visibility line
hold on
plot(t, dT)
plot(t,8*ones(size(t)))
%label graph and add text string
xlabel('\bf\itTime, hours+7am \rm');
ylabel('\bf\itDistance, miles\rm');
z=text(.1,40,['The ships will see each other between the times of ' num2str(x1), 'and ', num2str(x2)'.']);
datetick('x', 'HH:MM');
Correction: I can't figure out how to make my x-axis span the time from 07:00 to 11:00 in one hour increments.
Use the m file. I used xticklabels to do it.
Thanks for the help. I've learned a lot about graphing this problem!

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Mathematics 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by