2017-05-17 14 views
0

解決関数を使用して方程式を解いてみようとしていますが、エラーが発生しています。 これは私のコードです:Z2:ソリューションは、記号で をパラメータ化されています。私はこれを実行するとSolve関数が機能しない

Dh=0.02; 
Lc1=1.6; 
Prw=9; 
a=0.03*(Dh/Lc1)*Prw; 
b=0.016*(Dh/Lc1)^(2/3)*Prw^(2/3); 
c=9; 
d=7.54; 

syms Redh 
eqn = (c*b-d*b)*Redh^(2/3)-a*Redh == d-c; 
solRedh = solve(eqn,Redh); 

iは、エラー

警告を取得します。 をパラメータに含めるには、 の 'ReturnConditions'オプションを指定します。 Inが解決

> warnIfParams(ライン500) では解決する(ライン356)Massflow_1において (ライン105) 警告:ソリューションは 下で、以下の条件有効である:3 * Z2^2 + Z2^3 (z2)& 角度(z2)< =π/ 3である。 をパラメータに含めるには、 の 'ReturnConditions'オプションを指定します。では、解決 > warnIfParams では解決(ライン507)Massflow_1で(ライン356) (ライン105)

答えはシンボルZ2によってパラメータ化された理由を私は理解していません。値を含むソリューションが必要です。たとえ私が同じ力を持つ方程式にそれを単純化しても、確かに私には同じ答えが返ってくるのです。

Simpelerコード

syms Redh 
eqn = 0.0054*Redh^(2/3)-0.0034*Redh == -1.46; 
solRedh = solve(eqn,Redh); 

誰もがここで間違っているとどのように私はそれを修正することができているか知っていますか?非常に役に立ちます、ありがとう!あなたのケースでは

+0

私の解決策は、あなたのために働くのでしょうか? – OmG

答えて

0

、MATLABは、ソリューションは、複雑な番号を使用することを示すために、記号「Z2」を使用しています。(Z2∈Z)

あなたは複雑なソリューションによって、興味を持っていないことをMathWorks社のMATLABために説明する必要があります。

それはで問題なく動作するはずです:

% set an assumptions on symbolic variables! here our solution need to be a real number. 
syms Redh real %check the doc for more informations about the assumptions. 
eqn  = 0.0054*Redh^(2/3)-0.0034*Redh == -1.46; 
sol_sym = solve(eqn,Redh); 
sol_nosym = double(sol_sym); 
関連する問題