Matlab~线性方程?
有人知道如何在MATLAB中求解这个方程吗Matlab~线性方程?,matlab,equation,Matlab,Equation,有人知道如何在MATLAB中求解这个方程吗 F_I*cosd(alpha_I) - F_C(cosd(alpha_C)) = 0 F_I*sind(alpha_I) - F_T_1 + F_C*sind(alpha_C) = 0 F_T_1*abs(x_F_C-x_T_1) - F_I*sind(alpha_I)*abs(x_F_C-x_F_I) - F_I*cosd(alpha_I)*abs(y_F_C-y_F_I) = 0 我知道: 阿尔法| F | T | 1 | x | F
F_I*cosd(alpha_I) - F_C(cosd(alpha_C)) = 0
F_I*sind(alpha_I) - F_T_1 + F_C*sind(alpha_C) = 0
F_T_1*abs(x_F_C-x_T_1) - F_I*sind(alpha_I)*abs(x_F_C-x_F_I) - F_I*cosd(alpha_I)*abs(y_F_C-y_F_I) = 0
我知道:
阿尔法| F | T | 1 | x | F | C | x | T | 1 | x | F | I | y | F |I
我不知道(并且想知道):
F|I | F|C | alpha|C
问题在于F_C*cosd(alpha_C),这是两个变量,所以我不知道在A中的Ax=B矩阵中写什么。第三个方程只包含一个未知值,即
F_I
。因此,您可以显式地解决该问题,只剩下两个方程和两个未知数:
F_I= (F_T_1*abs(x_F_C-x_T_1)/(sind(alpha_I)*abs(x_F_C-x_F_I)+cosd(alpha_I)*abs(y_F_C-y_F_I))
现在你的前两个方程基本上是
a*sind(b)=c
a*cosd(b)=d
a,b未知。将它们分开以获得
tand(b) = c/d
这就得到了b(alpha_C),而现在求解a(F_C)是很简单的。这不是一个线性方程,因为它包含未知的
cosd
。考虑使用非线性求解器(优化)程序,如<代码> LQNONLIN < /代码>。你有优化工具箱吗?用未知数x(1:3)
和尽可能简化的已知数k(1:n)
来编写你的方程会很有帮助(因此abs(x_F_C-x_F_I)
变成,比如说,k(5)
。然后使用解算器编写最小化的目标函数会容易得多。在您的第一个等式中,您是指F_C(cosd(alpha_C))
还是F_C*cosd(alpha_C)
当然对不起F_C*cosd(alpha_C).我对优化工具箱不是很确定,但我使用的是最新的matlab。我只想解包含三个变量的三方程组。这不会太难吧?对于abs(x_F_C-x_F_I)“我可以写‘476’等等。这是一个从一个点到另一个点的长度。我正在尝试解决这个问题:我刚刚想到,如果我把F_Csind(alpha_C)=AA和F_Ccosd(alpha_C)=BB命名为F_I,AA,AB,并尝试用变量F_I,AA,AB进行求解,然后我会尝试在AA,AB中求解alpha_C和F_C,怎么样?非常感谢!”:-)我完全忘记了测角函数和用它求解的能力。谢谢:-)