2017-12-19

数理科学IIB(第10回)

今回は、前回に引き続き、Cantor-Zassenhausアルゴリズムの紹介で、後半の「同次因子分離分解」 (Equal Degree Factorization, EDF) の詳細を説明しました。EDFの部分は、係数体の標数が奇数の場合と偶数の場合で計算方法が若干変わるのが特徴です(原理はほぼ同じです)。

有限体上の1変数多項式の因数分解に関する話は今回で終わりです。授業は残り1か月ですが、残りの授業では、整数係数の1変数多項式、多変数多項式の因数分解のアルゴリズムを紹介する予定です。

2017-12-13

線形代数II (2017) 第10回:ベクトル空間の線形写像 (2)

今回は、前回に引き続き、ベクトル空間の線形写像について説明しました。まず、前回の授業で説明が残った「任意のn次元ベクトル空間が同型である」性質(定理)の証明を紹介しました。そして、線形写像の表現行列の構成法を紹介しました。

次回からは、ベクトル空間の基底の変換について触れたのち、計量ベクトル空間の内積の話題に進む予定です。

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

2017-12-12

数理科学IIB(第9回)

今回から、有限体上の1変数多項式のもう一つのアルゴリズムである Cantor-Zassenhaus アルゴリズムの紹介に入りました。このアルゴリズムは、「因子次数分離分解」 (Distinct Degree Factorization, DDF) と「同次因子分離分解」 (Equal Degree Factorization, EDF) から構成されています。

今回は、最初の段階のDDFについて解説し、EDFの概要を述べました。次回はEDFの詳細について説明する予定です。

2017-12-06

線形代数II (2017) 第9回:ベクトル空間の線形写像

今回は、前回授業で残った、直和の次元に関する公式について説明を行い、ベクトル空間の線形写像に進みました。線形写像の定義は数ベクトル空間の場合と同じですので手短に説明を終え、同型写像と同型の概念を紹介しました。そして「任意のn次元ベクトル空間が同型である」性質を紹介しましたが、証明は間に合いませんでした。

次回は、今回最後に紹介した「任意のn次元ベクトル空間が同型である」性質の証明を行い、表現行列の説明を行った後で、計量ベクトル空間に進む予定です。

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

2017-12-05

数理科学IIB(第8回)

今回は、Berlekampの因数分解アルゴリズムの補足事項として、f-reducing polynomialの最小多項式の根を求めることで、f の既約因子を効率的に分離できることを紹介し、計算例を示しました。

Berlekampの因数分解アルゴリズムの説明はこれで一段落し、次回からは、有限体上の1変数多項式の因数分解のための確率的アルゴリズムである Cantor-Zassenhaus アルゴリズムの説明に進みます。

2017-11-27

線形代数II (2017) 第8回:部分空間の和と直和

今回は、主にベクトル空間の部分空間の和と直和について説明しました。

授業では、まず、前回説明したベクトル空間の次元の性質で説明が残った部分から始め、基底の拡張に関する性質について説明しました。それから、部分空間の和と直和の定義を行い、和と直和の性質について説明しました。

次回は、今回説明が残った、直和の次元に関する公式について説明を行ったのち、ベクトル空間の線形写像の話題に進みます。

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

2017-11-22

線形代数II (2017) 第7回:ベクトル空間の次元

今回は、ベクトル空間の次元について説明しました。

授業では、まず次元の定義について説明しました。次に、次元や基底の計算例として、以前のレポート課題を取り上げ、部分空間の生成元から基底と次元を計算する例を説明しました。そして、次元に関する性質のうち、基底の変換行列について紹介しました。

次回は、次元に関する性質で今回残った部分の説明から始め、部分空間の和と直和の話題に進みます。

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

2017-11-21

数理科学IIB(第7回)

今回は、前回の f-reducing polynomial の計算例を数式処理システムMapleでの計算で示した後、f-reducing polynomialを用いて、与えられた多項式の既約因子を抽出する部分について説明しました。

