我有六个参数方程式,使用18个(实际上不是26个)不同的变量,其中6个是未知的。
我可以坐在几张纸上坐下来,找出每个未知数的方程式,但是有没有一个简单的程序化解决方案(我在Matlab中考虑),可以吐出我正在寻找的六个方程式对于?
编辑:不好意思,这已经关闭了,但是我想我明白了为什么。如果仍然有人感兴趣,这些方程式(我认为)是非线性的:
r11^2 = (l_x1*s_x + m_x)^2 + (l_y1*s_y + m_y)^2 r12^2 = (l_x2*s_x + m_x)^2 + (l_y2*s_y + m_y)^2 r13^2 = (l_x3*s_x + m_x)^2 + (l_y3*s_y + m_y)^2 r21^2 = (l_x1*s_x + m_x - t_x)^2 + (l_y1*s_y + m_y - t_y)^2 r22^2 = (l_x2*s_x + m_x - t_x)^2 + (l_y2*s_y + m_y - t_y)^2 r23^2 = (l_x3*s_x + m_x - t_x)^2 + (l_y3*s_y + m_y - t_y)^2 (对r的平方,@ gnovice的好地方!)
我需要在哪里找到t_x t_y m_x m_y s_x和s_y
我为什么要计算这些?对于三个坐标( l_x,l_y {1,2,3})中的每一个,都有两个点p1(在0,0 )和p2在( t_x,t_y ),我知道到该点的距离( r1 & r2 ) p1和p2,但坐标系不同。变量s_x和s_y定义我需要缩放一组坐标才能到达另一组坐标,而m_x , m_y需要转换多少坐标( t_x和t_y是解决旋转差异的一种方式在两个系统中)
哦!我忘了提一下,我也知道点( l_x,l_y )低于p1和p2的最高点,即l_y 0和l_y < t_y 。
似乎确实足够具体,我可能只需要拿出垫子并进行数学计算即可!
回答:
如果您有
Symbolic Toolbox ,则可以使用
SOLVE函数。例如:
>> solve('x^2 + y^2 = z^2','z') %# Solve for the symbolic variable z ans = (x^2 + y^2)^(1/2) -(x^2 + y^2)^(1/2) 您还可以为N个变量求解由N个方程组成的系统。这是一个示例,其中包含2个方程,2个未知数( x和y )以及6个参数( a至f ):
>> S = solve('a*x + b*y = c','d*x - e*y = f','x','y') >> Sx ans = (b*f + c*e)/(a*e + b*d) >> Sy ans = -(a*f - c*d)/(a*e + b*d)
更多&回答...