[解決済み] Matlab - 連立方程式を解くときにvpasolveエラーが発生する
2022-02-09 03:07:42
質問
現在、次のような連立方程式を解こうとしている。
h2, eta, B, U
は分かっているのですが、とりあえず記号変数にしておきました。
clearvars
clc
syms x x0 h0 h1 h2 C2 eta B U
h(x) = h0 + h2*(x/(B/2))^2;
h_bar(x) = h(x)/h0;
hc_bar = 1+(h2/h0)*(x0/(B/2))^2;
x_bar(x) = x/(B/2);
x0_bar = x_bar(x0);
integration = int(((h_bar^2-hc_bar^2)/(h_bar^3)),x);
p(x) = ((3*eta*U*B)/(h0^2))*integration+C2;
p_d(x) = diff(p(x),x);
p_fun1 = p(x0_bar) == 0;
p_fun2 = p_d(x0_bar) == 0;
p_fun3 = p(-1) == 0;
p_fun4 = h1-h0 == h2;
4つの方程式、4つの未知数だから、解けるはずだ。しかし、この連立方程式はちょっと無理があるので
vpasolve
:
vpasolve([p_fun1, p_fun2, p_fun3, p_fun4],[x0, h0, h1, C2])
この結果、以下のようなエラーが発生します。
Error using mupadengine/feval (line 166)
Symbolic parameters are not allowed in nonpolynomial equations.
Error in sym/vpasolve (line 172)
sol = eng.feval('symobj::vpasolve',eqns,vars,X0);
Error in Yke (line 35)
vpasolve([p_fun1, p_fun2, p_fun3, p_fun4],[x0, h0, h1, C2])
エラーの原因をたどると
p_fun1
が、なぜこの特定の関数がエラーを引き起こすのかがわかりません。複雑なのですが
p_fun2
の微分である。
p_fun1
と
p_fun3
は、単に
p_fun1
のように、式に別の値を代入しても、エラーは発生しません。
を置き換えることでエラーが発生するのは間違いないでしょう。
x
で
x_bar
の中に
p_fun1 = p(x0_bar) == 0
を呼び出すのですが、その理由がわからず、したがって解決方法もわかりません。どなたか、私が今やっていることが間違っているとお分かりになる方はいらっしゃいますか?
解決方法は?
vpasolve
は数値演算ソルバーです(実際は。
ブパ
は
可変精度演算
)であり、方程式に記号的なパラメータを入れることはできません。
したがって、方程式のパラメータはすべて数値で代用する必要があります。
関連
-
[解決済み] Matlabで矢印を描くには?
-
[解決済み] Matlabによる最急降下法の実装
-
[解決済み] エラー「Improper assignment with rectangular empty matrix」の解決方法を教えてください。
-
[解決済み] MATLABによるパワーメソッド
-
[解決済み] MATLABでマシンイプシロンを計算する方法は?
-
[解決済み] Matlabで3角形の行列を作るループをベクトル化する
-
[解決済み] Matlabでのリッジ回帰とOLS回帰
-
[解決済み] matlab のプロットベクトルは同じ長さでなければなりません。
-
[解決済み] 入力引数が多すぎる Matlab ode45
-
[解決済み] Matlab の imrect を用いて,新しい矩形の座標を取得します.
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] ある行列から固有ベクトルの異なる解を得ることができるでしょうか?
-
[解決済み] MATLABで1つの点の最近傍を検索する
-
[解決済み] エラー --> 整数には同じクラスの整数か、スカラー倍数しか組み合わせることができません。
-
[解決済み] Matlabのstrcat関数が空白を含んでいる場合のトラブル
-
[解決済み] MATLABとラスタープロット
-
[解決済み] MATLABでベクトルの線形スパンを求める
-
[解決済み] Matlabでのリッジ回帰とOLS回帰
-
[解決済み] Matlab: 小図形ウィンドウでYラベルが表示されない
-
[解決済み] ホールドオンでセミログプロット
-
[解決済み] MATLABでヒストグラムを正規化する方法は?