matlabの境界条件について
10 views (last 30 days)
Show older comments
上記サイトのソースコードの
>> % オプションで値を指定すると固定値境界に, replicateを指定すると値のコピー, circularを指定すると周期境界になる.
U = 2.*U1 - U2 + c^2.*imfilter(U1, F, 'replicate').*dt*dt;
値を以下のように指定して u(hnx,0,t)=u(0,hny,t)=u(hnx,1,t)=u(1,hny,t)=0 固定値境界にしたいです。 このときどう書けばいいのでしょうか?
よろしくお願いします
0 Comments
Accepted Answer
michio
on 25 Jan 2018
有限差分に imfilter を使うのは面白い活用例ですね。
>> % オプションで値を指定すると固定値境界に
とあるように、
U = 2.*U1 - U2 + c^2.*imfilter(U1, F, 100).*dt*dt;
などと数値を入れると配列の境界の外に位置する値(上の例だと 100) とし、計算を行います。何も指定しないと 0 であると想定します。
5 Comments
michio
on 25 Jan 2018
Qiitaのページでは
U = zeros(ny, nx)+0.5; % とりあえず水面は0.5の高さ
と設定しており、Uの初期値は 0.5 の模様です。ここで固定値境界を 0 に設定して計算すると、境界側から何らかの波が発生していしまうのではと想像しています。
”波形が境界に達する”ということは何を意味するのか、物理的な側面からも妥当だと思われる条件を考えてみてください。正解があるわけではない、面白い課題だと思います。
More Answers (0)
See Also
Categories
Find more on イメージのフィルター処理 in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!