InitializePDECoefficients::femnlmdor
詳細
例題
例
関連リンク
NDSolve`FEM`
InitializePDECoefficients::femnlmdor
詳細
-
- このメッセージは,非線形偏微分方程式の係数が一次より高次の従属変数の微分を持つ場合に生成される.
- 詳細は,「有限要素法の使用上のヒント」 のチュートリアルに記載されている.
- Off[message]はメッセージを非表示にし,On[message]はメッセージを表示させる.例えば,Off[InitializePDECoefficients::femnlmdor]のように使う.
例題
例 (3)
この場合,偏微分方程式を評価すると,従属変数によっては,一次よりも高次の微分が返される:
Needs["NDSolve`FEM`"]NDSolveValue[{Div[{{-Derivative[1][u][x]}}. Grad[u[x], {x}], {x}] == 1, DirichletCondition[u[x] == 1., x == 0], DirichletCondition[u[x] == 0., x == 1]}, u, {x}∈Line[{{0}, {1}}], InitialSeeding -> {u[x] == 1 - x}]NDSolveValue[{Inactive[Div][{{-Derivative[1][u][x]}}.Inactive[ Grad][u[x], {x}], {x}] == 1, DirichletCondition[u[x] == 1., x == 0], DirichletCondition[u[x] == 0., x == 1]}, u, {x}∈Line[{{0}, {1}}], InitialSeeding -> {u[x] == 1 - x}]詳細は,「有限要素法の使用上のヒント」 のチュートリアルに記載されている.
c[x_] := x ^ 2 + 3;
NDSolveValue[{D[c[x] * D[u[x], x] ^ 3, x] == Sin[x], DirichletCondition[u[x] == 0, True]}, u, Element[{x}, Line[{{0}, {1}}]]];NDSolveValue[{Inactive[Div][(c[x] * D[u[x], x] ^ 2) Inactive[Grad][u[x], {x}], {x}] == Sin[x], DirichletCondition[u[x] == 0, True]}, u, Element[{x}, Line[{{0}, {1}}]]]guess = NDSolveValue[{Inactive[Div][c[x] Inactive[Grad][u[x], {x}], {x}] == Sin[x], DirichletCondition[u[x] == 0, True]}, u, Element[{x}, Line[{{0}, {1}}]]];非線形性がより小さい問題(
)の計算された解を最初のシードとして使い,もとの方程式(
)を解く:
NDSolveValue[{Inactive[Div][(c[x] * D[u[x], x] ^ 2) Inactive[Grad][u[x], {x}], {x}] == Sin[x], DirichletCondition[u[x] == 0, True]}, u, Element[{x}, Line[{{0}, {1}}]], InitialSeeding -> {u[x] == guess[x]}]従属変数に従属し,一次よりも高次の微分を持つ非線形偏微分方程式の係数は,このバージョンのNDSolveでは解けない:
NDSolveValue[{Inactive[Div][{{-Derivative[2][u][x]}}.Inactive[ Grad][u[x], {x}], {x}] == 1, DirichletCondition[u[x] == 1, x == 0], DirichletCondition[u[x] == 0., x == 1]}, u, {x}∈Line[{{0}, {1}}], InitialSeeding -> {u[x] == 1 - x}]