カテゴリー別アーカイブ: 数学

微分の連鎖律と関手性

最近(ここ半世紀くらい)圏論が流行りですね。しかし圏論は抽象的で、具体例や圏論の言葉を使うことによるメリットが見えないと、なかなかとっつき難いかもしれません。

この記事では、高校数学に出てくるアレが、実は圏論の言葉でスッキリ(?)表せることを見てみます。

予備知識:高校数学、若干の圏論、あとは多変数の微分の知識があればなお良い 続きを読む

OpenGL の投影行列

OpenGL での 3DCG で使われる投影行列について、自分用にメモっておく。

情報源:

続きを読む

「週刊 代数的実数を作る」中間報告

この記事は 数学とコンピュータ Advent Calendar 2017 の14日目の記事です。

以前このブログでも告知しましたが、2ヶ月前から、「週刊 代数的実数を作る」と題して、代数的数の計算機上での実装について Web 上で連載しています:

この記事では、「週刊 代数的実数を作る」でこれまで扱ったトピックを振り返り、これからの方向性を述べます。この記事を読む前に連載に目を通している必要はなく、この記事で概要を把握してから連載の方を読むのでも構いません。

(本当は代数的数の実装を利用して有理関数の部分分数分解と不定積分でもやってやろうと思っていたのですが、現状の実装が遅すぎるので断念しました。) 続きを読む

「週刊 代数的実数を作る」創刊

コンピューター上で実数を取り扱うには、いくつかの方向性がある。普通は浮動小数点数によって近似することが多いと思うが、多倍長計算を始めとする、「コストをかけてでも正確に」計算するという方向性もある。

そのような「正確に取り扱える」実数のクラスとしては、整数(多倍長整数)や有理数はある程度普及していると思う(標準で備えているプログラミング言語がある)。それよりも広いクラスとして、代数的実数、つまり(整数または有理数係数)代数方程式の根となるような実数全体、というものがある。

代数的実数が計算機で取り扱えるということ自体は割と知られた事実だと思うが、実装は割と大変で、工夫の余地がある。有理数のように「GCD さえ実装すればよい」というものではない。

かくいう私も最近までその辺を真面目に勉強しようとは思っていなかったわけだが、何となくモチベーションが湧いてきたので、代数的実数に関するアルゴリズムを勉強しつつまとめたものを記事として Web 公開してみようかと思った次第である。

実装には筆者の好みで、 Haskell を使う。実際のところ、 Haskell による代数的実数の実装は既にあるようだが、まあ気にしない(自身の勉強が主目的なので)。

というわけで、以下のページで公開している:

https://miz-ar.info/math/algebraic-real/

「週刊」と名乗っているが、毎週末に更新することを目指している。果たしていつまで続くかは不明である。 続きを読む

Catmull-Rom スプライン曲線についてのメモ

たのしい複素積分」や「わくわく解析接続」では、マウス(またはタッチ操作)の入力から曲線を構成する際に Catmull-Rom スプライン曲線を使っている。この Catmull-Rom スプライン曲線についてのメモを書いておく。あくまで備忘録であり、 Catmull-Rom スプラインを知らない人向けの記事ではない。 続きを読む

解析接続っぽいことができる Web ページ(わくわく解析接続)を公開した

対数関数や平方根のような複素関数は、閉曲線に沿って解析接続すると元の関数と値がずれる場合がある。対数関数や平方根であればまだ単純だから良いが、根号の中に多項式等が入るような関数だと、具体的な曲線に対して関数の(ブランチ)を計算するのは少し面倒である。

というわけで、以前に作った複素積分の Web アプリ(ブラウザアプリ)のような感じで、平面に描いた曲線に沿って解析接続してくれるアプリ(Web ページ)を作った。「複素関数で遊ぼう」「たのしい複素積分」に続く、複素関数シリーズ第3弾とでも言おうか。今のところ愛称は設定していないが、気が向いたらページのタイトルを「わくわく解析接続」に変えているかもしれない。→変えた。この記事のタイトルも変更。 続きを読む