次回は、Berlekampの因数分解に関する補足的事項について触れた後、有限体上の1変数多項式のもう一つのアルゴリズムとして知られるCantor-Zassenhausアルゴリズムに進む予定です。

2017-11-15

線形代数II (2017) 第6回:ベクトル空間の基底

今回は、ベクトル空間の基底について説明しました。前半では基底の定義を説明したのちに、基底になるベクトルの組、基底にならないベクトルの組を例題で確かめました。

後半では、基底の重要な性質について説明しました。特に、「有限生成でゼロベクトルでないベクトルを元に持つベクトル空間には基底が存在する」という定理については、証明のアウトラインも説明しました。

今回はベクトル空間の次元の説明まで進みませんでしたので、次回はベクトル空間の次元に進みます。

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

2017-11-14

数理科学IIB(第6回)

今回は、前回の内容を受け、f-reducing polynomial を計算するための行列の零空間を計算する方法について説明しました。これには、行列の Traiangular Idempotent Form を求めることで計算できます。

次回は、求まった f-reducing polynomial から実際に多項式の既約因子を取り出す方法について説明します。

2017-11-08

線形代数II (2017) 第5回:ベクトルの線形独立と線形従属

今回は、ベクトル空間の基本的性質の説明を行い、次に部分空間の定義、そしてベクトルの線形独立と線形従属の定義について説明しました。

次回は、ベクトル空間の基底と次元について説明する予定です。

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

2017-11-07

数理科学IIB(第5回)

今回は、有限体上の1変数多項式の因数分解を行うBerlekampのアルゴリズムから、f-reducing polynomial の存在性と計算法について説明し、f-reducing polynomial の計算が、ある行列の零空間の計算に帰着されることを示しました。

次回は、その行列の零空間の計算について詳しく論じます。

2017-10-31

数理科学IIB(第4回)

今回は、有限体、および有限体上の1変数多項式を扱う上で、よく使う定理(Fermatの小定理など)を紹介したのち、有限体上の1変数多項式の因数分解のアルゴリズムの一つとして、Berlekampアルゴリズムの説明に入りました。今回は、アルゴリズムの流れと数学的背景について説明しました。

次回は、Berlekampアルゴリズムについて、引き続き説明します。

2017-10-25

線形代数II (2017) 第4回:一般のベクトル空間

今回は、まず前回の続きとして、線形写像による基本ベクトルの像が、その線形写像の像空間 (image) を生成することを紹介しました。

次に、一般のベクトル空間の話題に入り、ベクトル空間の定義と例について説明しました。

次回は、ベクトル空間の部分空間や有限生成の説明を行ったのち、ベクトル空間の基底の話題に進みます。

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

2017-10-24

数理科学IIB(第3回)

今回は、有限体上の1変数多項式の無平方分解のアルゴリズムについて説明しました。有限体上の多項式では、次数が標数の倍数である項や、重複度が標数の倍数である因子を微分すると0になるため、無平方分解の場合は、これらの項や因子の扱いに注意が必要です。

次回からは、有限体上の1変数多項式の因数分解について説明します。

2017-10-18

線形代数II (2017) 第3回:線形結合と部分空間

今回は、まず、前回までの復習として、集合、単射、全射の概念を復習しました。次に、ベクトルの線形結合全体が部分空間をなす事実について説明しました。

次回は、線形写像による基本ベクトルの像がなす部分空間について説明したのち、一般のベクトル空間の説明に進む予定です。

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

2017-10-17

数理科学IIB(第2回)

今回は、標数0の体上の1変数多項式の無平方分解のアルゴリズムを紹介し、計算量の見積もりなどについて説明しました。

次回は、有限体上の1変数多項式の無平方分解のアルゴリズムについて説明します。

2017-10-11

線形代数II (2017) 第2回:線形写像の像と核

