計算科学

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

1
CFDのハイブリッド空間スキーム:ブレンディングとスイッチングの欠点?
特定の領域で両方の流束を計算する必要があるために余分な計算コストが発生することを除いて、有限体積法でハイブリッドスキームの2つの流束評価をブレンドすることには欠点がありますか?フラックス評価は次のようになります。 Fi + 12= Λi + 12Fci + 12+ (1 - Λi + 12)Fあなたi + 12Fi+12=Λi+12Fi+12c+(1−Λi+12)Fi+12u\mathbf{F}_{i+\frac12} = \Lambda_{i+\frac12} \mathbf{F}^c_{i+\frac12} + (1 - \Lambda_{i+\frac12}) \mathbf{F}^u_{i+\frac12} スイッチは、アプリケーションに応じて、圧力および/または密度勾配センサーに基づいています。は中心的なスキーム(McCormack、compactなど)であり、F uはMUSCL再構成によるフラックス差分分割のような風上スキームです。私は連続関数を使用して2つの方式をブレンドしていた場合にすべての問題は保守的な性質、数字の面であるΛ単純でスキームを切り替えるとは対照的に、Λ 0または1のいずれかとして評価さ?FcFc\mathbf{F}^cFあなたFu\mathbf{F}^uΛΛ\LambdaΛΛ\Lambda

2
非線形制約付き最小化のためのC ++ライブラリ
現在、MATLABの「fmincon」関数に実装されている非線形制約付き最小化問題を解決しようとしています。私の期待は、minimize(fun1、x0、uB、lB、fun2)です。ここで、x0は初期状態、fun1は最小化する必要がある関数、uBは上限、lBは下限、fun2は非線形等式のベクトルを提供する関数です。 /不等式に記載されているようにhttp://www.mathworks.com/help/optim/ug/fmincon.htmlnonlcon関数として。これらのベクトルも反復によって変化します(これらは、解ベクトルのn番目の反復であるx_nに非線形に依存しています)。matlab実装では、c(x)<= 0の形式です。これは、MATLABからC ++に移植する必要のある最後のコードであり、このアルゴリズムを含む適切なC ++ライブラリを見つけるために多くの苦労をしてきました。これが私がここで助けを求めている理由であり、あなたの専門知識を提供していただければ幸いです。 私がしたいことの良い例は、このページの最初のものですhttp://www.mathworks.com/help/optim/ug/constrained-nonlinear-optimization-examples.html#f10960?s_tid=doc_12b唯一の違いは、境界も必要です... 前もって感謝します。 ピーター


6
柔らかい質問:Pythonはどこに当てはまりますか?
それで、私はPythonを勉強する必要があるかどうかについて議論してきました。私の教授と話すことから、学界に関する限り、Matlabは応用数学/計算科学で使用される共通言語のようです。業界にいる間、私の教授(特に業界で働いたことがある人)は、c ++を学ぶことが最も安全な道だと言っています。 アカデミアと業界の両方で、Pythonに悩む必要があるのか​​、それとも今のところ私が知っていること(MATLABとC ++)に本当に慣れるのかについて、皆さんから聞いてみたいと思います。 更新:ジェフは良い点をもたらします、私はおそらくいくつかの詳細を書き留めるべきです: 私は現在、昨年の学部生で、計算を専門とする数学を勉強しています。大学院に進学して研究を続けたい(自分が教育を楽しんでいるのを見たことがない)か、研究室で働きたいです。どちらも理想的です。研究の分野については、おそらく数値分析または確率の線に沿ったものでしょう。プランAがうまくいかない場合でも、業界への準備が学校からあまり時間をかけられない限り、私は業界で働くことができるでしょう。だから、私はバックアップとして、業界で一般的な言語を学ぶべきだと考えました。しかし、これが私が対立している理由でもあります。すべての言語を勉強したり、あらゆる可能性に備えることはできません。時間がかかりすぎるからです。
9 matlab  python  c++ 

1
Matlab Pde Toolbox:ラインまたは部分多様体に解をプロット
Matlab pdeツールボックスを使用して、特定の楕円方程式を2Dで解決しています。 ソリューションは問題ありませんが、特定のラインに沿ってプロットする必要があります。つまり、ソリューションを表す3Dメッシュから平面スライスをカットする必要があります。 ツールボックス関数を賢く含む方法(つまり、三角形メッシュでの低レベルの補間を含まない方法)を理解できません。 助けてくれてありがとう。
9 pde  matlab 

