2

MATLAB を使用して、ある種のスペクトル法を実装したいと考えています。アイデアは次のとおりです(動作している例について説明します)。

  1. ディリクレ (およびノイマン、および周期) 境界は、次のフーリエ空間の固有値につながります。k=n*pi/L

  2. フーリエ空間のすべての線形演算子を離散化された k 値に射影します。

    L = -D*(k.*k)(拡散のみ)

  3. プロパゲータを次のように定義します。P = exp( dt * L )

  4. による時間の進化を繰り返し計算するuh_{n+1} = uh_n * P

  5. 値を保存するたびに、計算された値を実空間に返しますifft( uh )

私の質問は別の境界条件に関するものです。

私の場合、ロビン境界条件があります。したがって、固有値は、形式などの奇妙な方程式によって定義されtan( x ) = xます。それらを計算する問題は解決されます。

私は値を持っているので、ステップ番号。2と3も簡単です

Pフーリエ変換されたベクトルに適用するには、 myが同じ固有値を使用していることを確認する必要がありますが、これuhデフォルトでは当てはまりません。uh = fft(u)

既定では、MATLAB は fft に等距離モードを使用します。

これには簡単なトリックはありますか?

それとも、私の考えに何か間違いがありますか?

4

0 に答える 0