今回は、まず前回に引き続き、数ベクトル空間の線形写像と行列の関係について説明しました。続いて、数ベクトル空間の部分空間の定義を行い、線形写像の像と核の集合が部分空間になることを紹介しました。

次回は、ベクトルの線形結合が部分空間をなすことや、線形写像による基本ベクトルの像が生成する部分空間について説明します。

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

2017-10-04

線形代数II (2017) 第1回:数ベクトル空間の線形写像

本年度秋学期は、化学類対象の「線形代数II」の講義を担当します。

第1回となる今回は、授業全体の予定を説明したのち、数ベクトル空間の定義の復習、数ベクトル空間の線形写像の定義、線形写像と行列の関係について説明しました。

これまで担当した講義では、録画を公開しておりますが、今回は、初の試みとして、1回の講義の録画をテーマごとに小分けにして公開します。これまでよりも必要な部分の録画が探しやすくなることを期待しますが、ご意見ご要望がございましたらお寄せください。

次回は、線形写像と行列の関係について補足説明ののち、部分空間の定義から先に進む予定です。

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

2017-10-03

数理科学IIB(第1回)

今学期は、大学院数理物質科学研究科数学専攻の「数理科学IIB」を担当します。

内容は、春学期の「数理科学IIA」に引き続き、計算機代数の題材を扱いますが、今学期は、多項式の因数分解を扱います。内容は以下を予定しています。

  • 1変数多項式の無平方分解
  • 有限体上の1変数多項式の因数分解
  • Hensel構成と整数上の1変数多項式の因数分解
  • 一般Hensel構成と整数上の多変数多項式の因数分解

差し当たり、今回は、1変数多項式の無平方分解の定義からスタートしました。次回は標数0の体上の無平方分解のアルゴリズムに入ります。

2017-07-18

計算機数学I (2017) 第13回:除算アルゴリズムとその計算量

今回は、前回の内容に関連する内容として、除算のアルゴリズムと計算量に関する補足説明を行いました。

前回「行列積の法計算」では、中国剰余算法を用いて整数を成分にもつ行列の乗算の効率化を図る手順を紹介しましたが、その中で、中国剰余算法の計算量に触れました。そこで、今回は、これに関連して、1変数多項式の除算の計算量、多倍長数を単精度数で割る除算のアルゴリズムとその計算量について紹介し、中国剰余算法の計算量の導出を行いました。

以上、春学期の授業を通して、多倍長数や1変数多項式の四則演算のアルゴリズムと計算量や、拡張Euclid互除法のアルゴリズムとその応用を中心に紹介してきました。代数的な計算のアルゴリズムへの理解を深めていただければと思います。

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

2017-07-11

数理科学IIA(第14回)

今回は、前回に引き続き、数式処理に関連するいくつかのテーマを取り上げました。

まず、ある履修者の人が現在取り組んでいるという、openFrameworksというC++のツールキットについて紹介してもらいました(現在、openFrameworksを使った映像制作を行っているようです)。

次に、学類3年で私の学類の授業を履修している人ですが、Haskellで、多変数多項式の演算と、Groebner (グレブナー)基底を計算するBuchberger(ブッフバーガー)アルゴリズムを実装したというので、紹介してもらいました。

最後に、私の話題で、1階述語論理式の量化子消去 (QE) を用いた大学入試問題の解法について、その概要を紹介しました。

2017-07-10

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

今回は、モジュラー算法 (modular algorithm) の一例として、「行列積の法計算」を紹介しました。

「モジュラー算法」は、ある特徴をもつアルゴリズムの総称ですが、計算途中に多倍長数が現れるアルゴリズムを、いくつかの互いに素な、より小さい数を法とする剰余環上で計算し、最後に中国剰余定理を用いて、整数上の解答の係数を計算するものです。今回は、行列積の計算を例に取り上げ、モジュラー算法によって計算の効率化が図られることを紹介しました。

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

2017-07-05

計算機演習(第12回)