2
線形弾性の剛体運動を削除する方法は?
私が解決したいKは私の剛性行列であるが。ただし、一部の制約が欠落している可能性があるため、(固有値がゼロのため)剛体の動きがシステムにまだ残っている可能性があります。線形システムを解くためにCGを使用しているため、これは受け入れられません。CGが準肯定的な問題に収束しない場合があります(ただし、収束する場合もあります)。Ku=bKu=bK u = bKKK 実際、私はの形のペナルティを追加しているという意味で、ペナルティドディスプレイスメントアプローチを使用しています。| u | | 2弾性エネルギーに。したがって、エネルギーはW(u )を読み取ります := 1α||u||2α||u||2 \alpha ||u||^2α剛性行列のいくつかの対角エントリに比例するとしました。しかし、実際には、これは私がいつか持ちたいいくつかの変形モードを弱める効果があります。W(u):=12uT(K+αI)u−btuW(u):=12uT(K+αI)u−btu\begin{equation} \mathcal W(u) := \frac{1}{2} u^T (K + \alpha I) u - b^t u \end{equation}αα\alpha 私の質問のいくつかは: a)元のシステムを変換できますか?そのため、特異性と正定性がないようにする必要があります(座標変換や合同変換など)。私の考えは、そのような変換を使用して、変換された問題にCGを使用することです b)これらの特異点を処理する標準的な方法はありますか? どうもありがとうございました ! 敬具、 トム

4
小さな科学図書館のホスティングサイト
私の研究では、C ++計算コードとOctave / Matlab(後処理目的で後者を使用する場合)間の通信を容易にすることを目的とした小さなC ++ライブラリを開発しています。 SourceforgeやGithubなどの無料のホスティングサイトで、GPLに基づいてそのようなライブラリをリリースしたいと思います。 正直なところ、私のサイトとして(小さな)ライブラリに適したサイトを選択する経験はありません。 一方では、githubの方が私にとってより即時に見えます。他方、Sourceforgeは科学的コードの参照サイトであり、その多くはそこでホストされています。 何かアドバイス? 編集:私は私の質問を拡大します。 私が話しているライブラリは、ほとんど個人的な小さなプロジェクト(現在は 15,000 CL、bitbucketのプライベートリポジトリにあります)であり、上司からの2年間の退屈な技術的要求と6か月のコード設計(主にトライアルとエラー)。≈ 15 K≈15K\approx 15K いくつかの問い合わせの後、sourceforgeにはプロジェクトページの訪問とダウンロードに関する統計を作成できる優れたメカニズムがあることに気づきました。そのため、人々(ユーザー)がlibをダウンロードしてそれを使用するだけでも(あるとしても)数えることができます。 一方、Githubは、開発者の観点からははるかに簡単に見えます(ここで私は、コードの分析、拡張、分岐にも興味がある人を意味します)。
9 matlab  libraries  c++ 


1
チェビシェフ多項式の高速(近似)評価
チェビシェフ補間多項式の高速(近似)評価を均一なグリッド(チェビシェフノードでの関数値を指定)に実装する好ましい方法はありますか?私の問題は、補間多項式の次数が増えると補間が遅くなることです。 次のアイデアが頭に浮かびました。 不均一FFT(NFFT)手法を採用する FFTを使用して、おそらくより細かい(チェビシェフ)グリッドに最初に行った後で、チェビシェフノードでの導関数を計算します。次に、(近似)評価に区分的3次補間を使用します。 "近くの"チェビシェフノードで関数値(および場合によっては導関数)のみを使用する式を使用します(これは特定のNFFT手法に関連しています)。

4
フーリエ疑似スペクトル法と数値散逸
FFTを使用したフーリエ疑似スペクトル法(Orzag&Patterson、PRL、1972)による等方性乱流の直接数値シミュレーションの実行。乱流コミュニティで広く使用されている方法の背景については、次のコースをご覧ください。http://www.math.ualberta.ca/~bowman/m655/lab3d.pdf いわゆる用いことから成るdealiasingための規則 ここで、は時間、は波数、は最大波数、は速度のスペクトル振幅です。2/32/32/3u^(k,t)=0 if k>23kMAXu^(k,t)=0 if k>23kMAX\begin{equation} \hat{u}(\mathbf{k},t)=0~~~~~~~~~~~~~~if~~~k > \frac{2}{3} k_{MAX} \end{equation}tttkk\mathbf{k}kMAXkMAXk_{MAX}u^u^\hat{u} 脱エリア化は数値散逸として機能しますか?つまり、デアリアリングによるエネルギー漏れはありますか?

