[英]MATLAB - Keep getting empty matrices when solving system of equations
所以這是兩個方程式:
(1-e ^φ)* P =(1-e ^β) G +(e ^β) (1-e ^α)* W
α=φ-β
其中φ= 90且P,G和W分別是[2,1],[0,0]和[1.3822,1.3822]的1×2矩陣。
這是我的代碼:
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。
如果你用α=φ-β代替你得到的第一個方程式
(1-e ^φ)* P =(1-e ^β)* G +(e ^β)* W +(1-e ^φ)* W
你可以重新安排它
(1-e ^φ)* P - G +(e ^φ - 1) W = e ^β (WG)
這是一個過分確定的問題。 例如,可以使用最小二乘法來解決它。 如果你定義:
A = W-G;
b = (1−e^φ )*P - G + (e^φ - 1)*W);
你可以用你的解決方案
beta = log(b/A);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.