2018-12-10

数理科学IIB(第10回)

今回は、前回議論したf-簡約多項式の集合が、係数体上のベクトル空間のある線形写像の零空間に同型となることを示し、それを用いてf-簡約多項式を求める方法を紹介しました。

次回は、今回紹介した方法で求めたf-簡約多項式から、fの既約因子を具体的に求める方法について説明します。今年の授業はここまでで、次回の授業は来年です。来年もよろしくお願いいたします。

2018-12-03

数理科学IIB(第9回)

今回は、前回に引き続き、バールカンプアルゴリズムの全体の流れの説明のうち、残った部分を説明しました。それから、f-簡約多項式の存在と、異なるf-簡約多項式の個数が、fに含まれる既約因子の個数に等しい部分を説明しました。

次回は、f-簡約多項式の計算方法から説明します。

計算機数学II (2018) 第7回:数値積分

今回は、数値積分ということで、台形則、シンプソン則、ロンバーグ積分法を紹介しました。

今年の講義はこれで一段落です。現在、この授業は、1テーマが終わるごとに、演習としてプログラミングに取り組んでいます。数学類でこれまでに授業で扱っているのはMathematicaですので、Mathematica言語 (Wolfram Language) を標準としていますが、希望者には、自分が扱い慣れている言語でプログラムを書いてもらっています。これまでにレポートで提出された言語は、Python, C, C++, Fortran, Haskell です。(Haskellはちょっと珍しいと思う人もいるかもしれませんが、数学類の「計算機演習」ではMathematicaのほかにHaskellも扱っています。)

レポート課題の出題とプログラムの作成にはGitとGitHubを用いており、レポートの提出は、Pull requestを出してもらう形で受け付けています。

次回の講義は年明けになります。来年もよろしくお願いいたします。

2018-11-26

数理科学IIB(第8回)

今回から、有限体上の1変数多項式の因数分解の話題に入りました。この授業では、決定的アルゴリズムと確率的アルゴリズムを取り上げますが、まず、決定的アルゴリズムの一つであるバールカンプの因数分解アルゴリズムから紹介します。

今回は、バールカンプアルゴリズムの全体の流れを中心に説明しました。次回は、アルゴリズム全体の説明の流れの残った部分を説明し、f-簡約多項式の存在性の証明などから進めます。

2018-11-19

数理科学IIB(第7回)

今回は、有限体上の1変数多項式の無平方分解について、背景となる定理とアルゴリズムを説明し、計算量の見積もりを行いました。

次回からは、有限体上の1変数多項式の因数分解の話題に進む予定です。

計算機数学II (2018) 第6回:曲線の推定 (2)

今回は、前回残ったラグランジュ補間の誤差評価を行ったのち、スプライン (Spline) 補間と最小2乗法の説明を行いました。

次回は数値積分の話題に進む予定です。

2018-11-12

数理科学IIB(第6回)

今回は、標数0の一意分解整域上の1変数多項式の無平方分解のアルゴリズムとして「ユン (Yun) のアルゴリズム」を紹介し、アルゴリズムの正当性の証明と計算量の見積もりを行いました。

次回は有限体上の1変数多項式の無平方分解に進みます。

計算機数学II (2018) 第5回:方程式の根、曲線の推定 (1)

前回の授業から、学園祭明けの休業で1週空きましたが、今回は、まず、方程式の解法を紹介しました。基本的な方法として「2分法」と「ニュートン(Newton)法」を紹介し、それぞれの反復公式、収束条件、計算量について説明しました。

次に、曲線の推定ということで、今回はラグランジュ(Lagrange)の補間法を紹介しました。今回は時間の都合で誤差評価が残ったので、次回は、Lagrangeの補間法の誤差評価から始め、スプライン(Spline)補間の説明に進む予定です。

2018-10-29

数理科学IIB(第5回)

