AcousticPDEComponent[vars,pars]
変数 vars,パラメータ pars で音響PDE項の成分を与える.
AcousticPDEComponent
AcousticPDEComponent[vars,pars]
変数 vars,パラメータ pars で音響PDE項の成分を与える.
詳細
- AcousticPDEComponentは,偏微分演算子の一部として使われる微分演算子の和を返す.
- AcousticPDEComponentは,時間領域と周波数領域の両方における等方性媒体中の音の伝播を拡散等のメカニズムによってモデル化する.
- AcousticPDEComponentは流体内の音響現象を従属変数圧力
[
],独立変数
[
],時間変数
[
] あるいは周波数変数
[
]でモデル化する. - 時間依存変数 vars は vars={p[t,x1,…,xn],t,{x1,…,xn}}である.
- 周波数依存変数 vars は vars={p[x1,…,xn],ω,{x1,…,xn}}である.
- 時間領域音響PDE AcousticPDEComponentは,時間変数
,密度
,音速
,音源
および
の波動方程式に基づいている. - 周波数領域音響PDE AcousticPDEComponentは,角周波数
のヘルムホルツ(Helmholtz)方程式に基づいている. - 音響モデル項の単位は[1/
]である. - 次のパラメータ pars を与えることができる.
-
パラメータ デフォルト シンボル "DipoleSource" {0,…}
,二重極音源 [
]"MassDensity" 1
,メディアの密度 [
]"Material" Automatic 
"MonopoleSource" 0
,単極音源 [1/
]"RegionSymmetry" None 
"SoundSpeed" 1
,音速 [
] - どのパラメータも,任意の
,
,
や他の従属変数に依存する可能性がある.例外として,
は結果として非線形固有値問題になる. - AcousticPDEComponentには時間領域の音源および周波数領域の音源が使える.
-
単極音源, 
Wolfram Language code: [image]二重極音源, 
Wolfram Language code: [image] - 単極音源
は音を等方的に放射する点音源をモデル化する. - 二重極音源
は音を非等方的に放射する2点音源をモデル化する. - 独立変数(単位
)の数は
の長さを指定する. - パラメータが指定されていなければ,デフォルトの時間領域音響PDEは以下のようになる.
- パラメータが指定されていなければ,デフォルトの周波数領域音響PDEは以下のようになる.
- パラメータの可能な選択肢には"RegionSymmetry"と"Axisymmetric"がある.
- "Axisymmetric"領域対称性は,以下のように角変数を除くことで円筒座標が縮小された切頭円筒座標系を表す.
-
次元 縮小 方程式 1D 

2D 

- AcousticPDEComponentが連想 piで…,keypi…,pivi,…として指定されるパラメータ
に依存するなら,パラメータ
は
で置換される.
例題
すべて開く すべて閉じる例 (4)
AcousticPDEComponent[{p[t, x], t, {x}}, <||>]AcousticPDEComponent[{p[x], ω, {x}}, <||>]過渡音圧場のためのモデル変数 vars をモデルパラメータ pars で定義する:
vars = {p[t, x], t, {x}};
pars = <|"SoundSpeed" -> 343, "MassDensity" -> 1.2|>;p0 = D[0.125 Erf[(x - 0.5) / 0.15], x];
ics = {p[0, x] == p0, Derivative[1, 0][p][0, x] == -343 * D[p0, x]};eqn = AcousticPDEComponent[vars, pars] == AcousticSoundHardValue[x == 1, vars, pars]pfun = NDSolveValue[{eqn, ics}, p, {t, 0, 0.003}, x∈Line[{{0}, {1}}]];Manipulate[Plot[pfun[t, x], {x, 0, 1}, ...], {{t, 0}, 0, 0.003, 10 ^ -4}, Rule[...]]周波数領域音圧場についてのモデル変数 vars をモデルパラメータ pars で定義する:
vars = {p[x], ω, {x}};
pars = <|"SoundSpeed" -> 343, "MassDensity" -> 1.2|>;eqn = AcousticPDEComponent[vars, pars] == AcousticRadiationValue[x == 0, vars, pars, <|"SoundIncidentPressure" -> 1|>];pfun = ParametricNDSolveValue[eqn, p, x∈Line[{{0}, {1}}], {ω}];Plot[Table[Legended[Abs[pfun[ω][x]], ω], {ω, {1000π, 1500π, 2000π}}]//Evaluate, {x, 0, 1}, ...]スコープ (21)
基本的な用法 (2)
時間領域 (7)
過渡音圧場についてのモデル変数 vars をモデルパラメータ pars で定義する:
vars = {p[t, x], t, {x}};
pars = <|"SoundSpeed" -> 343, "MassDensity" -> 1.2|>;p0 = D[0.125 Erf[(x - 0.5) / 0.15], x];
ics = {p[0, x] == p0, Derivative[1, 0][p][0, x] == -343 * D[p0, x]};eqn = AcousticPDEComponent[vars, pars] == AcousticAbsorbingValue[x == 1, vars, pars];pfun = NDSolveValue[{eqn, ics}, p, {t, 0, 0.003}, x∈Line[{{0}, {1}}]];Manipulate[Plot[pfun[t, x], {x, 0, 1}, ...], {{t, 0.0013}, 0, 0.003, 10 ^ -4}, Rule[...]]過渡音圧場についてのモデル変数 vars をモデルパラメータ pars で定義する:
vars = {p[t, x], t, {x}};
pars = <|"SoundSpeed" -> 317, "MassDensity" -> 1.41|>;p0 = D[0.125 Erf[(x - 0.5) / 0.15], x];
ics = {p[0, x] == p0, Derivative[1, 0][p][0, x] == -317 * D[p0, x]};右側の音響インピーダンス境界とインピーダンス
(
)で方程式を設定する:
eqn = AcousticPDEComponent[vars, pars] == AcousticImpedanceValue[x == 1, vars, <|"SpecificAcousticImpedance" -> 287.33|>];pfun = NDSolveValue[{eqn, ics}, p, {t, 0, 0.003}, x∈Line[{{0}, {1}}]];Manipulate[Plot[pfun[t, x], {x, 0, 1}, ...], {{t, 0.0006}, 0, 0.003, 10 ^ -4}, Rule[...]]過渡音圧場についてのモデル変数 vars をモデルパラメータ pars で定義する:
vars = {p[t, x], t, {x}};
pars = <|"SoundSpeed" -> 343, "MassDensity" -> 1.2|>;ics = {p[0, x] == 0, Derivative[1, 0][p][0, x] == 0};左端の音響粒子速度 v が
である音響法線速度境界を持つ方程式を設定する:
eqn = AcousticPDEComponent[vars, pars] == AcousticNormalVelocityValue[x == 0, vars, pars, <|"AcousticSoundParticleVelocity" -> Sin[800π t]|>];pfun = NDSolveValue[{eqn, ics}, p, {t, 0, 0.0025}, x∈Line[{{0}, {1}}], Method -> {"PDEDiscretization" -> {"MethodOfLines", "SpatialDiscretization" -> {"FiniteElement", "MeshOptions" -> {"MaxCellMeasure" -> 0.015}}}}];Manipulate[Plot[pfun[t, x], {x, 0, 1}, ...], {{t, 0.0012}, 0, 0.0025, 10 ^ -4}, Rule[...]]過渡音圧場についてのモデル変数 vars をモデルパラメータ pars で定義する:
vars = {p[t, x], t, {x}};
pars = <|"SoundSpeed" -> 343, "MassDensity" -> 1.2|>;ics = {p[0, x] == 0, Derivative[1, 0][p][0, x] == 0};左端に音圧境界と圧力源
(
)を持つ音響法線速度境界を持つ方程式を設定する:
eqn = {AcousticPDEComponent[vars, pars] == 0, AcousticPressureCondition[x == 0, vars, pars, <|"AcousticPressure" -> Sin[800π t]|>]};pfun = NDSolveValue[{eqn, ics}, p, {t, 0, 0.0025}, x∈Line[{{0}, {1}}], Method -> {"PDEDiscretization" -> {"MethodOfLines", "SpatialDiscretization" -> {"FiniteElement", "MeshOptions" -> {"MaxCellMeasure" -> 0.015}}}}];Manipulate[Plot[pfun[t, x], {x, 0, 1}, ...], {{t, 0.001}, 0, 0.0025, 10 ^ -4}, Rule[...]]周波数領域音圧場についてのモデル変数 vars をモデルパラメータ pars で定義する:
vars = {p[t, x], t, {x}};
pars = <|"SoundSpeed" -> 343, "MassDensity" -> 1.2|>;ics = {p[0, x] == 0, Derivative[1, 0][p][0, x] == 0};左端に音響放射境界があり,圧力源が
(
)で放射角度が
(
)の方程式を設定する:
eqn = AcousticPDEComponent[vars, pars] == AcousticRadiationValue[x == 0, vars, pars, <|"SoundIncidentPressure" -> Sin[800π t]|>];pfun = NDSolveValue[{eqn, ics}, p, {t, 0, 0.01}, x∈Line[{{0}, {1}}]];Manipulate[Plot[pfun[t, x], {x, 0, 1}, ...], {{t, 0.0074}, 0, 0.01, 10 ^ -4}, Rule[...]]過渡音圧場についてのモデル変数 vars をモデルパラメータ pars で定義する:
vars = {p[t, x], t, {x}};
pars = <|"SoundSpeed" -> 343, "MassDensity" -> 1.2|>;p0 = D[0.125 Erf[(x - 0.5) / 0.15], x];
ics = {p[0, x] == p0, Derivative[1, 0][p][0, x] == -343 * D[p0, x]};eqn = AcousticPDEComponent[vars, pars] == AcousticSoundHardValue[x == 1, vars, pars];pfun = NDSolveValue[{eqn, ics}, p, {t, 0, 0.003}, x∈Line[{{0}, {1}}]];Manipulate[Plot[pfun[t, x], {x, 0, 1}, ...], {{t, 0.0016}, 0, 0.003, 10 ^ -4}, Rule[...]]過渡音圧場についてのモデル変数 vars をモデルパラメータ pars で定義する:
vars = {p[t, x], t, {x}};
pars = <|"SoundSpeed" -> 343, "MassDensity" -> 1.2|>;p0 = D[0.125 Erf[(x - 0.5) / 0.15], x];
ics = {p[0, x] == p0, Derivative[1, 0][p][0, x] == -343 * D[p0, x]};eqn = {AcousticPDEComponent[vars, pars] == 0, AcousticSoundSoftCondition[x == 1, vars, pars]};pfun = NDSolveValue[{eqn, ics}, p, {t, 0, 0.003}, x∈Line[{{0}, {1}}]];Manipulate[Plot[pfun[t, x], {x, 0, 1}, ...], {{t, 0.0022}, 0, 0.003, 10 ^ -4}, Rule[...]]周波数領域 (10)
AcousticPDEComponent[{p[x], ω, {x}}, <|"SoundSpeed" -> c, "MassDensity" -> ρ|>]AcousticPDEComponent[{p[x], ω, {x}}, <|"Material" -> Entity["Element", "Argon"]|>]AcousticPDEComponent[{p[x], ω, {x}}, Entity["Element", "Argon"]]周波数領域音圧場についてのモデル変数 vars をモデルパラメータ pars で定義する:
vars = {p[x], ω, {x}};
pars = <|"SoundSpeed" -> 343, "MassDensity" -> 12 / 10|>;左端に放射境界があり右端に音吸収境界がある方程式を設定する:
eqn = AcousticPDEComponent[vars, pars] == AcousticRadiationValue[x == 0, vars, pars, <|"SoundIncidentPressure" -> 1|>] + AcousticAbsorbingValue[x == 1, vars, pars]pfun = ParametricNDSolveValue[eqn, p, x∈Line[{{0}, {1}}], {ω}];Plot[Table[Legended[Abs[pfun[ω][x]], ω], {ω, {1000π, 1500π, 2000π}}]//Evaluate, {x, 0, 1}, ...]Plot[Table[Legended[Re[pfun[ω][x] * Exp[I ω t]], ω], {t, {0.01}}, {ω, {1000π, 1500π, 2000π}}]//Evaluate, {x, 0, 1}, ...]周波数領域音圧場についてのモデル変数 vars をモデルパラメータ pars で定義する:
vars = {p[x], ω, {x}};
pars = <|"SoundSpeed" -> 343, "MassDensity" -> 1.2|>;左端に放射境界,右端に音響インピーダンス境界,インピーダンス
(
)の方程式を設定する:
eqn = AcousticPDEComponent[vars, pars] == AcousticRadiationValue[x == 0, vars, pars, <|"SoundIncidentPressure" -> 1|>] + AcousticImpedanceValue[x == 1, vars, pars, <|"SpecificAcousticImpedance" -> 200|>];pfun = ParametricNDSolveValue[eqn, p, x∈Line[{{0}, {1}}], {ω}];Plot[Table[Legended[Abs[pfun[ω][x]], ω], {ω, {1000π, 1500π, 2000π}}]//Evaluate, {x, 0, 1}, ...]Plot[Table[Legended[Re[pfun[ω][x] * Exp[I ω t]], ω], {t, {0.01}}, {ω, {1000π, 1500π, 2000π}}]//Evaluate, {x, 0, 1}, ...]周波数領域音圧場についてのモデル変数 vars をモデルパラメータ pars で定義する:
vars = {p[x], ω, {x}};
pars = <|"SoundSpeed" -> 343, "MassDensity" -> 1.2|>;左端の音響法線速度境界,音粒子速度
(
),右端の音吸収境界で方程式を設定する:
eqn = AcousticPDEComponent[vars, pars] == AcousticNormalVelocityValue[x == 0, vars, pars, <|"AcousticSoundParticleVelocity" -> 0.01|>] + AcousticAbsorbingValue[x == 1, vars, pars];pfun = ParametricNDSolveValue[eqn, p, x∈Line[{{0}, {1}}], {ω}];Manipulate[Plot[Abs[pfun[ω][x]], {x, 0, 1}, ...], {{ω, 1000π, "f"}, {1000π, 1500π, 2000π}}, Rule[...]]Manipulate[Plot[Re[pfun[ω][x] * Exp[I ω t]], {x, 0, 1}, ...], {{t, 0, "t"}, 0, 0.01}, {{ω, 1000π, "f"}, {1000π, 1500π, 2000π}}, Rule[...]]周波数領域音圧場についてのモデル変数 vars をモデルパラメータ pars で定義する:
vars = {p[x], ω, {x}};
pars = <|"SoundSpeed" -> 343, "MassDensity" -> 1.2|>;左端の音圧境界,圧力源
(
),右端の音吸収境界で方程式を設定する:
eqn = AcousticPDEComponent[vars, pars] == AcousticPressureCondition[x == 0, vars, pars, <|"AcousticPressure" -> 1|>] + AcousticAbsorbingValue[x == 1, vars, pars];pfun = ParametricNDSolveValue[eqn, p, x∈Line[{{0}, {1}}], {ω}];Manipulate[Plot[Abs[pfun[ω][x]], {x, 0, 1}, ...], {{ω, 1000π, "f"}, {1000π, 1500π, 2000π}}, Rule[...]]Manipulate[Plot[Re[pfun[ω][x] * Exp[I ω t]], {x, 0, 1}, ...], {{t, 0, "t"}, 0, 0.01}, {{ω, 1000π, "f"}, {1000π, 1500π, 2000π}}, Rule[...]]周波数領域音圧場についてのモデル変数 vars をモデルパラメータ pars で定義する:
vars = {p[x], ω, {x}};
pars = <|"SoundSpeed" -> 343, "MassDensity" -> 1.2|>;左端の音放射境界,圧力源
(
),放射角度
(
)で方程式を設定する:
eqn = AcousticPDEComponent[vars, pars] == AcousticRadiationValue[x == 0, vars, pars, <|"SoundIncidentPressure" -> 1|>];pfun = ParametricNDSolveValue[eqn, p, x∈Line[{{0}, {1}}], {ω}];Plot[Table[Legended[Abs[pfun[ω][x]], ω], {ω, {1000π, 1500π, 2000π}}]//Evaluate, {x, 0, 1}, ...]Plot[Table[Legended[Re[pfun[ω][x] * Exp[I ω t]], ω], {t, {0.01}}, {ω, {1000π, 1500π, 2000π}}]//Evaluate, {x, 0, 1}, ...]周波数領域音圧場についてのモデル変数 vars をモデルパラメータ pars で定義する:
vars = {p[x], ω, {x}};
pars = <|"SoundSpeed" -> 343, "MassDensity" -> 1.2|>;左端の音放射境界,圧力源
(
),右端の音響ハード境界で方程式を設定する:
eqn = AcousticPDEComponent[vars, pars] == AcousticSoundHardValue[x == 1, vars, pars] + AcousticRadiationValue[x == 0, vars, pars, <|"SoundIncidentPressure" -> 1|>];pfun = ParametricNDSolveValue[eqn, p, x∈Line[{{0}, {1}}], {ω}];Plot[Table[Legended[Abs[pfun[ω][x]], ω], {ω, {1000π, 1500π, 2000π}}]//Evaluate, {x, 0, 1}, ...]Plot[Table[Legended[Re[pfun[ω][x] * Exp[I ω t]], ω], {t, {0.01}}, {ω, {1000π, 1500π, 2000π}}]//Evaluate, {x, 0, 1}, ...]周波数領域音圧場についてのモデル変数 vars をモデルパラメータ pars で定義する:
vars = {p[x], ω, {x}};
pars = <|"SoundSpeed" -> 343, "MassDensity" -> 1.2|>;eqn = {AcousticPDEComponent[vars, pars] == AcousticRadiationValue[x == 0, vars, pars, <|"SoundIncidentPressure" -> 1|>], AcousticSoundSoftCondition[x == 1, vars, pars]};pfun = ParametricNDSolveValue[eqn, p, x∈Line[{{0}, {1}}], {ω}];Plot[Table[Legended[Abs[pfun[ω][x]], ω], {ω, {1000π, 1500π, 2000π}}]//Evaluate, {x, 0, 1}, ...]Plot[Table[Legended[Re[pfun[ω][x] * Exp[I ω t]], ω], {t, {0.01}}, {ω, {1000π, 1500π, 2000π}}]//Evaluate, {x, 0, 1}, ...]単位 (2)
AcousticPDEComponent[{p[t, x], t, {x}}, <|"Material" -> ["Xe"]|>] == 0材料パラメータを指定して,キセノンについての音響周波数領域モデルを設定する:
AcousticPDEComponent[{p[x], ω, {x}}, <|"SoundSpeed" -> ["sound speed xenon"], "MassDensity" -> ["Xe"][EntityProperty["Element", "Density"]]|>] == 0アプリケーション (1)
以下の音響モデルは,振動ピストンがパイプの一端の内側に配置され,パイプの他端は無限領域に開いている,開管を表している.また,無条件領域をモデル化するためにインポーダンス境界条件が片端に置かれている.モデル化される管は,以下の図で示すように,フランジが付いた円管である:
管の形状と境界条件は
軸について回転対称なので,軸対称モデルを使うことができる.音波の電波を表す支配方程式は軸対称ヘルムホルツ方程式である.
vars = {p[r, z], ω, {r, z}};
pars = <|"MassDensity" -> Subscript[ρ, air], "SoundSpeed" -> Subscript[c, air], Subscript[c, air] -> 343, Subscript[ρ, air] -> 1.25, "RegionSymmetry" -> "Axisymmetric"|>;軸対称の形状は,
平面における管の断面を表す2Dの矩形で近似できる:
a = 0.25;
L = 1.5;
Ω = Polygon[{{0, -L}, {a, -L}, {a, 0}, {0, 0}}];このモデルには2つの境界条件がある.一つは
でピストンの加速
を表すNeumannValueである:
a0 = 1;
Subscript[Τ, acc] = NeumannValue[a0, z == -L];2番目の境界条件はインピーダンス
のAcousticImpedanceValueである.インピーダンス
は以下の近似で与えられる.
は波数である:
k = ω / Subscript[c, air];
Subscript[Z, end] = Subscript[ρ, air] * Subscript[c, air] * (1 - (2 BesselJ[1, 2 k a]/2 k a) + I((2 StruveH[1, 2 k a]/2 k a)));
Subscript[Γ, i] = AcousticImpedanceValue[z == 0, vars, pars, <|"SpecificAcousticImpedance" -> Subscript[Z, end]|>];pde = AcousticPDEComponent[vars, pars] == Subscript[Τ, acc] + Subscript[Γ, i];
で定義されたMaxCellMeasureおよび解像度12を使用して
でPDEを解き,正確な結果を取得する:
λ = 2π Subscript[c, air] / ω;
pfun = ParametricNDSolveValue[pde, p, {r, z}∈Ω, {ω}, Method -> {"PDEDiscretization" -> {"FiniteElement", "MeshOptions" -> {"MaxCellMeasure" -> {"Length" -> λ / 12} /. pars}}}];
pfun1000 = pfun[ω] /. {ω -> (2 Pi)1000};Legended[RegionPlot3D[x^2 + y^2 ≤ a^2 && 0 ≤ PlanarAngle[{0, 0} -> {{a, 0}, {x, y}}] ≤ (4 π/3), {x, -a, a}, {y, -a, a}, {z, -L, 0}, ...], BarLegend[...]]テクニカルノート
関連するガイド
テキスト
Wolfram Research (2020), AcousticPDEComponent, Wolfram言語関数, https://reference.wolfram.com/language/ref/AcousticPDEComponent.html (2023年に更新).
CMS
Wolfram Language. 2020. "AcousticPDEComponent." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2023. https://reference.wolfram.com/language/ref/AcousticPDEComponent.html.
APA
Wolfram Language. (2020). AcousticPDEComponent. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/AcousticPDEComponent.html
BibTeX
@misc{reference.wolfram_2026_acousticpdecomponent, author="Wolfram Research", title="{AcousticPDEComponent}", year="2023", howpublished="\url{https://reference.wolfram.com/language/ref/AcousticPDEComponent.html}", note=[Accessed: 12-August-2026]}
BibLaTeX
@online{reference.wolfram_2026_acousticpdecomponent, organization={Wolfram Research}, title={AcousticPDEComponent}, year={2023}, url={https://reference.wolfram.com/language/ref/AcousticPDEComponent.html}, note=[Accessed: 12-August-2026]}