今回はHaskell編の4回目ですが、Haskellの型クラスと、主にパターンマッチを用いた関数定義の手順について学んでいます。

2017-07-04

数理科学IIA(第13回)

今回は、数式処理に関する種々の話題から、私の専門分野である「数式・数値融合計算」を取り上げ、近似最大公約子 (GCD) のアルゴリズム研究の経過や動向について解説しました。

次回も、数式処理に関する種々の話題から、テーマを取り上げて解説する予定です。

2017-07-03

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

今回は、拡張Euclid互除法の応用の一つとして、有理数の再構成を紹介しました。具体的な応用方法は2種類あり、1つは、有理数演算を剰余環に埋め込んで計算し、計算結果から有理数の計算結果を復元するもの、もう1つは、小数で近似された有理数からもとの有理数の既約分数表現を求めるものです。

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

2017-06-28

計算機演習(第11回)

今回はHaskell編の3回目ですが、Haskellの基本型、「リスト」や「タプル」といったデータの扱い、それらを用いた関数の定義などについて学んでいます。

2017-06-27

数理科学IIA(第12回)

今回は、部分終結式の基本定理を用いた係数膨張の防止策として、縮小PRS算法 (Reduced PRS Algorithm) および部分終結式PRS算法 (Subresultant PRS Algorithm) を紹介しました。

次回以降は、多項式剰余列やGCD計算に関連する話題を紹介したいと思います。

2017-06-26

計算機数学I (2017) 第10回:中国剰余定理

今回は、拡張Euclid互除法の応用例の一つとして、中国剰余定理による連立線形合同式の解法を取り上げました。

次回も、拡張Euclid互除法の応用例の一つとして、有理数の再構成の計算を紹介します。

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

2017-06-20

数理科学IIA(第11回)

今回は、部分終結式の基本定理の証明を行いました。

次回は、部分終結式の基本定理を用いた多項式剰余列の係数膨張の改善(防止)策について説明します。

2017-06-19

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

今回は、Euclid互除法の応用例の一つとして、実数の連分数展開を取り上げました。

連分数は、数学の理論や計算の分野でしばしば用いられており、例として、初期の円周率の近似値の計算でも用いられています。

与えられた数が有理数の場合は、Euclid互除法を用いて、その連分数展開を求めることができます。与えられた数が無理数の場合は、Euclid互除法は使えませんが、有理数の連分数展開と同様、与えられた数を整数部と小数部に分けることで、有理数と同様の連分数近似を求めることができます。

次回は、拡張Euclid互除法の応用例の一つとして、中国剰余定理を取り上げます。

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

2017-06-14

計算機演習(第9回)

前週は出張により、授業を坂井先生とTAの皆さんにお願いしましたが、前週でMathematica編が終了しました。Mathematica編の最終回は、タートルグラフィクスによるフラクタル図形の描画を行いました。

今週から、坂井先生が担当するHaskell編に入りました。第1回目となる今回は、Haskellの言語環境の起動と対話的操作、テキストエディタの起動などから始まりました。

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

今回は、拡張Euclid互除法の性質について触れるとともに、応用の一つとして「法逆元の計算」を紹介しました。これは、剰余環で与えられた元に乗法の逆元が存在する際に、その逆元を拡張Euclid互除法を用いて効率的に計算するものです。

次回も、拡張Euclid互除法の応用例を紹介していきます。

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

2017-06-13

数理科学IIA(第10回)

今回も、部分終結式と多項式剰余列の関係を示した「部分終結式の基本定理」の証明に向けて、2つ目の補題を説明しました。前回の補題は、1回の多項式除算に関するものでしたが、今回は、それを、多項式剰余列の中の計算に当てはめたものです。

次回は「部分終結式の基本定理」の証明を行う予定です。

2017-06-08

「ロボットは数学の大学入試問題をどうやって解くか?」

このたび、千葉県高等学校教育研究会数学部会の平成29年度総会・春季研究大会において、標記の講演の機会をいただきました。