今回は、1変数多項式の無平方分解の話題に入りました。標数0の一意分解整域上の1変数多項式の無平方分解について、定義と基本的な性質を紹介し、マッサー (Musser) による無平方分解のアルゴリズムを紹介しました。

次回は、より効率的な無平方分解のアルゴリズムとして知られる、ユン (Yun) のアルゴリズムの紹介から始める予定です。

2018-10-22

数理科学IIB(第4回)

今回は、中国剰余定理を用いた、1変数多項式のGCD計算のアルゴリズムを紹介しました。話題の中心は、中国剰余定理を用いて、整数環上の1変数多項式の係数を、剰余環上の多項式の係数から復元する計算についてでした。

次回は、1変数多項式の無平方分解の話題に入る予定です。

計算機数学II (2018) 第4回:連立1次方程式 (2)

今回は、前回に引き続いて連立1次方程式の解法に関する説明を行いました。今回は特に「反復法」に焦点を当て、「ヤコビの反復法」「ガウス・ザイデル法」「SOR法」を紹介しました。

来週は、前回と今回の内容に関する演習を行うので、講義は一旦休みます。再来週11月5日は、大学の学園祭明けの休業日ですので、次回の講義は11月12日の予定です。

授業サポートページ: https://researchmap.jp/aterui/compmath2-2018/

2018-10-15

数理科学IIB(第3回)

今回は、まず、前回最後に証明したHenselの補題に基づき、Hensel構成の基本的なアルゴリズムについて説明ました。次に、Hensel構成の最初の段階の因子が共通因子を持つとHensel構成が適用できない「共通因子問題 」を紹介し、共通因子問題の回避策を紹介しました。最後に、共通因子問題への回避策を含め、Hensel構成を用いたGCD計算のアルゴリズムを提示、説明しました。

次回は、中国剰余定理を用いたGCD計算のアルゴリズムの紹介から始めます。

計算機数学II (2018) 第3回:連立1次方程式 (1)

今回は、連立1次方程式の解法、特に「直接法」と呼ばれる方法から、ガウスの消去法とLU分解に基づく解法を紹介しました。

次回は連立1次方程式の解法の続きで、反復法に属する解法を紹介します。

授業サポートページ: https://researchmap.jp/aterui/compmath2-2018/

2018-10-09

数理科学IIB(第2回)

今回は、まず、整数係数の1変数多項式に対する計算を、剰余環上で効率的に、かつ正確に行うための準備として、多項式の既約因子や公約子のノルムの見積もりに関する定理を紹介しました。それから、剰余環上でのGCD計算の道具の一つとして、Henselの補題(Hensel構成)を紹介し、その証明を行いました。

次回は、Hensel構成を用いた1変数多項式のGCD計算のアルゴリズムを紹介します。

計算機数学II (2018) 第2回:数値計算へのガイド

今回は、実質的な第1回ということで、数値計算ではどのようなことを行うか、といったこと、浮動小数の定義と演算の特徴(特に誤差の話)、数値計算によく使われる数学的知識の確認(テイラー展開と漸近記法)、アルゴリズムの記述の説明を行いました。

次回からは、連立1次方程式の解法を紹介します。

なお、授業のサポートページですが、大学のオープンコースウェアで映像が残ると思われるので、今回はresearchmapに掲載します。researchmapは、日本の研究者のデータベースとSNSを兼ね備えたようなシステムで、どんな研究者がいるか、それぞれの研究者や、研究者のコミュニティがどんなことをやっているかを俯瞰できます。

授業サポートページ: https://researchmap.jp/aterui/compmath2-2018/

2018-10-01

数理科学IIB(第1回)

秋学期の大学院の授業は「数理科学IIB」を担当します。

春学期は、主に、1変数多項式の最大公約子(GCD)、多項式剰余列、部分終結式の理論を扱いました。今学期は、春学期の内容に接続する部分も含みますが、1変数多項式の最大公約子(GCD)計算に関するモジュラー算法、無平方分解、有限体上の1変数多項式の因数分解、整数上の1変数や多変数多項式の因数分解を扱います。

