並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 40件

新着順 人気順

数値計算の検索結果1 - 40 件 / 40件

数値計算に関するエントリは40件あります。 数学プログラミングprogramming などが関連タグです。 人気エントリには 『Python言語による実務で使える100+の最適化問題 | opt100』などがあります。
  • Python言語による実務で使える100+の最適化問題 | opt100

    指針 厳密解法に対しては、解ける問題例の規模の指針を与える。数理最適化ソルバーを使う場合には、Gurobi かmypulpを用い、それぞれの限界を調べる。動的最適化の場合には、メモリの限界について調べる。 近似解法に対しては、近似誤差の指針を与える。 複数の定式化を示し、どの定式化が実務的に良いかの指針を示す。 出来るだけベンチマーク問題例を用いる。OR-Libraryなどから問題例をダウンロードし、ディレクトリごとに保管しておく。 解説ビデオもYoutubeで公開する. 主要な問題に対してはアプリを作ってデモをする. 以下,デモビデオ: 注意 基本的には,コードも公開するが, github自体はプライベート そのうち本にするかもしれない(予約はしているが, 保証はない). プロジェクトに参加したい人は,以下の技量が必要(github, nbdev, poetry, gurobi); ペー

    • Python言語による実務で使える100+の最適化問題 | opt100

      はじめに 本書は,筆者が長年書き溜めた様々な実務的な最適化問題についてまとめたものである. 本書は,Jupyter Laboで記述されたものを自動的に変換したものであり,以下のサポートページで公開している. コードも一部公開しているが,ソースコードを保管した Github 自体はプライベートである. 本を購入した人は,サポートページで公開していないプログラムを 圧縮ファイル でダウンロードすることができる. ダウンロードしたファイルの解凍パスワードは<本に記述>である. 作者のページ My HP 本書のサポートページ Support Page 出版社のページ Pythonによる実務で役立つ最適化問題100+ (1) ―グラフ理論と組合せ最適化への招待― Pythonによる実務で役立つ最適化問題100+ (2) ―割当・施設配置・在庫最適化・巡回セールスマン― Pythonによる実務で役立つ

      • 「2乗してはじめて0になる数」とかあったら面白くないですか?ですよね - アジマティクス

        「その数自体は0でないのに、2乗するとはじめて0になる数」ってなんですか? そんな数あるはずがないと思いますか? でももしそんな数を考えることができるなら、ちょっとワクワクすると思いませんか? 今回はそんな謎の数のお話。 実数の中には、「2乗して0になる数」というのは0しかありません。 (2乗して0になる実数は0しかない図) ということは、「2乗してはじめて0になる数」というのがあるとしたら、それは実数ではありえません。 「1年A組にはメガネの人はいないので、メガネの人がいたとしたらその人は1年A組ではありえない」くらいの当たり前のことを言っています。 この辺の議論は、複素数で「」を導入したときと同じですね。 「実数の中には、2乗して-1になる数というのは存在しないので、それがあるとしたら実数ではありえない」ということで「虚数」であるが導入されるわけです。 それならばということで、ここでは

          「2乗してはじめて0になる数」とかあったら面白くないですか?ですよね - アジマティクス
        • Learning Machine Learning  |  Cloud AI  |  Google Cloud

          Accelerate your digital transformation Whether your business is early in its journey or well on its way to digital transformation, Google Cloud can help solve your toughest challenges.

            Learning Machine Learning  |  Cloud AI  |  Google Cloud
          • 徐々に高度になるリングバッファの話 - Software Transactional Memo

            リングバッファのイメージ図 1. リングバッファとは何か 機能的にはFirst In First Out (FIFO)とも呼ばれるキューの一種であるが、リング状にバッファを置いてそれの中でReadとWriteのインデックスがグルグルと回る構造をとる事によって容量に上限ができることと引き換えに高速な読み書き速度を得たものである。キューを単に実装するだけなら山ほど方法があって線形リストを使ってもいいしスタックを2つ使っても原理的には可能だ。その中でもリングバッファを用いた方法の利点はひとえに性能の高さでありメモリ確保などを行わないお陰でシステム系の様々な場所で使われている。 これの実装自体は情報系の大学生の演習レベルの難度であるが少し奥が深い。まずリングバッファのスタンダードなインタフェースと実装は以下のようなものである。 class RingBuffer { public: explicit

              徐々に高度になるリングバッファの話 - Software Transactional Memo
            • JavaScript で parseInt / parseFloat を使わない方が良い理由

              となるのが原因です。parseInt というのは、文字列を解析して整数値(int)を返すグローバル関数であり、引数をまず文字列に変換する仕様となっております。その段階で 0.0000005 が "5e-7" という文字列に変換されてしまい、その文字列の先頭の 5 だけが数字として解析されてしまったため、結果として parseInt(0.0000005) === 5 となりました。 なぜ String(0.000005) === "0.000005" に、String(0.0000005) === "5e-7" になるのかについては、この記事の最後で余談として説明します。 整数化には Math.trunc を使おう このように、parseInt は文字列を引数にすることを前提にしているため、速度の面でも可読性の面でも「小数値を整数値に変換したい」という場合に使うのは望ましくありません。最も望

              • 統計検定準1級 合格体験記 - Qiita

                はじめに 統計検定準1級は(一財)統計質保証推進協会が実施、(一社)日本統計学会が公式認定する「2級までの基礎知識をもとに、実社会の様々な問題に対して適切な統計学の諸手法を応用できる能力を問う」試験です。現在はCBTでの実施となっています。 主観を込めて言いますと、2級と準1級では難易度に雲泥の差があります。 強調して言っておきます。まったく違います! 準1級では統計的推定や検定に加えて、多変量解析(重回帰、PCA、主成分分析、数量化)、時系列解析、マルコフ連鎖、確率過程、分散分析、ベイズ統計、MCMC...と範囲が広いのが特徴です。 以下、かなりの長文になりましたが、受験して得た知見をかなり具体的に記述しました。読者の皆様の合格への一助となれば幸いです。 目的 私はとある私立中高で物理と情報を教えています。統計の勉強を始めたのは、教科「情報」を教えるにあたってのスキルアップが目的です。も

                  統計検定準1級 合格体験記 - Qiita
                • 2のべき乗サイズの配列は危ないという話 via 行列積 - elkurin’s blog

                  こんにちは。労働者です。とあるプログラムで学生さんの課題を添削していたら面白い話に出会いました。 僕は今、主に学部生向けのインターン研修的なプログラムでメンターなるものをやっています。メンターとしての仕事は、学生さんの課題へフィードバックを返し、Office Hourというセッションを毎週設けて質問受けやCSに関するトークを行うといった内容になっています。今回話題に取り上げるのはその中の課題の1つ、「行列積のプログラムを書いて時間を計測せよ」という何気ない話で、続く課題たちのいわば前座のようなものです。こういったところに沼は隠されているものですね。 担当している学生さんたちが細かい実験を行ってくれて以下のような疑問が提示されました。 「行列積の計算が N = 1024のときだけ N = 1023, 1025のときに比べて3倍遅いのはなぜ?」 配列のサイズが2のべき乗になるのは避けるべきとい

                    2のべき乗サイズの配列は危ないという話 via 行列積 - elkurin’s blog
                  • 2で割ることと3で割ること - Qiita

                    この記事でお題にするのはCPUレジスタ上の整数除算です。以下、単に除算とも書きます。 除算は非常に高コストな演算なため、コンパイラは最適化によって、できるだけ整数除算を別の計算に置き換えようとします。 最適化ができる場合の一つとして、割る数が定数である場合があります。頭のいいコンパイラは、除算を乗算とビットシフト等を駆使した演算に置き換えます。この記事では、そういった最適化の背景にある理屈を部分的に解説します。 計算機環境としてはモダンなx86 CPUを仮定します。したがってレジスタは32/64ビットであり、負数は2の補数表現になっています。ある程度は他の命令セットでも通用する話になっているかもしれません。 そもそも整数の除算とは プログラミングにおける整数の除算の定義について確認します。整数$n$を整数$d$で割るとき $$ n = q \times d + r $$ が成り立つように除

                      2で割ることと3で割ること - Qiita
                    • 高速逆平方根(fast inverse square root)のアルゴリズム解説 - 滴了庵日録

                      高速逆平方根とは? C言語のコード 検証 アルゴリズムの要点 [1] 逆平方根の計算を対数・指数の計算に置き換える [2] 浮動小数点型の内部表現を利用した対数・指数の近似計算 [2.1] 対数の近似 [2.2] σの最適値 [2.3] 整数型での解釈 [2.4] 逆平方根の計算とマジックナンバー0x5F3759DF [3] ニュートン法による収束で精度アップ 感想 高速逆平方根とは? 高速逆平方根(fast inverse square root)とは、平方根の逆数 を高速に計算するアルゴリズムです。平方根の逆数は逆平方根とも呼ばれます。逆平方根はベクトルの正規化などに用いられるので、これを高速に計算できるアルゴリズムには大きなご利益があります。 参照: Fast inverse square root - Wikipedia C言語のコード 高速逆平方根の関数を示します。0x5F375

                        高速逆平方根(fast inverse square root)のアルゴリズム解説 - 滴了庵日録
                      • NASAでは円周率を何桁まで使っているのか?

                        円周率は2020年時点で小数点以下50兆桁まで計算されるほど途方もない桁数を持つ数です。一般的には「3」や「3.14」のような数で計算が行われますが、桁が切り捨てられるほど結果の正確さは損なわれてしまうもの。正確さが必要そうな宇宙開発の現場では「円周率を何桁まで使っているのか?」という質問に対して、アメリカ航空宇宙局(NASA)が実際に使用している値とその理由について回答しています。 How Many Decimals of Pi Do We Really Need? - Edu News | NASA/JPL Edu https://www.jpl.nasa.gov/edu/news/2016/3/16/how-many-decimals-of-pi-do-we-really-need/ 「NASAのジェット推進研究所(JPL)は円周率を計算に使うとき、『3.14』を使用していますか?

                          NASAでは円周率を何桁まで使っているのか?
                        • ARMはx86より効率がいいというのは過去の神話

                          従来から、「ARMはx86より(電力的に)効率的だ」という言説があります。これは単純に「ARMは省電力なスマホ向けで、x86は電力を食うPC向け」程度のアバウトなイメージのこともありますし、前世紀のRISC vs CISC論争のころからある「ARMはx86 (x64を含む)に比べ命令セットがシンプルなので、命令デコードにかかる電力が少なくて済んで効率的」という議論の形をとることもあります。 この議論については、半導体エンジニアの多くは「ARMがx86 より効率が良いというのは、もはや過去の神話」(in today’s age it is a very dead argument)という認識を共有していると言っていいでしょう。有名なところではApple CPU (ARM)とZen (x86)の両方を開発したジム・ケラー氏のインタビューでも言われていますし、Chips and Cheeseとい

                            ARMはx86より効率がいいというのは過去の神話
                          • 数値計算の研究をしている学生が"数値計算に潜むとんでもないリスク"について話してみる - Qiita

                            筆者は「精度保証付き数値計算」という分野で研究をしている大学院生です. 「数値計算は分かるけど」「精度保証付き数値計算?ナニソレ?」という方がほとんどだと思います. 「精度保証付き数値計算」の研究自体は30年ほど前から盛んに行われていますが,世間に浸透しているとは言えない状況です. 自分の研究分野が世間に知られていないのは何か少し寂しい感じがするので「精度保証付き数値計算」を少しでも広めるべく記事を投稿することにしました.(シリーズ化するかも知れません) 本日は「精度保証付き数値計算」というワードだけでも覚えていただければ幸いです. 今回は"数値計算に潜むとんでもないリスク"に関してカジュアルにお話します. そして筆者の研究分野である「精度保証付き数値計算」の必要性を知ってもらえればなと思います. この記事を読み終える頃には計算機を信頼できなくなっているかも知れません(笑) ※不安を煽るこ

                              数値計算の研究をしている学生が"数値計算に潜むとんでもないリスク"について話してみる - Qiita
                            • Pythonコードを35000倍に高速化したい

                              はじめに Pythonは世界的にも人気のあるプログラミング言語ですが、実行速度については課題があります。Pythonの実行速度を高速化したい、という要求は根強く、これまでにも様々な処理系が開発されています。 この記事はPythonで書かれたコードを35000倍に高速化するにはどのような方法があるかについてまとめたものです。 この記事は: Pythonで書かれたアルゴリズムを35000倍に高速化する 事前コンパイル、並列化、SIMD演算を駆使する 最終的に44000倍まで高速化できた なぜ35000倍? 2023年5月2日にModular社よりPythonの使いやすさとC言語の性能を兼ね備える新しいプログラミング言語、Mojoの開発について発表がありました。低レベルのハードウェア向けにコンパイル可能なこと、文法的にはPythonを踏襲しており、既存のPythonライブラリを利用可能であること

                                Pythonコードを35000倍に高速化したい
                              • 3千CPUで数カ月かかる計算が0.1秒で完了。汎用原子レベルシミュレータ「Matlantis」 ~PFNとENEOSがクラウドサービスで提供開始

                                  3千CPUで数カ月かかる計算が0.1秒で完了。汎用原子レベルシミュレータ「Matlantis」 ~PFNとENEOSがクラウドサービスで提供開始
                                • 0.1は浮動小数点数で正確に表せないのに、printしたときに0.1と表示されるのはなぜか - Qiita

                                  当たり前のことに感じますが、0.1は浮動小数点数(IEEE 754)では正確に表現できません。 なのにprintをしたときに0.1と表示されるのは不思議です。 このことについて分かったことを書いておきます。 環境 この記事ではPython 3.7を使用しています。 【前提】浮動小数点数 この記事で、以降"浮動小数点数"という場合は、"IEEE 754 倍精度"のことを指します。 浮動小数点数のフォーマットは、数を以下の形式に変換し、sign、exp、fracを順に並べたものです。

                                    0.1は浮動小数点数で正確に表せないのに、printしたときに0.1と表示されるのはなぜか - Qiita
                                  • 輸送問題を近似的に行列計算で解く(機械学習への応用つき) - 私と理論

                                    輸送問題と呼ばれる問題があります. この問題は,普通は線形計画法やフローのアルゴリズムを使って解かれます. この記事では,この輸送問題を近似的に行列計算で解くアルゴリズム(エントロピー正則化 + Sinkhorn-Knopp アルゴリズム)を紹介します. 輸送問題とは アルゴリズム 得られる解の例 なぜこれで解けるのか? 競プロの問題を解いてみる 機械学習界隈における流行 まとめ 輸送問題とは 輸送問題とは以下のような問題です. 件の工場と 件の店舗からなる,ある商品の流通圏があるとする. 各工場には 個の在庫がある.. 各店舗では 個の需要がある. 在庫の総和と需要の総和は等しいとする (すなわち ). 工場 から店舗 に商品を一つ運ぶためには の輸送コストがかかる. 各工場 から各店舗 への輸送量 を適切に決めて,各店舗の需要を満たしつつ輸送コストの総和を最小化せよ. 輸送問題は最適化

                                    • 浮動小数点数オタクが AtCoder Beginner Contest 169 のC問題をガチで解説してみる - Qiita

                                      どうも、浮動小数点数オタクのmod_poppoです。 昨日開催された ABC169 の C 問題が浮動小数点数の罠な問題だったらしいので、どこが罠なのか、そしてどうすれば罠を回避できるのかを解説してみます。 また、典型的な誤答に対しては、それを落とすためのテストケースも用意しました。 問題文(引用) まず最初に問題文を引用しておきます。 AtCoder Beginner Contest 169 | C - Multiplication 3 問題文 $A\times B$ の小数点以下を切り捨て、結果を整数として出力してください。 制約 $0\le A\le 10^{15}$ $0\le B<10$ $A$ は整数 $B$ は小数第 2 位まで与えられる 入力 入力は以下の形式で標準入力から与えられる。

                                        浮動小数点数オタクが AtCoder Beginner Contest 169 のC問題をガチで解説してみる - Qiita
                                      • 128ビット符号付き整数の最大値は素数 - Rustで任意精度整数演算

                                        概要 2^n-1 型の数はメルセンヌ数と呼ばれ、更に素数である場合にメルセンヌ素数といいます。本記事では、メルセンヌ数に対する高速な素数判定法であるリュカ・レーマーテストを、Rustの任意精度演算用クレート rug を利用して実装します。 実行環境 CPU: Intel Core i7 1.8GHz メモリ: 16GB OS(ホスト): Windows 10 Home 21H1 WSL2: Ubuntu 20.04.3 rustc: Ver. 1.55.0 cargo: Ver. 1.55.0 符号付き整数型の範囲について Rustには組み込みの整数型として 8,\,16,\,32,\,64,\,128 ビット整数[1]がそれぞれ符号付き・符号なしで備わっています[2]。そのうち符号付き整数は、他の多くの言語と同様、2の補数によって負の数が表現されます。したがって、ビット数 n = 8,

                                          128ビット符号付き整数の最大値は素数 - Rustで任意精度整数演算
                                        • 超高速!多倍長整数の計算手法【前編:大きな数の四則計算を圧倒的な速度で!】 - Qiita

                                          1. はじめに ~メインを読むための準備~ まず、大きな数の計算の話をする前に、少しコンピューターと計算回数について話しましょうか。 コンピューターは、現代ではソフトウェアやアプリケーションの開発に使われていますが、これには重要な背景があります。これは「計算がめっちゃ速いこと」です!人間なんかと比べたら、圧倒的な計算スピードを誇ります。 1-1. 人間の計算速度はどのくらい? まず人間はどのくらいの速度で計算できるでしょうか?速い人も遅い人もいると思います。 例えば、$628 \times 463$ の計算を、今やってみましょう。10 秒以内で計算できたらかなり速い方でしょう。この計算では、次のように「単純計算」を合計 28 回もしていることになります。 9 回の 1 桁 × 1 桁の掛け算 6 回の 1 桁 × 1 桁の足し算 13 回の繰り上がり計算 もし $628 × 463$ が

                                            超高速!多倍長整数の計算手法【前編:大きな数の四則計算を圧倒的な速度で!】 - Qiita
                                          • 【コード付き】Pythonを使った偏微分方程式の数値解法【入門】 - LabCode

                                            本記事では、偏微分方程式の数値解法の基本を、分かりやすい具体例とともに掘り下げていきます。偏微分方程式には解析的な解が存在しない場合が多いため、Pythonを活用してこれらの複雑な問題にアプローチする方法を学びます。 本記事を足がかりに数値解析の旅を始めてみませんか? 注1) 本記事は丁寧に解説しすぎたあまり、大変長くなっております。まずはご自身が興味のある部分だけをお読みいただくことを推奨します。 注2) 差分法の一部の話だけにとどめています。誤差や境界条件などの詳細な議論は冗長化を避けるためにご紹介していません。 偏微分方程式の数値解法とは 偏微分方程式の数値解法は、偏微分方程式(PDE: Partial Differential Equations)の解を近似的に求めるための手法のことを指します。これらの方程式は、多くの場合、解析的な解が見つけられないため、数値的な手法が必要となりま

                                              【コード付き】Pythonを使った偏微分方程式の数値解法【入門】 - LabCode
                                            • なぜ弱火のレシピを時短のために強火にしてはいけないか1次元お肉を熱伝導方程式で焼いてみる - まどろみの思考空間

                                              はじめに 料理の失敗談として「弱火で10分のところを強火ですれば時間短縮になる!」といって「外は黒焦げ、中が生焼け」となるという話をよく(?)聞きます。これはなぜでしょうか?今回はこれについて熱伝導方程式を解いてもとめようというのが今回の記事の趣旨です。 理論と手法 物理において何が現象の主要な支配要因になってるかを把握するためにはパラメータを最小限に抑えて、現象をもっともらしく表現できる近似をしてあげることが大切です。今回は最低限、現象を説明できる条件の1次元の熱伝導を計算します。また、厳密に解けそうな気がしますが数値計算を用いて解いていきます。 ということで1次元のお肉を焼いていきましょう。1次元の熱伝導方程式は下記のように表現できます。 ここでTは肉内部の温度分布で時間tと位置xの関数、κは熱拡散率です。肉の熱拡散率は(杉山,2013)*1にかかれている1.30×10^-7 m2/s

                                                なぜ弱火のレシピを時短のために強火にしてはいけないか1次元お肉を熱伝導方程式で焼いてみる - まどろみの思考空間
                                              • 【コード付き】非線形の偏微分方程式の数値解法【Python】 - LabCode

                                                本記事では、非線形の偏微分方程式の数値解法について、分かりやすい具体例とともに掘り下げていきます。Pythonを活用したアプローチ方法を学びます。 本記事を通して偏微分方程式の数値解法の1つを会得しましょう! 注) 差分法の一部の話だけにとどめています。誤差や境界条件などの詳細な議論は冗長化を避けるためにご紹介していません。 偏微分方程式の数値解法とは 偏微分方程式の数値解法は、偏微分方程式(PDE: Partial Differential Equations)の解を近似的に求めるための手法のことを指します。これらの方程式は、多くの場合、解析的な解が見つけられないため、数値的な手法が必要となります。以下に、主な数値解法をいくつか紹介します。 有限差分法(Finite Difference Method): 空間や時間を離散的なグリッドに分割し、微分を差分に置き換えることにより近似します。

                                                  【コード付き】非線形の偏微分方程式の数値解法【Python】 - LabCode
                                                • 「富岳」飛沫拡散を計算 “座り位置”で飛沫5倍に(テレビ朝日系(ANN)) - Yahoo!ニュース

                                                  スーパーコンピューター「富岳」を使った新型コロナ感染リスクの検証で、飲食店で隣同士に座って会話した場合は正面で会話するよりも5倍の飛沫(ひまつ)を浴びることが分かりました。 富岳が4人が飲食店で1分程度話をした場合を計算した飛沫の広がり方です。理化学研究所のチームリーダーを務める神戸大学の坪倉誠教授によりますと、感染者が横に座っていて話をした場合は、正面に座った場合の5倍の飛沫を受けることが分かりました。さらに、飛沫そのものも湿度が低ければ低いほど、下に落ちずに空中に漂う量が急激に増えることが分かりました。湿度30%の場合は、60%の場合の2倍以上の飛沫が1.8メートル先まで到達したということです。また、コンサートホールなどで、合唱をする場合は飛沫は直進するため前方の人ほどリスクが高まるほか、合唱で生まれた気流によって飛沫がより遠くまで届くということです。

                                                    「富岳」飛沫拡散を計算 “座り位置”で飛沫5倍に(テレビ朝日系(ANN)) - Yahoo!ニュース
                                                  • 浮動小数点を利用する際に知っておきたいこと

                                                    (※ 2014 年 10 月 28 日に Microsoft Japan Visual Studio Support Team Blog に公開した情報のアーカイブです。) (※ 参照先ドキュメントの変更や廃止に伴い、リンク先を差し替えています。) こんにちは。Visual Studio サポート チームです。 今回は、Visual Studio でアプリケーションを開発する時にデータ型として使用できる浮動小数点数についてのお話です。 本記事の内容は Visual C++、Visual C#、Visual Basic を対象としております。 浮動小数点数を使用する際の注意点浮動小数点数はプログラムで小数を扱うために広く利用されていますが、少し癖のあるデータ型でもあるため、その特性をよく理解して利用しないと、思わぬ落とし穴に遭遇してしまうこともあります。 浮動小数点の特性として、注意した方が

                                                    • SIMDの基礎と関数の実装例

                                                      配信講義 計算科学技術特論A(2023)(2023年4月13日~7月27日・オンライン) 第11回 6月29日 SIMDの基礎と関数の実装例 https://www.r-ccs.riken.jp/outreach/schools/20230413-1/

                                                        SIMDの基礎と関数の実装例
                                                      • x87 FPUの呪い - Qiita

                                                        それぞれの説明はこんな感じである: X: Infinity Control 無限大の符号の扱いを変える設定だったらしい。IEEE 754が標準化される前の痕跡で、387以降は意味を持たない。 RC: Rounding Control 丸め方法を指定する。 00B: Round to nearest (even) 01B: Round down (toward $-\infty$) 10B: Round up (toward $+\infty$) 11B: Round toward zero (Truncate) PC: Precision Control 演算結果の仮数部の精度を指定する。 00B: Signle Precision (24 bits) 01B: Reserved 10B: Double Precision (53 bits) 11B: Double Extended Pr

                                                          x87 FPUの呪い - Qiita
                                                        • Rustで数値計算

                                                          Rustで数値計算

                                                            Rustで数値計算
                                                          • Rust でレイトレーシングレンダラーをディープラーニングしてみた

                                                            何が何だかわからないタイトルですが、次のような3Dのレンダラーをディープラーニングで模倣してみようということです。左側が訓練データ、右側がディープラーニングした結果でレンダリングしたものです。 まず、私はディープラーニングの専門家ではありませんので、この記事は自分の学習過程を記録したものになります。 今回はディープラーニングというかニューラルネットワーク一般の理解を深めるため、全てをフルスクラッチで実装してみました。行列の掛け算から誤差逆伝搬法まで。このため学習過程を可視化するGUIを作りました。 これは全て CPU で動作するので速度は期待しないでください。 リポジトリはこちらです。 ブラウザ上で動作する WebAssembly 版もありますが、ファイルから画像をロードする機能はありませんし、ネイティブ版より遅いです。 ニューラルネットワークの基本 ニューラルネットワークおよびディープラ

                                                              Rust でレイトレーシングレンダラーをディープラーニングしてみた
                                                            • 【Python】数値計算プログラミング

                                                              【Python】数値計算プログラミング 当サイトではアフィリエイトプログラムを利用して商品を紹介しています。 Pythonの誕生と進歩 時代は 1980 年代。まだ仕事場や家庭にコンピュータが十分に普及しておらず、ほとんどの人がインターネットという言葉さえ知りませんでした。その当時、やたらと長くて複雑なコードと格闘していたプログラマーたちの姿を見ていた1人のオランダ人は、もっと読みやすく使い勝手の良いプログラミング言語を作れないものかと思案しました。 こうして生まれた新しい言語が Python です。この奇妙な名前は、イギリスのコメディ番組『空飛ぶモンティ・パイソン』に由来します。Python は日本語で「ニシキヘビ」を意味します。現在ではニシキヘビが Python のシンボルマークとなって、参考書の表紙を飾っていますね(個人的にはヘビはあまり好きではないです ... )。 Python

                                                                【Python】数値計算プログラミング
                                                              • Kenji Hiranabe on Twitter: "Python の numpy の裏では FORTRAN で書かれた BLAS, LAPACK が現役で動いていますよ! 行列数値計算は自分で書いてはダメ.これだけの歴史の蓄積がある.これはいい資料. https://t.co/G8UaXisxn8"

                                                                Python の numpy の裏では FORTRAN で書かれた BLAS, LAPACK が現役で動いていますよ! 行列数値計算は自分で書いてはダメ.これだけの歴史の蓄積がある.これはいい資料. https://t.co/G8UaXisxn8

                                                                  Kenji Hiranabe on Twitter: "Python の numpy の裏では FORTRAN で書かれた BLAS, LAPACK が現役で動いていますよ! 行列数値計算は自分で書いてはダメ.これだけの歴史の蓄積がある.これはいい資料. https://t.co/G8UaXisxn8"
                                                                • 双対数を利用した自動微分のしくみ - かみのメモ

                                                                  最近、SLAMの勉強をしてみたいなぁと思いceres-solverのコードを読んでいたのですが、ヤコビアンの導出のところで見慣れない操作をしていることに気付きました。 調べてみると双対数というものを利用して自動微分なる計算をしているらしいです。 ということで、この記事では双対数(二重数, dual number)とそれを利用した自動微分についてまとめてみます。 平たく言えば、プログラムで微分を計算する方法を紹介します。 ざっくり理解で書いている部分もあるので、間違いを見つけたらマサカリ投げてください。 スポンサーリンク もくじ 1. 前置き 2. 導関数の演算則 3. 双対数 3.1. 双対数の定義 3.2. 双対数の演算則 3.3. 双対数と導関数の演算則の共通性 4. 双対数を利用した自動微分 4.1. 自動微分の原理 4.2. 計算例 4.3. 実装 5. 双対数による自動微分と数値

                                                                    双対数を利用した自動微分のしくみ - かみのメモ
                                                                  • nonrigorous_numerics

                                                                    Juliaで間違える数値計算¶この文章は筑波大学大学院システム情報工学研究科リスク工学専攻の紀要「リスク工学研究」Vol. 16, pp.27-30に掲載された内容をJuliaを用いた計算例を加えて加筆修正したものです。 はじめに¶「数値計算・数値解析」という言葉、日頃よく耳にすると思いますが、「数値計算・数値解析」とは何でしょうか。本稿は、まずこの二つの言葉を明確に区別する事から始めます。今日、筆者が知る限り、「数値解析」は同じ言葉で二つの使い方をされます。一つは、「数値解析」とは数値を用いて代数的操作によって解くことができない数学の問題を解決する手法とする使い方、数値計算・数値実験・数値シミュレーションなどと同義のように使用されます。もう一つは、「数値解析」とは応用数学の一分野で、上記の数学問題を、数値を用いて近似的に解く手法に関する数学的な概念を研究する分野とする使い方。筆者は後者の

                                                                    • glibcのexp(x)をいじめる - よーる

                                                                      glibcのexp関数は、倍精度浮動小数点数の指数関数をソフトウェアで計算するものです。 glibcの実装(IBM Accurate Mathematical Libraryの実装を用いたもの)は、おそらく完全精度を達成しています。 完全精度とは、入力がどんな値であっても真の値に最も近い浮動小数点数に丸めた結果を返すことを言います。 しかし、これを実現するのは非常に困難であることが知られています(テーブルメーカーのジレンマ)。 glibcの実装では、以下の三ステップを踏むことで、完全精度を達成しています。 まず倍精度浮動小数点数演算とテーブル引きを駆使して近似値を求め、誤差を加味しても丸めた結果に影響がないと判断されれば、その値を返す 144bitの多倍長演算を使って近似値を求め、誤差を加味しても丸めた結果に影響がないと判断されれば、その値を返す 768bitの多倍長演算を使って近似値を求

                                                                        glibcのexp(x)をいじめる - よーる
                                                                      • 動的モード分解(Dynamic Mode Decomposition)のご紹介 - Qiita

                                                                        はじめに 時間変化を調べる方法といえばフーリエ変換かウェーブレット変換くらいしか思い浮かびませんでしたが、時間方向と空間方向双方のモードを抽出できる動的モード分解(DMD)という良い手法があることを知りました。自身の理解を深めるためにもここに記録しようと思います。 内容はほぼ参考にしたサイトそのままで、Google翻訳したものを少し直して書いていきます。グラフ描画に関するコードは参考元にはないので追記しておきました。DMDの実行からグラフの描画までそのまま実行できるはずです。 参考 簡単のために3次元ベクトル場のDMDは省略して、単純な1次元のスカラー関数のみを考えます。 Dynamic Mode Decomposition in Python SVDもなんだか知らなかったのでこちらを参考にしました。 PCAとSVDの関連について 動的モード分解(DMD)は、比較的最近の数学的革新であり、

                                                                          動的モード分解(Dynamic Mode Decomposition)のご紹介 - Qiita
                                                                        • scipy.integrate.solve_ivpで微分方程式をたくさん解いてみた - Qiita

                                                                          対象 数値計算を使って勉強している物理,化学系の学生向け はじめに 物理現象を記述する微分方程式を数値的に解く,みたいなのは理系専攻のカリキュラムなら,どこもやっていると思います. とりあえず差分化してコードに直せば,解を出してくれて,グラフに直せばそのイメージが掴める,とても便利な方法です. 一方で面倒なこともあります. 一つがコードを書く手間です. 数値計算の講義ではCが主流かと思いますが,C言語は手軽に扱うには向きません.デバッグに時間もかかります. また,刻み幅の調整も問題です.この値が大きすぎると正しい解が得られません,かといって,小さすぎると計算時間がかかりすぎます. この二つの面倒さに対し,自分なりに解決を行いましたので,紹介することにしました pythonとscipy.integrate.solve_ivp まず,言語としてPythonを採用します.pythonといえば遅い

                                                                            scipy.integrate.solve_ivpで微分方程式をたくさん解いてみた - Qiita
                                                                          • 数値計算のカレンダー | Advent Calendar 2022 - Qiita

                                                                            あなたが数値計算にカテゴライズされると思える記事をぜひ投稿してみてください!プログラム言語は問いません!! 過去の数値計算 Advent Calendar 2020 2019 2018 edit_calendarHow to join the calendarYou can join the calendar by selecting an available date and registering the URL of the article you wish to link to. If a slot is available, you can go back to a past date to join!

                                                                              数値計算のカレンダー | Advent Calendar 2022 - Qiita
                                                                            • 教えて先輩! 気象予報士 斉田季実治さん【前編】|NHK就活応援ニュースゼミ

                                                                              連続テレビ小説「おかえりモネ」で描かれている気象予報士。実際はどんなふうに働いているのでしょうか。NHKの「ニュースウオッチ9」で気象キャスターを務める斉田季実治さんに就活生が聞きました。

                                                                                教えて先輩! 気象予報士 斉田季実治さん【前編】|NHK就活応援ニュースゼミ
                                                                              • SUMO Documentation

                                                                                Languages Translations are generated automatically by Google Translate: Deutsch Español Français Italiano Magyar Türkçe SUMO User Documentation "Simulation of Urban MObility" (SUMO) is an open source, highly portable, microscopic and continuous traffic simulation package designed to handle large networks. It allows for intermodal simulation including pedestrians and comes with a large set of tools

                                                                                • 磁気流体の数値計算で遊ぶ - Qiita

                                                                                  磁気流体とは プラズマや液体金属のような電気伝導性の高い流体を扱う流体力学を磁気流体力学 (Magnetohydrodynamics) といいます。英語から略してよくMHDと呼ばれます。 この磁気流体の方程式系は保存形で書くと以下のようになります。 \frac{\partial\mathbf{U}}{\partial t} + \frac{\partial\mathbf{F}}{\partial x} + \frac{\partial\mathbf{G}}{\partial y} + \frac{\partial\mathbf{H}}{\partial z}= \mathbf{0} \mathbf{U} = \begin{bmatrix} \rho \\ \rho u \\ \rho v \\ \rho w \\ B_x \\ B_y \\ B_z \\ e \end{bmatrix},\

                                                                                    磁気流体の数値計算で遊ぶ - Qiita
                                                                                  1

                                                                                  新着記事