今回の会場は千葉県茂原市の千葉県立長生高校で、今年創立130周年を迎えるという伝統校です。最初、このお話をいただいた際に、過去の講演者のリスト(部会のホームページに過去の記録が掲載されています)を見たところ、錚々たる顔ぶれで、自分も話を聴きたいような先生方ばかりでした。そのような中で、自分にどんな話ができるだろうと考えた結果、これまで共同研究に参加させていただいている「東ロボ」に関連し、数式処理で数学の演習/入試問題を解く手法の紹介を行うことにしました。

講演では、「東ロボ」のプロジェクトの概要の紹介、数学ソルバによる解答の流れの紹介を行った後、「実閉体上の一階述語論理式の量化子消去 (Quantifier Elimination; QE)」に焦点を当て、「実閉体上の一階述語論理式」とはどんなものか、QEとはどのようなことを行うものかを紹介しました。この中では、オンラインで使える数式処理システム CoCalc 上で、QEパッケージの QEPCAD を使ったQEの計算も紹介しました。本当は直接オンラインでデモンストレーションをやりたかったのですが、残念ながらインターネット接続がうまくいかなかったので、あらかじめファイルに保存しておいた計算セッションを見せながら紹介しました。

そして、QEの汎用アルゴリズムの一つである Cylindrical Algebraic Decomposition (CAD) の紹介を行いました。もちろんCADの全体像を説明する時間はありませんから、今回は、CADの要素として、1) 与えられた多項式の値が正、0、負になる領域を調べること、2) しかし、各変数ごとにすべての値を調べるのは原理的に無理なので、与えられた多項式の実零点が重なったり、実零点の個数が変化したりする特徴的な部分を調べること、3) そのために、与えられた多項式の終結式や判別式を求めること、4) その上で、1変数代数方程式の実零点の数え上げを行うこと、を説明しました。そして、1変数代数方程式の実零点の数え上げの方法としてSturm法を紹介しました。

こんな形で今回の講演を行いましたが、講演後の高校の先生方との意見交換では、いろいろと貴重なお話も伺い、大変有意義な時間になりました。今回、このような機会を作ってくださった皆様に感謝申し上げます。なお、今回のような内容の講演や、この内容に興味/関心を持つ高校生の人達とのQE計算の実習など、ご希望がございましたら、時間が許す範囲でお応えしたいと思います。

2017-06-06

数理科学IIA(第9回)

今回は、部分終結式と多項式剰余列の関係を示した「部分終結式の基本定理」の証明に向けた、最初の補題を説明しました。

次回も引き続き「部分終結式の基本定理」の証明に向けた説明を行う予定です。

2017-06-05

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

今回は、Euclid互除法および拡張Euclid互除法のアルゴリズムについて説明しました。前提となる環の基本事項は既知として話を進めます(必要事項は一通りテキストにも載っています)。

次回からは拡張Euclid互除法の応用例を紹介していきます。

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

2017-05-31

計算機演習(第7回)

今回は、Mathematica編の第6回ということで、「ルールベースドプログラミング」および「手続き型プログラミング」を取り上げ、Mathematicaによるプログラミングの初歩を紹介しました。

次回は、Mathematica編の最終回ということで、フラクタル図形の描画を行います。

2017-05-30

数理科学IIA(第8回)

今回は、前回導入した部分終結式の定義に関連する事項として、部分終結式を1つの行列式で表す表示について説明しました。

次回からは、部分終結式と多項式剰余列の要素である多項式の関連について、「部分終結式の基本定理」を目標に説明していきます。

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

今回は、まず、1変数多項式と多倍長整数の乗算のアルゴリズムと計算量評価について説明しました。引き続いて、整数の剰余つき除算の用語の定義などを確認し、1変数多項式の剰余つき除算のアルゴリズムについて説明しました。計算量評価は授業後のレポート課題としています。