今回はガイダンスということで、次回は、1変数多項式の最大公約子(GCD)計算に関するモジュラー算法の話題から始めたいと思います。

計算機数学II (2018) 第1回:ガイダンス

今日から本年度の秋学期がスタートしました。秋学期、数学類(学部)では「計算機数学II」の授業を担当します。

この授業では、数値計算の初歩を扱います。春学期の「計算機数学I」では、アルゴリズムを伴う構成的な数学への入門を主題にし、対象とする計算は、拡張Euclid互除法を中心にした、代数的な計算を扱いました。これに対して、今回は、理工学で幅広く用いられている数値計算を対象にし、微積分や線形代数の基礎的な知識はあるけれどもプログラミングはあまり経験がないような人に向けた授業にする予定です。

この授業で扱うテーマは以下の予定です。

  • 浮動小数演算、誤差、アルゴリズム
  • 連立1次方程式の解法
  • 代数方程式の解法
  • 関数補間
  • 数値積分
  • 常備分方程式の解法
  • 偏微分方程式の解法

扱う内容のレベルは比較的浅めになると思いますが、初学者向きに、必要な人がより深い専門知識を学ぶための足がかりになるような授業にしたいと思います。

あと、今回、この授業を初めて行うことになり、授業の準備に集中するため、いつもの授業で行っている、授業のビデオ収録と公開は見合わせるつもりでしたが、今回ご縁があり、筑波大学オープンコースウェアに授業の録画を掲載していただくことになりました。録画の掲載が進みましたら、随時お知らせします。

今日の授業はガイダンスで、実際の授業は次回から行います。

2018-07-30

計算機数学I (2018) 第15回:高速フーリエ変換 (FFT) を用いた1変数多項式の高速乗算法

今回は、本授業科目の最後の授業でしたが、1変数多項式の高速乗算アルゴリズムの一つとして、高速フーリエ変換 (FFT) を用いた乗算法を紹介しました。2つのn次の1変数多項式の乗算にかかる計算量は、古典的なアルゴリズムで O(n^2), 前回紹介したKaratsubaのアルゴリズムでは O(n^(log 3)) ですが、今回のFFTを用いたアルゴリズムでは O(n log n) となります。

以上が本授業の内容で、この授業では、拡張Euclid互除法を軸に、主に代数的なアルゴリズムを紹介しました。この授業科目は、本学で数学の教員免許を取得するための必修科目にも位置付けられていますが、この授業が、数学の代数分野における構成的な計算を学んだり考えたりするきっかけの一つになればと思います。

授業サポートページ: https://www.math.tsukuba.ac.jp/~terui/compmath1-2018

2018-07-23

計算機数学I (2018) 第14回:Karatsubaの高速乗算法

今回は、高速乗算法の一つとして、整数や1変数多項式に対するカラツバ(Karatsuba)の高速乗算アルゴリズムを紹介しました。n桁の整数どうしの乗算の計算量は、古典的な方法ですと O(n^2) ですが、Karatsubaのアルゴリズムですと、これが O(n^(log 3)) となります。

次回はこの授業の最終回ですが、高速フーリエ変換 (Fast Fourier Transform, FFT) およびそれを用いた1変数多項式の高速乗算法を紹介します。

追記(2018年8月5日):動画2個目「Karatsuba乗算の計算量」の説明に修正が生じましたので、動画を改訂しました。

授業サポートページ: https://www.math.tsukuba.ac.jp/~terui/compmath1-2018

2018-07-17

計算機数学I (2018) 第13回:除算の計算量

前回、行列積の法計算を行った際、いくつかの除算の計算量の評価については持ち越していましたので、今回の授業では、主な除算アルゴリズムの計算量について議論しました。まず、1変数多項式の除算の計算量を見積もり、それから、単精度整数の除算、多倍長整数の除算の計算量を確かめました。そして、中国剰余算法の計算量の見積もりを行いました。