3
軽量/インストールなしのCまたはC ++ベースの密線形代数ソルバーの推奨事項
私のプログラミングのほとんどは、私自身が使用するためのCの1回限りの研究コードです。協力者以外にコードを配布したことがありません。私は科学ジャーナルで公開しているアルゴリズムを開発しました。記事のオンラインサプリメントでソースコードとおそらく実行可能コードを提供したいと思います。同僚から、C ++(ack!)で記述する必要があり、小さな密な線形システムを解く必要があるアルゴリズムを一般化するように依頼されました。アルゴリズムのユーザーベースを取得することに成功した場合、その原因の1つは、それを使用するためのエントリバーが低い(床の上など)ためです。潜在的なユーザーは、コードを使用するためにライブラリなどをインストールしません。コードを完全に独立させ、ライセンスの影響を受けないようにしたい。Golubとvan Loanから何かを取り出して独自のソルバーを作成するだけかもしれませんが、誰かがすでに書いたバニラソルバーを使用したい場合は、そこに使用します。提案を歓迎します。ありがとう!

1
初期ヘッセ近似に対するBFGSの感度
関数の最小値を見つけるために、Broyden-Fletcher-Goldfarb-Shannoメソッドを実装しようとしています。2つの初期推定バツ− 1x−1x_{-1}&バツ0x0x_0と初期ヘッセ行列近似B0B0B_0です。について私が見つける唯一の要件B0B0B_0は、ヘッセ行列が対称正定値である場合、もそうであることB0B0B_0です。ウィキペディアを見ると、典型的な初期近似はB0= 私B0=IB_0=I(単位行列)であることがわかります。これは常に良い初期B0B0B_0ですか?自分以外を選びたいと思う理由はありますか私II?同じ行列特性を満たすBの他の選択は、メソッドの収束に大きな影響を与えるでしょうか?

2
数値PDEでの高精度浮動小数点演算
非常に異なるリソースや研究との話し合いから、数値偏微分方程式の高精度計算に対する需要が高まっているという印象があります。ここで、高精度とは、標準の64ビット倍精度よりも高い精度を意味します。 このトピックの最新技術について知りたいです。比較として、数値PDEにはコミュニタイトがあり、特にマルチコアメソッド、大規模並列化、GPUコンピューティングなどを対象としています。同様のコミュニティが存在するのか、数値PDEの高精度な方法で成長しているのかと思います。特に、高精度の紹介または調査論文に興味があります(これが問題の実際のポイントです)。トピックの実際の関連性の。

2
共有メモリのGPUで小さな非対称行列の固有ペアを見つける最速の方法
小さな(通常は60x60よりも小さい)非対称行列のすべての正(固有値は正)の固有ペアを見つける必要があるという問題があります。固有値が特定のしきい値より小さい場合、計算を停止できます。私は固有値が実在することを知っています。最高のパフォーマンスを絞り出すために使用できるアルゴリズムに関する提案はありますか?私はこれらの分解を数千回行わなければならないので、速度が重要です。 前もって感謝します。 編集:これをGPUの共有メモリで行う必要があります。行列も必ずしも同じサイズではありません。現在、これを行うライブラリーについては知りません。問題に適しているアルゴリズムの提案をいただければ幸いです。

3
凸性を除外するためにインテリジェントにどのように試みるか?
複雑な目的関数を最小化したいのですが、凸かどうかわかりません。それが凸でないことを証明しようとする素晴らしいアルゴリズムはありますか?もちろん、アルゴリズムはこれを証明できない可能性があります。その場合、凸かどうかはわかりませんが、これは問題ありません。たとえば、凸であることが知られている標準形式で問題を書き直そうとするなど、目的関数が凸であるかどうかを分析的に判断しようとする多くの時間を費やす前に、凸を除外したいと思います。簡単なテストの1つは、さまざまな開始点から最小化しようとすることです。この方法で複数の極小値が見つかった場合、凸型ではありません。しかし、私はこの目標を念頭に置いて設計されたより良いアルゴリズムがあるかどうか疑問に思っていました。

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