matlabの境界条件について
조회 수: 10 (최근 30일)
이전 댓글 표시
上記サイトのソースコードの
>> % オプションで値を指定すると固定値境界に, 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
채택된 답변
michio
2018년 1월 25일
有限差分に imfilter を使うのは面白い活用例ですね。
>> % オプションで値を指定すると固定値境界に
とあるように、
U = 2.*U1 - U2 + c^2.*imfilter(U1, F, 100).*dt*dt;
などと数値を入れると配列の境界の外に位置する値(上の例だと 100) とし、計算を行います。何も指定しないと 0 であると想定します。
댓글 수: 5
michio
2018년 1월 25일
Qiitaのページでは
U = zeros(ny, nx)+0.5; % とりあえず水面は0.5の高さ
と設定しており、Uの初期値は 0.5 の模様です。ここで固定値境界を 0 に設定して計算すると、境界側から何らかの波が発生していしまうのではと想像しています。
”波形が境界に達する”ということは何を意味するのか、物理的な側面からも妥当だと思われる条件を考えてみてください。正解があるわけではない、面白い課題だと思います。
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 イメージのフィルター処理에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!