次回からは、1変数多項式や整数の高速乗算法を紹介します。次回はカラツバ (Karatsuba) の乗算アルゴリズムを紹介する予定です。

授業サポートページ: https://www.math.tsukuba.ac.jp/~terui/compmath1-2018

2018-07-11

計算機演習(第13回)

今回はHaskell編の5回目ですが、関数の再帰的定義の話題を中心に進んでいます。

2018-07-09

数理科学IIA(第12回)

今回は、多項式剰余列や最大公約子 (GCD) に関連する話題として、数式・数値融合計算における近似GCD計算のこれまでの研究や最近の動向について紹介しました。

計算機数学I (2018) 第12回:行列積の法計算

今回は、まず、モジュラ算法について紹介しました。これは、多倍長数を用いるアルゴリズムに中国剰余算法を適用することで、計算の効率化を図るものです。今回は、モジュラ算法の例として、行列積の法計算のアルゴリズムを紹介しました。

これまでの授業では、多倍長数や1変数多項式の除算の計算量についてあまり触れてきませんでしたが、次回は、これらの除算の計算量を観察した上で、今回のモジュラ算法の計算量の見積もりについて議論したいと思います。

授業サポートページ: https://www.math.tsukuba.ac.jp/~terui/compmath1-2018

2018-07-02

数理科学IIA(第11回)

今回は、前回証明した「部分終結式の基本定理」を用いて、多項式剰余列における係数膨張を防ぐアルゴリズムとして、「縮小多項式剰余列 (PRS)アルゴリズム」および「部分終結式PRSアルゴリズム」を紹介しました。

計算機数学I (2018) 第11回:有理数の再構成

今回は、拡張Euclid互除法を用いて、有理数を再構成する計算について説明しました。1つは、剰余環に有理数の演算を埋め込み、計算結果から有理数を再構成するもの、もう1つは、有理数の(10進)循環小数による近似値から、既約な有理数を復元するものです。

次回は、剰余環上の計算と中国剰余定理を組み合わせた「モジュラ算法」について説明します。

授業サポートページ: https://www.math.tsukuba.ac.jp/~terui/compmath1-2018

2018-06-27

計算機演習(第11回)

今回は、主にタプル (tuple) といったデータ型の扱いや、Haskellの型、型変数の概念を学んでいます。

2018-06-25

数理科学IIA(第10回)

今回は、多項式剰余列の計算における、部分終結式の基本定理(主定理)の証明を行いました。

次回は、今回証明した定理を応用して、多項式剰余列の係数膨張を防ぐアルゴリズムを紹介します。

計算機数学I (2018) 第10回:中国剰余算法

今回は、中国剰余定理を取り上げ、拡張Euclid互除法を用いて解く「中国剰余算法」のアルゴリズムを紹介しました。

次回は、拡張Euclid互除法の応用として、有理数演算を剰余環に埋め込んで行い、有理数の計算結果を復元する方法と、有理数の小数近似から有理数を復元する方法を紹介します。

授業サポートページ: https://www.math.tsukuba.ac.jp/~terui/compmath1-2018

2018-06-20

計算機演習(第10回)

今回から、プログラムのファイルを作って定義するような課題が出ています。今回は、関数定義を学んだ上で、リストの操作を中心とした課題に取り組んでいます。

2018-06-18

数理科学IIA(第9回)

今回は、「部分終結式の基本定理」の証明に向けた準備として、まず、前回紹介した補題の証明を行いました。つぎに、この補題を用いて、多項式剰余列の連続する3つの多項式と、部分終結式の関係(補題)を示しました。

次回は、部分終結式の基本定理(主定理)の証明を行う予定です。

計算機数学I (2018) 第9回:実数の連分数展開

今回は、拡張Euclid互除法の性質を紹介したのち、実数の連分数展開の計算について説明しました。まず、有理数の連分数展開について述べたのち、無理数の連分数近似について説明しました。

次回は、中国剰余定理と中国剰余算法について説明します。