今回でテキストの第2章は終わりです。次回からは第4章「ユークリッド互除法」に進みます。

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

2017-05-24

計算機演習(第6回)

今回は、前回に引き続き、微積分の計算で、今回は特に積分の計算を扱いました。その他、リストに対する様々な操作も扱いました。

次回は簡単なプログラミングの話題を扱います。

2017-05-23

数理科学IIA(第7回)

今回は、前回の続きで、多項式剰余列の各多項式の係数を、与えられた多項式の係数を成分とする行列式で表す計算を例題で説明しました。その後、部分終結式の定義を行いました。

次回は、部分終結式の別の定義方法として、1つの行列式による定義から説明したいと思います。

2017-05-22

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

今回は、1変数多項式の加算のアルゴリズムに付随する話題として、Horner法と数の10進・2進変換の方法について話しました。

Horner法は1変数多項式値を導入して評価するための効率的な方法の一つで、高校数学などでも習ったりする「組立除法」が実はHorner法でもあります。そして、数の10進・2進変換も、Horner法のアイデアに基いて行うことができます。

授業では、Horner法のアルゴリズムと計算量について説明しました。数の10進・2進変換では、まず、非負整数の10進・2進変換を行い、ついで、2進の循環小数を10進の有理数に変換する手順、10進の有理数や無理数を2進数に変換する手順について説明しました。

次回は、1変数多項式や多倍長整数の乗算のアルゴリズムに進みます。

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

2017-05-17

計算機演習(第5回)

今回は、Mathematicaにおける関数定義と、微積分のうち主に微分の計算として、関数の極限値、導関数、Taylor展開の計算を扱いました。

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

2017-05-16

数理科学IIA(第6回)

今回は、部分終結式の導入に向けた計算として、1変数多項式の擬剰余の係数が、被除多項式と除多項式の係数を成分とする行列式で表される性質について説明しました。

次回は、より進んだ計算例として、多項式剰余列の各多項式の係数を、最初に与えられる多項式の係数で表す計算について説明したいと思います。

2017-05-15

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

今回は、計算量の概念について説明したのち、前回紹介した、多倍長整数の加算のアルゴリズムの計算量について説明しました。その後、1変数多項式の表現と加算のアルゴリズムについて説明しました。

次回は、1変数多項式の加算に関連する話題として、1変数多項式に値を代入して評価する方法の一つであるHorner法の説明から進みます。

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

2017-05-10

計算機演習(第4回)

前回授業の際はMathematicaのライセンスが切れてご迷惑をおかけしましたが、翌日にはライセンスも復旧し、今回は通常通りの授業を行いました。

今回は、リストを用いたベクトルや行列の表現、線形代数の計算、Tableによるリストの生成を中心に扱いました。

次回は微積分の内容を扱います。

2017-05-09

数理科学IIA(第5回)

今回は、1変数多項式の多項式剰余列と拡張Euclid互除法を紹介しました。

次回は、1変数多項式の部分終結式の紹介から進みたいと思います。

2017-05-08

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

今回は、(符号なし)多倍長整数の計算機上での構成と、その加算のアルゴリズムについて説明しました。計算機上での数の加算のための補足として、CPUのレジスタ、ALU(算術論理演算ユニット)を紹介しました。また、アルゴリズムの補足として、アルゴリズムの概念と、疑似コードの書き方について説明しました。

今回の授業時のレポート課題は難度がやや高かったようですので、来週までの宿題としました。次回の授業冒頭時に回収します。次回は、今回説明した多倍長整数の加算の計算量について説明します。

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

2017-05-02

数理科学IIA(第4回)

前回の授業の際、1変数多項式の四則演算のアルゴリズムで、受講者の皆さんからアルゴリズムの不備に関する指摘をいろいろといただきました。ご指摘に感謝します。今回は、それらの指摘を踏まえたアルゴリズムの修正を示しながら、1変数多項式の四則演算の時間計算量の見積もりについて説明しました。

