你好,利用matlab的符号工具箱,可以解出a和b,有两对解:
syms x y L1 L2 L0 a b
eq = [x-L2*cos(a+b)+L0-L1*cos(a);
y - L2*sin(a+b) - L1*sin(a)];
[a,b] = solve(eq, [a,b])
解的结果为
a =
2*atan((((8*L1^2*L2*y)/((L0^2 + 2*L0*x - L1^2 + 2*L1*L2 - L2^2 + x^2 + y^2)*(L0^2 + 2*L0*L1 + 2*L0*x + L1^2 + 2*L1*x - L2^2 + x^2 + y^2)) + (4*L1*L2*(-(L0^2 + 2*L0*x - L1^2 - 2*L1*L2 - L2^2 + x^2 + y^2)*(L0^2 + 2*L0*x - L1^2 + 2*L1*L2 - L2^2 + x^2 + y^2))^(1/2))/((L0^2 + 2*L0*x - L1^2 + 2*L1*L2 - L2^2 + x^2 + y^2)*(L0^2 + 2*L0*L1 + 2*L0*x + L1^2 + 2*L1*x - L2^2 + x^2 + y^2)))*(L0^2 + 2*L0*x - L1^2 + 2*L1*L2 - L2^2 + x^2 + y^2))/(4*L1*L2))
2*atan((((8*L1^2*L2*y)/((L0^2 + 2*L0*x - L1^2 + 2*L1*L2 - L2^2 + x^2 + y^2)*(L0^2 + 2*L0*L1 + 2*L0*x + L1^2 + 2*L1*x - L2^2 + x^2 + y^2)) - (4*L1*L2*(-(L0^2 + 2*L0*x - L1^2 - 2*L1*L2 - L2^2 + x^2 + y^2)*(L0^2 + 2*L0*x - L1^2 + 2*L1*L2 - L2^2 + x^2 + y^2))^(1/2))/((L0^2 + 2*L0*x - L1^2 + 2*L1*L2 - L2^2 + x^2 + y^2)*(L0^2 + 2*L0*L1 + 2*L0*x + L1^2 + 2*L1*x - L2^2 + x^2 + y^2)))*(L0^2 + 2*L0*x - L1^2 + 2*L1*L2 - L2^2 + x^2 + y^2))/(4*L1*L2))
b =
-2*atan((-(L0^2 + 2*L0*x - L1^2 - 2*L1*L2 - L2^2 + x^2 + y^2)*(L0^2 + 2*L0*x - L1^2 + 2*L1*L2 - L2^2 + x^2 + y^2))^(1/2)/(L0^2 + 2*L0*x - L1^2 + 2*L1*L2 - L2^2 + x^2 + y^2))
2*atan((-(L0^2 + 2*L0*x - L1^2 - 2*L1*L2 - L2^2 + x^2 + y^2)*(L0^2 + 2*L0*x - L1^2 + 2*L1*L2 - L2^2 + x^2 + y^2))^(1/2)/(L0^2 + 2*L0*x - L1^2 + 2*L1*L2 - L2^2 + x^2 + y^2))
用公式打印可以得到解的具体表达式