授業サポートページ: https://www.math.tsukuba.ac.jp/~terui/compmath1-2018

2018-06-13

計算機演習(第9回)

計算機演習は、今週から、坂井公先生担当による、プログラミング言語Haskellの実習です。

今回は、Haskellの初回ですので、テキストエディタによるプログラムの作成、Haskellの対話環境による操作が中心です。

2018-06-11

数理科学IIA(第8回)

今回は、まず、部分終結式を1つの行列式で表す表現について説明しました。その後で、多項式の1回の除算における、剰余と部分終結式の関係について、補題の証明のアイデアまで説明しました。

次回は、今回紹介した補題を証明した上で、次の補題として、多項式剰余列の要素と部分終結式の関係を示す予定です。

計算機数学I (2018) 第8回:法逆元の計算

今回は、拡張Euclid互除法の性質に触れた後、拡張Euclid互除法の応用例として「法逆元の計算」を紹介しました。これは、剰余環の元が単元である(乗法の逆元をもつ)ときに、その逆元を計算するものです。

次回も、拡張Euclid互除法の性質に触れた後で、Euclid互除法の応用例として「有理数の連分数展開」を紹介する予定です。

授業サポートページ: https://www.math.tsukuba.ac.jp/~terui/compmath1-2018

2018-06-06

計算機演習(第8回)

今回は、Mathematica編の最終回ということで、フラクタル図形を描画するプログラミングを行いました。

これで、この授業の前半のMathematica編が一通り終わりました。今後の授業などの機会にMathematicaを活用されることを期待します。次回からはプログラミング言語Haskellの実習を行います。

2018-06-04

数理科学IIA(第7回)

今回は、前回に続くような計算例で、多項式剰余列に出てくる多項式の係数を、最初の入力多項式の係数を成分にもつ行列式で表す方法を説明した後で、部分終結式の定義を行いました。

次回からは、部分終結式と多項式剰余列の関係を明らかにする方向で説明を行います。

計算機数学I (2018) 第7回:拡張Euclid互除法

今回から、Euclid互除法の章に入りました。今回は、まず環や整域などの各種用語を確認した後で、Euclid互除法のアルゴリズムを説明し、ついで、拡張Euclid互除法のアルゴリズムを説明しました。

次回以降しばらくは、拡張Euclid互除法のいくつかの性質を取り上げ、拡張Euclid互除法を応用した各種アルゴリズムを紹介したいと思います。

授業サポートページ: https://www.math.tsukuba.ac.jp/~terui/compmath1-2018

2018-05-30

計算機演習(第7回)

今回は、プログラミングの初歩として「ルールベースドプログラミング」および「手続型プログラミング」の初歩に取り組みました。

次回がMathematica編の最終回になりますが、次回はフラクタル図形の描画を行い、Mathematica編全体のまとめにしたいと思います。

2018-05-28

数理科学IIA(第6回)

今回は、部分終結式の理論への導入として、1変数多項式の除算と、多項式の係数を成分にもつ行列の簡約の対応づけに関する説明を行いました。

次回は、今回の説明を発展させ、1変数多項式の多項式剰余列の各多項式を、最初に与えられた多項式の係数を成分にもつ行列の簡約で表す対応づけを観察し、部分終結式の導入に進みます。

計算機数学I (2018) 第6回:乗算,剰余つき除算

今回は、前半で、乗算を扱いました。1変数多項式の乗算のアルゴリズムと計算量を説明し、ついで多倍長整数の乗算のアルゴリズムと計算量を紹介しました。後半では、剰余つき除算、特に1変数多項式の剰余つき除算について説明しました。

次回は拡張Euclid互除法の話題に進みます。

授業サポートページ: https://www.math.tsukuba.ac.jp/~terui/compmath1-2018

2018-05-23

計算機演習(第6回)

今回は、前半で、不定積分、定積分、微分方程式の解法を扱いました。後半では、リストに対する様々な操作や計算の手法を紹介しました。