その後、1変数多項式の最大公約子 (GCD) の話題の準備として、今回は、GCDや最小公倍子 (LCM) の定義を復習しました。次回は、1変数多項式のGCDや、その計算にも使われる、多項式剰余列などの説明に進みたいと思います。

2017-05-01

計算機演習(第3回)

今日の授業では、全学サテライトのMathematicaのライセンスがちょうど昨日で切れており、Windows版のMathematicaを使うことができませんでした。学術情報メディアセンターの説明で、Ubuntu (Linux) 版のMathematicaは起動できましたが、日本語の入力ができない状態でした。履修者の皆さんにご不便をおかけしたことをお詫びします。

そのような状況下でしたが、今日は、前回に引き続いてMathematicaの基本的機能の紹介で、連立方程式の解法、グラフィクスのオプション、アニメーションなどを扱いました。前回のレポートの締め切りは今日としておりましたが、締切日の今日になってMathematicaが正常に使えませんでしたので、前回と今回のレポートの締切を次回授業美の5月10日とします。

2017-04-26

計算機演習(第2回)

今回から実際に端末を使った授業が始まりました。今年はシステムが入れ替わって一新されましたが、特にトラブルもなく、授業が進みました。システムに入っているMathematicaもバージョンが上がって11になりました。

今回は、e-ラーニングシステムの操作と内容の説明、Mathematicaの操作の説明を一通り行った後で、数の四則演算、代数方程式の解法、グラフ描画などに取り組みました。次回は日程が変則的になりますが、5月1日(月)に水曜日の授業日として実施されます。

2017-04-25

数理科学IIA(第3回)

今回は、アルゴリズムの中でも制御構造の代表的なものを復習した上で、1変数多項式の四則演算のアルゴリズムについて説明しました。アルゴリズムの説明では誤記や説明不足と思われる点を受講者の皆さんにいくつか指摘していただきました。有益なご指摘に感謝します。

授業の後半では、アルゴリズムの計算量(特に時間計算量)について説明しました。次回は、この説明を受けて、1変数多項式の四則演算の計算量の見積もりについて議論したいと思います。

2017-04-24

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

今回は、計算機上数値の表現について説明しました。主に、1ワードで表す符号なし整数、2の補数による符号つき整数、浮動小数点数(浮動小数)の紹介を行いました。

浮動小数の説明の部分で、現在の計算機で広く用いられている浮動小数規格として "IEEE 754" 浮動小数規格の説明を行いましたが、この説明(口頭とスライド)において、規格名を "IEEE 745" と誤った説明をしてしまいました。お詫びして訂正します。

次回は、より桁数の大きな整数の表現と演算の話題から説明します。

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

2017-04-19

計算機演習(第1回)

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

今日はガイダンスで、授業の進め方や単位の取り方等について説明し、スタッフの紹介を行いました。実際の授業は来週から行います。なお、この春に本学の全学計算機システムが更新されました。新しい計算環境にも期待したいと思います。

2017-04-18

数理科学IIA(第2回)

今回は、多項式演算の導入の前に、Eulid整域や一意分解整域 (Principal Ideal Domain: PID) などの定義を確認しました。その上で、アルゴリズムの導入として、アルゴリズムの性質や、疑似コードの導入を行いました。

次回は、アルゴリズムの制御構造を復習し、1変数多項式の加減乗除のアルゴリズムと計算量について議論します。

2017-04-17

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

本年度も、数学類の専門科目「計算機数学I」を担当することになりました。この授業では、主に代数計算、特にEuclidの互除法を軸にしながら、アルゴリズムに基づいて計算を行うための数学について説明します。授業では、アルゴリズム、データの表現、計算量の議論もしながら進めていきます。

まずは、計算機の構成(しくみ)の復習ということで、実際にパソコンの蓋を開けて中を見ながら説明しました。それから、メモリの配置や計算機の「ワード」の説明を行いました。

昨年度からの授業の進め方の大きな変更点として、スライドの導入があります。基本的な説明はスライドで行います。板書をノートに写す時間が短縮されますので、余った時間で、その日の授業に関するテーマの演習問題を解いて復習するという段取りです。当面は、この方法で授業を行い、学習効果を見極めたいと思います。授業の録画はこれまで通り公開する予定です。

次回は、計算機による数値や数式の表現について説明します。

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

2017-04-13

筑波大学 人工知能科学センターが発足

この4月1日付で「筑波大学人工知能科学センター (Center for Artificial Intelingence Research, C-AIR)」が発足し、本日、最初の研究員会議に出席しました。

ここ数年、人工知能は新たな流行となっており、各大学や研究機関でも人工知能の研究センターを設けるなど、研究を活発化させているようですが、本学でも、全学の研究センターを設けることになり、昨年、キックオフのイベントが開かれました。そして、本年度から「人工知能科学センター」としてスタートしました。

センターには、発足時点で、全学から37名の研究者が研究員として集まっています。出身分野も多岐にわたり、数理科学、情報科学、情報工学、生命科学、医療科学、体育、芸術、メディアアートなど、多彩な顔ぶれです。私も縁がありまして、数理物質系から参加することになりました。

現時点ではwebサイトの構築もこれからだそうですが、徐々に情報が出てくるものと思われます。本番はこれからどのような研究を進めて成果につなげるかということだと思いますが、今後、センターの方々と研究に関わりながら、人工知能関連技術の新たな可能性を探っていきたいと思います。

2017-04-11

数理科学IIA(第1回)

今年度、久々に大学院の授業を担当することになりました。春学期の「数理科学IIA」、秋学期の「数理科学IIB」で、計算機代数(数式処理)の手法やアルゴリズムの紹介をします。

春学期の「数理科学IIA」では、まず準備として、多項式の四則演算のアルゴリズムと計算量について説明します。引き続いて、1変数多項式の最大公約子(GCD)を取り上げ、部分終結式アルゴリズムの説明が中心になると思います。

この授業科目は、教育研究科 教科教育専攻 数学教育コースでもコードシェアで開講しています(春学期秋学期)が、今年度は諸般の事情により、数学教育の受講者はいないようです。数学専攻の受講者は数名ですが、腕と個性のある人が揃っているようですので、これからの授業を楽しみにしたいと思います。

2017-03-06

筑波大学計算機数学グループ 春の合宿 2017 in 館山

3月4日から6日にかけて、毎年恒例の研究グループのセミナー合宿を、千葉県館山市の筑波大学館山研修所にて行いました。

この合宿は、私が学部生の頃から続いているもので、計算機数学グループの学部生、大学院生、教員、卒業生や、その関係者が集まり、勉強や情報交換をしつつ親睦を深めるものです。今年は、34人の人達が参加しました。参加者が30人を超えたのはたぶん史上初のことです。

セミナーで話す「標準的な」内容は、学部3年生は自分の興味のあるテーマの話題、学部4年生は卒業研究の内容、大学院生や教員はは自身の研究内容、修士論文や博士論文を提出した人はその内容、卒業生は現在の自分の仕事や生活の話題といった具合です。実際にはこのような枠にはまるとは限らず、皆さん工夫した話題とプレゼンテーションを提供されるので、どの話も非常に興味深く聴いています。

夜は「シンポジウム」(懇親会)が行われます。現在一緒にグループを運営している先生の影響で、カードゲームやボードゲーム、各種数学パズルも盛んに行われますし、いろいろな話でも盛り上がります。今年は人数が多かったためか、特に盛り上がっていたような気がします。

こうした集まりを通して、研究の話題にとどまらず、いろいろな情報交換をし、お互いの人柄を知る機会として、今年も非常に有意義な合宿になったと思います。参加された方々、セミナーの中継を視聴された方々に感謝するとともに、来年も館山でお会いできるのを楽しみにしています。