計算科学

科学的問題を解決するためにコンピュータを使用する科学者のためのQ&A

1
非線形PDEに適用されるニュートン反復
ニュートン反復法を非線形PDEに適用し、完全に陰的なスキームを使用してタイムステップを計算する方法を理解できません。たとえば、バーガース方程式を解きたい あなたt+ u uバツ- Ux x= 0ut+uux−uxx=0u_{t} + u u_{x} - u_{xx} = 0 バックワードオイラーを使用して時間を離散化する あなたt= un + 1- Uんhut=un+1−unhu_{t} = \frac{u^{n+1} - u^{n}}{h} 私たちはそれを見つけます あなたn + 1- Uんh+ un + 1(un + 1)バツ− (un + 1)x x= 0あなたn + 1− h (un + 1)x x+ H Un + 1(un …

1
ランダム
次の質問があります。 私は2人の行列があるとX,YX,YX, Y両方のサイズのm×pm×pm\times pとランダムIIDガウス行列GGGのサイズのm×km×km \times k、m≫p>km≫p>km\gg p>k。 を計算する高速な方法はありexp(−XYT)Gexp⁡(−XYT)G\exp(-XY^T)Gますか?おそらく、XXXと両方YYYがよりはるかに小さいという事実を使用することによってXYTXYTXY^T?ここで、exp(⋅)exp⁡(⋅)\exp(\cdot)は、エントリごとの(つまり、行列のeach各\textbf{each}エントリの)指数を意味します。明らかに、指数がなければ、それは簡単で、単純にX(YTG)X(YTG)X(Y^TG)で実行できますが、問題は、要素単位の指数がもはや低ランクではないことです。 質問の動機は、フォームのカーネルを乗算することです Dij=exp(−dij)Dij=exp⁡(−dij)D_{ij}=\exp(-d_{ij})またはDij=exp(−d2ij)Dij=exp⁡(−dij2)D_{ij}=\exp(-d_{ij}^2) dij=∥xi−yj∥dij=‖xi−yj‖d_{ij}=\Vert x_i-y_j \Vert及び効率的にランダム行列による。xi,yi∈Rpxi,yi∈Rpx_i, y_i \in \mathbb{R}^p 近似解も問題ありません。

1
一定の粗いグリッドサイズと細かいグリッドサイズの増加のためのVサイクルの増加
問題文 にジオメトリックマルチグリッドを実装しました。ここで、上の上の単位立方体。左側面、底面、前面のディリクレ境界は0です。上面、右面、背面のノイマン境界はです。- ∇2= f−∇2=f-\nabla^{2}=ff= 3 π24sのI nはπバツ2sのI nはπy2sのI nはπz2f=3π24s私んπバツ2s私んπy2s私んπz2f=\frac{3\pi^{2}}{4}sin \frac{\pi x}{2} sin \frac{\pi y}{2} sin \frac{\pi z}{2}Ω ∈ [ 0 、1 ]Ω∈[0、1]\Omega \in [0,1]∂あなた∂ん= 0∂あなた∂ん=0\frac{\partial u }{\partial n} = 0 方法 方程式を解くためにマルチグリッド法が使用されます。中央差分式を使用して、ノイマン境界のゴーストポイントを近似します。 メソッドの概要(コメントから、作成者が確認):細かいメッシュ(解決する方程式の最終メッシュ)から開始し、粗いメッシュに進んで修正を計算し、マルチグリッドの最後に伝播して滑らかにします。手順。 観察 問題は、最も粗いグリッドを修正して(たとえば16x16x16)、細かいグリッドサイズを大きくするためにVサイクルを測定すると、Vサイクルが一定にならないことです。私は本で読んマルチグリッドによってTrottenbergら。al。Neumann境界での誤ったスケーリングを防ぐために、変更されたFull Weighted制限演算子を使用する必要があることに注意してください。さらに、私は本に記載されているこの変更された完全な制限演算子を理解できません。 ディリクレとノイマンの混合問題を実装した別の例では、ディリクレ境界でで、収束にこの変更された演算子を使用する必要はありませんでした(最も粗いグリッドと最も細かいグリッドを増やしても、Vサイクルは一定のままでした)。- ∇2= 0−∇2=0-\nabla^{2}=0u = 1 + x + y+ zあなた=1+バツ+y+zu = 1 + x …

2
ステップ関数の不連続性をまとめる
私は機能を持っています 、f(x )= ⎧⎩⎨0(x &lt; a )1 / 2(x = a )1(x &gt; a )f(x)={0(x&lt;a)1/2(x=a)1(x&gt;a)f(x) = \begin{cases} 0 \:\: (x < a) \\ 1/2 \:\: (x = a)\\ 1 \:\: (x > a) \end{cases} ここでは不明です。xの任意の値の関数を計算し、(ある程度の精度で)aを決定しようとすることができます。aaaバツxxaaa 初期ブラケット与えられた場合、ブラケットを次のように定義して細分割しますx0&lt;a&lt;x1x0&lt;a&lt;x1x_{0} < a < x_{1} x2:=x0+x12x2:=x0+x12x_{2} := \frac{x_{0}+x_{1}}{2} そしてを計算します。次に、x 0 &lt; a &lt; x 2またはx …
8 roots 

3
電磁流体力学(MHD)の数値手法の入門
私はごく最近、電磁流体力学(MHD)について読み始めました。私は流体部分(理論と数値の両方)の経験がありますが、磁石部分についての私の知識は非常に限られています。 現時点では、物理学について学ぶのに最適なDavidsonの本に取り組んでいます。最初の良いステップは、誘導方程式を解く独自の簡単なコードを書くことだと決めました Bt= ∇ × (u × B )。Bt=∇×(あなた×B)。\begin{equation} B_t = \nabla \times \left( \mathbf{u} \times B \right). \end{equation} 問題は、数値問題の特定の選択がこの問題に対してどのように実行されるのか、また適切なテストケースがどのように見えるのかがわからないことです。 したがって、私はMHDの数値手法に関する優れた入門書またはスクリプトを探しています。理想的には、Durranの地球物理流体力学(GFD)に関する本に似たものを見つけたいと思っています。フィールドで使用されるさまざまな数値手法の完全な紹介と、単純な問題から複雑なベンチマーク問題までのパフォーマンスの分析です。 補遺:私の質問を少し明確にするために、MHDで使用される方法(有限差分、特定の積分方法、有限要素など)の一般的な紹介を探していません。むしろ、MHDに関連する特定の方程式に対してこれらのメソッドがどのように機能するかを説明した本を探しています。たとえば、暗黙のオイラーと中央の差で誘導方程式を解くとどうなりますか?代わりに風上ステンシルを使用するとどうなりますか?Durran著の本は、GFDに対するそのような質問に答えるのに本当に素晴らしい仕事をします-私はMHDにも同様のものがありそうであることを望んでいました。 PS:興味深い次の質問を見つけました(そこでリンクされているコードを試してみます)が、そこにリンクされているコードで何が起こっているのかを理解するための良い本には答えがありません。

3
GPUで実行されるIPOPTのような制約付き非線形最適化ライブラリはありますか?
私のチームの誰かがIPOPTを並列化したいと考えています。(少なくともその機能のいくつか)。それまたは同様のパッケージのGPU実装を見つけることができませんでした。また、ドキュメントには何も見つかりませんでした。 だから問題は、GPUにすでに実装されている代替案があるかどうかです。または、少なくとも誰かがGPUに移植して、一緒に作業できるようにしていますか?

1
ブッチャーテーブルの使用方法に関する優れたチュートリアルはありますか?
たとえば、テイラー級数を使用してスキームの精度の順序を見つけるときに必要な代数を簡略化するためにブッチャーテーブルを使用する方法を理解するために、プライマリソースに移動しようとしました。 しかし、関連する背景が不足しているためか、ブッチャーの本のブッチャーテーブルを利用する方法を理解するのは特に難しいと思いました。 ブッチャーテーブルを利用するために必要な数学をカバーする、比較的自己完結型の優れた(つまり、最低限必要な条件の)本やチュートリアルはありますか?

2
行列の条件数は、反復線形ソルバーの精度に影響しますか?
条件番号に関してかなり具体的な質問があります。複数の長さスケールを持つFEMシミュレーションを実行すると、マトリックス内の最大のエントリと最小のエントリの間に大きな差異が生じます。条件番号は、状況によっては10 ^ 15にもなることがあります。 数値解析では、直接法を使用して計算されたソリューションのエラーに適用されるため、条件番号のエラー限界をよく見ます。私の好奇心は、このロジックがCGのような反復型ソルバーやGMRESのエラーにも当てはまるかどうかです。収束率は行列の固有値の影響を受けることは知っています。このタイプの問題を実行すると、速度が大幅に低下することに気づきます。しかし、その正確さについては不明です。任意の助けいただければ幸いです。

2
ODEを証明可能な正しい数字に数値的に解くにはどうすればよいですか?
の形式の初期値問題があるとします whereは正確に(つまり無制限の精度で)既知であり、を効率的に評価できますを任意の精度に。つまり、ベクトルと整数与えられると、正しいことが保証された近似値を返すブラックボックスがあります。の時間多項式の桁。の近似値を取得するための実用的な方法があるかどうか知りたいX 0 ∈ R N F :R N → R nはX ∈ R nは M 、F (X)M M X(TとF)d xDトン= f(x)x(0)= x0dxdt=f(x)x(0)=x0 \frac{\mathrm{d} \mathbf{x}}{\mathrm{d} t} = f(\mathbf{x}) \qquad \mathbf{x}(0) = \mathbf{x}_0 バツ0∈ Rんx0∈Rn\mathbf{x}_0 \in \mathbb{R}^nf:Rん→ Rんf:Rn→Rnf: \mathbb{R}^n \to \mathbb{R}^nX ∈ Rんx∈Rn\mathbf{x} \in \mathbb{R}^nMMMf(x)f(x)f(\mathbf{x})MMMMMMx( tf)x(tf)\mathbf{x}(t_f)(ここでは特定の最終時間です)は、桁に間違いなく正しいです。Ntf∈ Rtf∈Rt_f \in \mathbb{R}NNN 明らかに、これはただの関数のために行うことはできませんあるため、大幅に変更され、真の解決策はなく、中にピックアップされていないことをいくつかのクレイジーな行動を持っているかもしれません評価の妥当な数。したがって、これを行うには、のどのような良好な動作条件(たとえば、すべての偏導関数が存在し、制限されているか、小さなリプシッツ定数など)が必要であることを知りたいと思っています。 f …

3
異方性固体における波の安定性基準
弾性固体の運動方程式は、 ∇⋅σ+f=ρu¨σ=Cεε=12(∇u+[∇u]T)∇⋅σ+f=ρu¨σ=Cεε=12(∇u+[∇u]T)\begin{align} &\nabla \cdot \boldsymbol{\sigma} + \mathbf{f} = \rho \ddot{\mathbf{u}}\\ &\boldsymbol{\sigma} = \mathbb{C}\boldsymbol{\varepsilon}\\ &\boldsymbol{\varepsilon} = \frac{1}{2}\left(\nabla \mathbf{u} + [\nabla\mathbf{u}]^T\right) \end{align} またはインデックス表記 σij,j+fi=ρui¨σij=Cijklεklε=12(ui,j+uj,i)σij,j+fi=ρui¨σij=Cijklεklε=12(ui,j+uj,i)\begin{align} &\sigma_{ij,j} + f_i = \rho \ddot{u_i}\\ &\sigma_{ij} = C_{ijkl}\varepsilon_{kl}\\ &\varepsilon = \frac{1}{2}(u_{i,j} + u_{j,i}) \end{align} uu\mathbf{u}は変位ベクトル、ff\mathbf{f}は物体力(ソース項)、σσ\boldsymbol{\sigma}は応力テンソル、εε\mathbf{\varepsilon}はひずみテンソル、CC\mathbb{C}は剛性テンソルです。等方性固体の場合、剛性テンソルは2つの異なる定数で記述されます。境界のないドメインの場合、方程式は非結合の2種類の波を認め、安定性の基準は2つの異なるケースの最悪のケース(つまり、 、より高速なもの)。 以下のために横等方性材料テンソルを定義する5つの独立したパラメータ、および波(それらの2が結合している)の3種類があります。より一般的なケースでは、パラメーターの数は21で、波は結合されます。 質問:一般的な場合のタイムマーチングアルゴリズムの安定性の基準をどのようにして見つけますか?

1
除算なしの立方根のニュートン反復
Newtonの方法を検索1 / x−−√1/バツ1/\sqrt{x}に適用するために平方根を計算する際に除算を回避することはかなりよく知られたトリックであり、おそらく除法なしで逆数を見つけるためにNewtonの方法を使用します。 StackOverflowスレッドを救出する際、リンクの腐敗から立方根のニュートン反復を効率的にシードすることで、立方根の除算なしの反復も可能であるはずだと考えました。 たとえば、次のように解決するとします。 バツ− 3= a2バツ−3=a2 x^{-3} = a^2 次に、およびです。上記の方程式のニュートン反復は単純です:x = a- 2 / 3バツ=a−2/3x = a^{-2/3}a−−√3= a xa3=aバツ\sqrt[3]{a} = ax バツn + 1= xん− x− 3ん− a2− 3 x−4ん=43バツん−13a2バツ4んxn+1=バツん−バツん−3−a2−3バツん−4=43バツん−13a2バツん4 x_{n+1} = x_n - \frac{ x_n^{-3} - a^2 }{-3x_n^{-4}} = \frac{4}{3}x_n - \frac{1}{3}a^2 x_n^4 ここでも、少なくとも分数定数がFP乗算用に事前評価されている場合は、除算演算を回避します。 だから、ある種のことは可能ですが、私は(確かに浅い)Webの検索でそのような方法についての具体的な議論を見つけられませんでした。要するに、賢い人はすでにより良いアイデアを発見しており、あなたの大切な同僚の1人がそれを見て、または考え抜いていたのではないかと思います。

4
MATLABでのインクリメンタルSVD実装
MATLABでインクリメンタルSVDを実装したライブラリ/ツールボックスはありますか?私はこのペーパーを実装しました、それは速いですがうまくいきません。私はこれを試しましたが、これでもエラーが速く伝播します(5〜10ポイントの更新内でエラーが高くなります)。

2
行列の対角化-小さな行列要素の省略
対角化の前に行列から小さな行列要素を省略することによって導入されるエラーに上限を設定できる定理があるかどうか疑問に思っていました。 我々はその行列の要素から及ぶ大行列、持っていると仮定しましょう111に10−1510−1510^{-15}。行列を対角化する前に、より小さいすべての行列要素10−1010−1010^{-10}を000に設定すると、固有値と固有ベクトルの誤差はどのくらいになりますか? この実装は依存していますか?

1
有限要素の周期表の完全性について
最近のSIAMニュースの記事には、有限要素の体系的な組織を説明する長い記事があり、有限要素の周期表と呼ばれています。有限要素外部計算を介して分類を実行する方法を確認することは、非常に魅力的です。著者が示すように: 周期表での化学元素の配置が新しい元素の発見につながったように、有限要素の周期表は既存の元素を明らかにしただけでなく、私たちの知識の穴も強調し、特定の要素に適した新しい有限要素のファミリーを導きました目的。 この類推は私を魅了し、欠けている材料要素が発見されたのと同じ方法ですべての可能な「穴」を埋めることが可能かどうか疑問に思います。おそらくこれは類推を広げすぎているかもしれませんが、有限要素のすべての可能な「ギャップ」がこの有限要素の外部計算分類アプローチに従って完全に探索および開発されているかどうか、私は興味があります。そうでない場合、研究が現在開発に焦点を当てているより重要な「行方不明の方法」は何ですか、そしてなぜですか?さらに、このアプローチでは分類できない有限要素法はありますか(任意の形状の単純要素の明らかな省略は別として...)?

2
与えられたベクトルの固有ベクトル成分を計算する
エルミートスパース演算子Mの固有空間に分解できるベクトルVVVあります。MMM V=∑ivim^iV=∑ivim^iV = \sum_i v_i \hat{m}_i 最大の(大きさ)に対応する(固有ベクトル自体)を見つける方法はありますか?m^im^i\hat{m}_iviviv_i 基本的に、事前にわからないの固有ベクトルを含む、合計の最大の数項が必要です。MMM 具体的には、最大の対応するの固有ベクトルを同時に見つけたい 、最大のを見つける。最初にスペクトル全体を見つけることはできません。MMM|vi||vi||v_i|viviv_iMMM 私が考えていたいくつかの可能性: 「Wieldant's Deflation」の反対を使用して、マトリックスを「膨張」させることができます。 M1=M+σ[Σivim^i]VH=M+σVVHM1=M+σ[Σivim^i]VH=M+σVVHM_1 = M + \sigma \left[ \Sigma_i v_i \hat{m}_i \right] V^H = M + \sigma V V^H 異なるの固有値は、シフトされます。固有ベクトルは変化しないため、と抽出できると思います。問題は、外積が密であることです。m^im^i\hat{m}_iλi+σ|vi|2λi+σ|vi|2\lambda_i + \sigma |v_i|^2σσ\sigmaviviv_iVVV 別の可能性: べき乗法(収束までにベクトル掛け続ける)は、最大の固有値を持つの成分を見つけます。この方法の欠点は、の大きさを制御できないため、すべてのコンポーネントを見つけ、最大のものを見つけることです。MMMVVVVVVviviv_i 最大のコンポーネントのみに収束するようにこれを制御する方法はありますか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.