簡體   English   中英

MATLAB - 在求解方程組時保持空矩陣

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM