Finding an unknown vector from three known vectors

5 次查看(过去 30 天)
Hi, I have some problem in writing the code. Let say I have vector A = [125 350 -80], B=[-115 350 -80], D=[-15 530 545] and I need to determine the positon of vector C. The lengths/magnitudes are given which are CA=300, CB=300, CD=650. How do I determine the value for C1 C2 C3?

采纳的回答

David Hill
David Hill 2021-1-4
syms x y z;
C=[x,y,z];
A = [125 350 -80];
B = [-115 350 -80];
D = [-15 530 545];
eq1=norm(A-C)==300;
eq2=norm(B-C)==300;
eq3=norm(D-C)==650;
eqns=[eq1,eq2,eq3];
c=vpasolve(eqns,[x,y,z]);
  1 个评论
Aliff Firdaus Suhaimi
Thanks for your help! I'm doing it wrong before this. Since vpasolve only give one solution I add initial values so that it will give me the answer that I want.
Right now I'm trying to make for loop as the value of CD is decreasing with increment -5 until 550. What I did below give me the same result for every looping. I can't seem to figure out where is the wrong part.
clear
close all
clc
syms x y z;
C=[x,y,z];
A = [125 350 -80];
B = [-115 350 -80];
D = [-15 530 545];
eq1=norm(A-C)==300;
eq2=norm(B-C)==300;
eq3=norm(D-C)==650;
eqns=[eq1,eq2,eq3];
for n=1:1
C=vpasolve(eqns,[x,y,z],[5;500;-90]);
end
for eq3=650:-10:550
ansx=['Cx',C.x];
disp (ansx)
ansy=['Cy',C.y];
disp (ansy)
ansz=['Cz',C.z];
disp (ansz)
end

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Logical 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by