次回は、プログラミングの初歩に進みます。

2018-05-21

数理科学IIA(第5回)

今回は、1変数多項式環におけるEuclid互除法のアルゴリズム、および拡張Euclidアルゴリズムを紹介しました。

次回は、今回の内容を踏まえて、部分終結式の理論の導入に進みたいと思います。

計算機数学I (2018) 第5回:Horner法,数の10進・2進変換

今回は、1変数多項式に値を代入する Horner(ホーナー)法を取り上げました。まず、Horner法について説明し、そのアルゴリズムを紹介しました。 次に、Horner法の応用例として、非負整数の数の10進・2進変換、小数の10進・2進変換、2の補数で表された負の数の10進・2進変換を紹介しました。

次回は、1変数多項式や多倍長整数の乗算や除算を扱います。

授業サポートページ: https://www.math.tsukuba.ac.jp/~terui/compmath1-2018

2018-05-16

計算機演習(第5回)

今回は、微分に関連する内容を主に扱いました。関数定義、極限値の計算、導関数の計算などが中心でした。

次回は、積分に関連する内容を扱います。

2018-05-14

数理科学IIA(第4回)

今回は、前半では、前回の内容を受けまして、1変数多項式の四則演算の計算量を見積もりました。後半では、環の最大公約子 (GCD) について、定義を確認して準備を行いました。特に、単元に関する不定性を取り上げ、一意的なGCDの定義について述べました。

次回は、1変数多項式環における拡張Euclid互除法と多項式剰余列を扱います。

計算機数学I (2018) 第4回:多倍長整数の加算の計算量,1変数多項式の加算のアルゴリズム

今回は、アルゴリズムの計算量の見積もりについて説明し、多倍長整数の加算の計算量の見積もりを行いました。後半では、1変数多項式の表現について説明し、1変数多項式の加算の計算量について説明しました。

次回は、1変数多項式のHorner法とその応用について説明します。

授業サポートページ: https://www.math.tsukuba.ac.jp/~terui/compmath1-2018

2018-05-09

計算機演習(第4回)

今回は、Mathematicaで行列やベクトルの計算を行いました。リストによる行列やベクトルの表現、ベクトルや行列に対する計算、特に行列の対角化とべき乗の計算を行いました。後半では、リストを用いた規則的なデータの生成方法を紹介しました。

次回は微積分の計算を中心に行います。

2018-05-07

数理科学IIA(第3回)

今回は、前回の続きでアルゴリズムの制御構造について紹介した後、1変数多項式の四則演算のアルゴリズムについて説明しました。そして、計算量(時間計算量)の概念と見積もり方を紹介しました。

次回は、今回の内容を踏まえ、1変数多項式の四則演算の計算量の評価を行いたいと思います。

計算機数学I (2018) 第3回:多倍長整数の加算のアルゴリズム

今回は、(符号なし)多倍長整数の計算機上での表現と、加算のアルゴリズムについて説明しました。アルゴリズムの説明の準備として、CPUのレジスタやALU(算術論理演算ユニット)を紹介した後、アルゴリズムの擬似コードや制御構造について紹介したのち、多倍長整数の加算のアルゴリズムを説明しました。

次回は、計算量について説明し、今回アルゴリズムを提示した、多倍長整数の加算の計算量について議論する予定です。

授業サポートページ: https://www.math.tsukuba.ac.jp/~terui/compmath1-2018

2018-05-02

計算機演習(第3回)

今回は、前回の続編で、引き続き、数値の計算や方程式の解法といった、Mathematicaの基本的な操作を体験しました。関数(曲線や曲面)のパラメータ表示を用いたアニメーションの描画も行いました。

次回は線形代数の計算を取り上げる予定です。

2018-04-25

学位論文をオンラインで公開しました

このほど、私の学位論文をオンラインで公開しました。公開先は機関リポジトリの「つくばリポジトリ」です。

