並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 24 件 / 24件

新着順 人気順

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

  • 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!ニュース
                                                  1