所以这是两个方程式:
(1-e ^φ)* P =(1-e ^β) G +(e ^β)(1-e ^α)* W
α=φ-β
其中φ= 90且P,G和W分别为[2,1],[0,0]和[1.3822,1.3822]的1x2矩阵。
这是我的代码:
function y = RR2CrankAng(P12,G,W1,theta)
syms beta alpha
eqn1 = ((1-exp(theta))*P12) == ((1-exp(beta))*G)+((exp(beta))*(1-exp(alpha))*W1);
eqn2 = alpha == theta - beta;
sol = solve([eqn1, eqn2], [beta12, alpha12]);
xSol = sol.beta12;
ySol = sol.alpha12;
y = [xSol,ySol];
end
CA = RR2CrankAng(P12,G,W1,theta12)
CA =
Empty sym: 0-by-2
我做错了什么?有一个更好的方法吗。我还在学习MATLAB。
答案 0 :(得分:0)
如果用α=φ-β代替第一个等式,你得到
(1-e ^φ)* P =(1-e ^β)* G +(e ^β)* W +(1-e ^φ)* W
你可以重新排列它以获得
(1-e ^φ)* P - G +(e ^φ - 1) W = e ^β(W-G)
这是一个过分确定的问题。例如,可以使用最小二乘法来解决它。如果你定义:
A = W-G;
b = (1−e^φ )*P - G + (e^φ - 1)*W);
您可以使用
为您提供解决方案beta = log(b/A);