学位論文を提出したのはだいぶ前(といっても就職してから)で、オンラインで公開する意向はありましたが、出典の著作権表示など、調整したい部分もありました。加えて、現在では、参考文献のほとんどがオンラインで入手もしくはアクセス可能ですので、その辺の案内もつけたいと思っていました。

そこで、今回は、学位審査に提出したオリジナル版に加え、再フォーマット版を作りました。再フォーマット版では、論文本文の文言や数式はすべてオリジナルのままですが、上記の通り、出典の著作権表示を加え、参考文献のオンラインのリンク (DOIやURI) を可能な限り掲載しました。

公開先は以下の場所です。DOIも付与されましたが、実際にアクセスできるのは数日後になる見込みです。
更新(5月2日):DOI (Digital Object Identifier) も付与されました。

Symbolic-numeric algorithms for univariate polynomials
https://hdl.handle.net/2241/00151496
https://doi.org/10.15068/00151496

計算機演習(第2回)

先週はガイダンスでしたので、今日から端末を使っての授業が始まりました。昨年までは、Mathematicaの立ち上げなどを、口頭で説明しながら一斉に操作させていましたが、今年は、操作手順を解説する動画を作り、各自で作業してもらうようにしました。動画の効果はまだよく把握していませんが、個人に作業を任せても、必要に応じてティーチング・アシスタント (TA) の大学院生が個々の学生を助ける仕組みにしており、大きなトラブルはなかったようです。

次回は、今回に引き続き、Mathematicaの入門といった操作を行います。

2018-04-23

数理科学IIA(第2回)

今回は、多項式に関する記法、1変数多項式の擬除算、アルゴリズムの記法の一部について説明しました。

次回は、アルゴリズムの説明の続きを行い、計算量について説明する予定です。

計算機数学I (2018) 第2回:計算機上の数値の表現

今回は、計算機上の数値の表現として、整数と浮動小数を扱いました。

整数では、1ワードのメモリで表現する整数として、符号なし整数を符号つき整数を取り上げ、特に符号つき整数では、2の補数による表現について説明しました。浮動小数は、実数を1ワードのメモリで近似する方法の一つとして紹介し、丸め誤差、マシンイプシロンについても紹介しました。

次回は、複数のメモリでより多くの桁の整数を表す多倍長整数について説明します。

授業サポートページ: https://www.math.tsukuba.ac.jp/~terui/compmath1-2018

2018-04-18

計算機演習(第1回)

今年度も、春学期、数学類2年次対象の「計算機演習」の授業を担当します。授業は、数式処理システムMathematicaとプログラミング言語Haskellの実習です。私はMathematicaを担当します。

今回はガイダンスということで、授業内容や手続きについて説明しました。実際に端末を使った授業は次週から始めます。

2018-04-16

数理科学IIA(第1回)

本年度も、昨年度に引き続き、大学院数理物質科学研究科数学専攻の「数理科学IIA」(春学期)を担当することになりました。秋学期の「数理科学IIB」とあわせて、計算機代数(数式処理)のアルゴリズムや手法の紹介をします。

今学期は、多項式の四則演算をはじめとする基本事項と、1変数多項式の最大公約子 (GCD) 計算を扱います。この授業は、教育研究科の授業も兼ねていますが、教育系の学部出身で、アルゴリズムなどの授業の経験がない人もいる場合があるため、必要に応じて復習も行いながら授業を進めます。今年は、昨年に比べて受講者が大幅に増えたようです。

今回は、授業の内容紹介と、参考書や数式処理システムの紹介を行いました。次回から、多項式の四則演算のアルゴリズムの説明に入る予定です。

計算機数学I (2018) 第1回:計算機の基本構成

本年度も、数学類の「計算機数学I」を担当することになりました。この授業では、拡張Euclid互除法を軸にして、主に整数や多項式の計算を行う手法を紹介します。

今回は、初回ということで、計算機システムの説明(復習)を行いました。次回は、計算機上での数の表現について説明します。

