您好,我想请教您关于一个matlab程序的问题? 5
两条异面线段端点已知(x1,y1,z1),(x2,y2,z2),(x3,y3,z3),(x4,y4,z4),求与这两条线段垂直的公垂线与这两条线段的交点坐标(x5,y5,...
两条异面线段端点已知(x1,y1,z1),(x2,y2,z2),(x3,y3,z3),(x4,y4,z4),求与这两条线段垂直的公垂线与这两条线段的交点坐标 (x5,y5,z5),(x6,y6,z6)。如何用matlab程序实现,该程序通过输入4个端点坐标,输出结果是公垂线与两直线的交点坐标?我用穷举法的程序失败了,因为我不会用程序表达行列式相关程序,请问您有什么办法吗?
展开
1个回答
展开全部
代码:
syms x y z [1 4]
A=[x(2)-x(1),y(2)-y(1),z(2)-z(1)];
B=[x(4)-x(3),y(4)-y(3),z(4)-z(3)];
syms k [1 2]
a=A*k(1)+[x(1),y(1),z(1)];%所求点的坐标
b=B*k(2)+[x(3),y(3),z(3)];
solk=solve([dot(a-b,A);dot(a-b,B)],k);
a=A*solk.k1+[x(1),y(1),z(1)];%所求点的坐标
b=B*solk.k2+[x(3),y(3),z(3)];
syms x y z [1 4]
A=[x(2)-x(1),y(2)-y(1),z(2)-z(1)];
B=[x(4)-x(3),y(4)-y(3),z(4)-z(3)];
syms k [1 2]
a=A*k(1)+[x(1),y(1),z(1)];%所求点的坐标
b=B*k(2)+[x(3),y(3),z(3)];
solk=solve([dot(a-b,A);dot(a-b,B)],k);
a=A*solk.k1+[x(1),y(1),z(1)];%所求点的坐标
b=B*solk.k2+[x(3),y(3),z(3)];
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询