2016-05-19 3 views
1

のシステムを解くときに、2つの方程式空行列をされてきてください:MATLAB - だからここ方程式

(1-E ^φ)* P =(1-E ^β)G +(E ^β)を(1-E ^α)*φは90とし=

α=φ-β

W P、GとWは、[2,1]、[0,0]との1×2行列です[ 1.3822、1.3822]。ここで

は私のコードです:私は間違っ

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

を使用して、あなたのソリューションを得ることができます変数であり、 'solve'は過決定されたシステムを好きではないようです。あなたが何をしているのかをもっと明確にしなくても(ベクトルの各要素のシステムを個別に解決するか、3つの方程式の最小二乗問題を解決する)、私はどのように進めるべきかアドバイスはできません。 – TroyHaskin

答えて

0

あなたが最初の方程式にα=φ-βを置き換える場合は、あなたが得る

(1-E ^φ)* P =(1-E ^β)* G +(E ^β)* W + (1 - E ^φ)* W

あなたは

(1-E ^φ)* P得るためにそれを並べ替えることができます - G +(E ^φ - 1)W = E ^βを( WG)

これは過度に決定された問題です。これは、例えば、最小2乗法を用いて解くことができる。あなたが定義した場合:

A = W-G; 
b = (1−e^φ)*P - G + (e^φ - 1)*W); 

を、あなたは `P`、` G`、と `W`が2要素ベクトルですので、あなたが技術的には2つだけで3つの方程式を持って

beta = log(b/A); 
関連する問題