授業サポートページ: https://www.math.tsukuba.ac.jp/~terui/compmath1-2018

2018-02-07

線形代数II (2017) 第14回:行列の対角化可能性

今回は、この授業の最後の講義ということで、正方行列が対角化可能な条件について説明しました。今回の授業は化学類対象で、数学が専門ではありませんので、定理の紹介にとどめ、それらの証明は教科書には書かれていますが、説明は省略しました。

これで、秋学期の一通りの講義を終えました。秋学期の内容の中心は、抽象的なベクトル空間と、その上での線形写像に対し、行列は線形写像を数ベクトル空間で表したものであり、行列の変形は、その行列が表す線形写像を、基底を変換して表したものであることを伝えようとしたつもりです。この講義の担当は初めてでしたので、その趣旨が伝わっているとよいのですが、今後、線形代数をさらに学んで使う人達には、今回の講義がそのための土台になることを、そうでない人達には、数学の文化に触れる経験の一つになることを望みます。受講者の皆さんの今後の活躍をお祈りいたします。

授業サポートページ: https://www.math.tsukuba.ac.jp/~terui/la2-2017

2018-01-31

線形代数II (2017) 第13回:行列の対角化

今回は、まず、前回の授業の補足説明を行いました。1つは、線形写像の表現行列に関する内容で、基底の変換行列と、ベクトルの成分表示の変換の関係について、より詳しく説明しました。もう1つは、グラム・シュミットの直交化法の説明を一部補足しました。

今回の授業内容としては、正方行列の対角化ということで、行列の固有値と固有ベクトルについて復習したのち、行列の固有空間の次元が行列の次元に等しい場合に、固有ベクトルを並べた行列を用いることで、固有値を対角成分にもつ対角行列に変換できることを示しました。

次回は、この授業の最後の講義になりますが、正方行列が対角化可能なための条件と、その他の補足事項について説明する予定です。

授業サポートページ: https://www.math.tsukuba.ac.jp/~terui/la2-2017

2018-01-30

数理科学IIB(第12回)

今回は、前回の1変数多項式のHensel構成の話を受けて、整数係数1変数多項式の因数分解全体の方法について説明しました。主な説明箇所は、Hensel構成の繰り返しの回数を、与えられた多項式の因子の係数の絶対値の上界から見積もる部分でした。

来週はプレ発表会の聴講のため、教室での授業は今回で終了となります。春学期から進めてきたこの授業ですが、計算機代数への理解が深まれば幸いです。授業中は、スライドや資料の内容について、多くの指摘をいただき、資料の改善に役立ちました。感謝いたします。参加者の皆さんの今後のご活躍をお祈りします。

2018-01-24

線形代数II (2017) 第12回:計量ベクトル空間

今回は、ベクトルの内積と計量ベクトル空間を導入し、内積について説明しました。そして、正規直交基底について説明し、それを求める方法として「グラム・シュミットの直交化法」を紹介しました。

次回は、行列の固有値と固有ベクトルの復習を行い、行列の対角化との関連について説明する予定です。

授業サポートページ: https://www.math.tsukuba.ac.jp/~terui/la2-2017

2018-01-23

数理科学IIB(第11回)

今回から、整数係数1変数多項式の因数分解のアルゴリズムの話題に入りました。今回は、1変数多項式のHensel構成のアルゴリズムについて説明しました。

次回は、Hensel構成を踏まえた、因数分解のアルゴリズム全体を解説します。

2018-01-10

線形代数II (2017) 第11回:線型写像の表現行列と基底の変換

今回は、前回の最後に説明した「線形写像の表現行列」を復習したのち、基底の変換によって線形写像の表現行列がどのように変化するかについて説明しました。そして、線形写像と次元に関する性質をいくつか紹介し、中でも重要なものの一つである「次元定理」についても説明しました。

次回は、計量ベクトル空間の話題に進む予定です。

授業サポートページ: https://www.math.tsukuba.ac.jp/~terui/la2-2017