今回は、前回導入した部分終結式の定義に関連する事項として、部分終結式を1つの行列式で表す表示について説明しました。
次回からは、部分終結式と多項式剰余列の要素である多項式の関連について、「部分終結式の基本定理」を目標に説明していきます。
お気楽さんすう屋さんateruiの小技とお知らせのまとめです。
"easy arithmetician" aterui's spot for tips and announcements.
今回は、前回導入した部分終結式の定義に関連する事項として、部分終結式を1つの行列式で表す表示について説明しました。
次回からは、部分終結式と多項式剰余列の要素である多項式の関連について、「部分終結式の基本定理」を目標に説明していきます。
今回は、まず、1変数多項式と多倍長整数の乗算のアルゴリズムと計算量評価について説明しました。引き続いて、整数の剰余つき除算の用語の定義などを確認し、1変数多項式の剰余つき除算のアルゴリズムについて説明しました。計算量評価は授業後のレポート課題としています。
今回でテキストの第2章は終わりです。次回からは第4章「ユークリッド互除法」に進みます。
授業サポートページ: https://www.math.tsukuba.ac.jp/~terui/compmath1-2017
今回は、前回の続きで、多項式剰余列の各多項式の係数を、与えられた多項式の係数を成分とする行列式で表す計算を例題で説明しました。その後、部分終結式の定義を行いました。
次回は、部分終結式の別の定義方法として、1つの行列式による定義から説明したいと思います。
今回は、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
今回は、Mathematicaにおける関数定義と、微積分のうち主に微分の計算として、関数の極限値、導関数、Taylor展開の計算を扱いました。
次回は積分の計算を中心に扱います。
今回は、部分終結式の導入に向けた計算として、1変数多項式の擬剰余の係数が、被除多項式と除多項式の係数を成分とする行列式で表される性質について説明しました。
次回は、より進んだ計算例として、多項式剰余列の各多項式の係数を、最初に与えられる多項式の係数で表す計算について説明したいと思います。
今回は、計算量の概念について説明したのち、前回紹介した、多倍長整数の加算のアルゴリズムの計算量について説明しました。その後、1変数多項式の表現と加算のアルゴリズムについて説明しました。
次回は、1変数多項式の加算に関連する話題として、1変数多項式に値を代入して評価する方法の一つであるHorner法の説明から進みます。
授業サポートページ: https://www.math.tsukuba.ac.jp/~terui/compmath1-2017
前回授業の際はMathematicaのライセンスが切れてご迷惑をおかけしましたが、翌日にはライセンスも復旧し、今回は通常通りの授業を行いました。
今回は、リストを用いたベクトルや行列の表現、線形代数の計算、Tableによるリストの生成を中心に扱いました。
次回は微積分の内容を扱います。
今回は、(符号なし)多倍長整数の計算機上での構成と、その加算のアルゴリズムについて説明しました。計算機上での数の加算のための補足として、CPUのレジスタ、ALU(算術論理演算ユニット)を紹介しました。また、アルゴリズムの補足として、アルゴリズムの概念と、疑似コードの書き方について説明しました。
今回の授業時のレポート課題は難度がやや高かったようですので、来週までの宿題としました。次回の授業冒頭時に回収します。次回は、今回説明した多倍長整数の加算の計算量について説明します。
授業サポートページ: https://www.math.tsukuba.ac.jp/~terui/compmath1-2017
前回の授業の際、1変数多項式の四則演算のアルゴリズムで、受講者の皆さんからアルゴリズムの不備に関する指摘をいろいろといただきました。ご指摘に感謝します。今回は、それらの指摘を踏まえたアルゴリズムの修正を示しながら、1変数多項式の四則演算の時間計算量の見積もりについて説明しました。
その後、1変数多項式の最大公約子 (GCD) の話題の準備として、今回は、GCDや最小公倍子 (LCM) の定義を復習しました。次回は、1変数多項式のGCDや、その計算にも使われる、多項式剰余列などの説明に進みたいと思います。
今日の授業では、全学サテライトのMathematicaのライセンスがちょうど昨日で切れており、Windows版のMathematicaを使うことができませんでした。学術情報メディアセンターの説明で、Ubuntu (Linux) 版のMathematicaは起動できましたが、日本語の入力ができない状態でした。履修者の皆さんにご不便をおかけしたことをお詫びします。
そのような状況下でしたが、今日は、前回に引き続いてMathematicaの基本的機能の紹介で、連立方程式の解法、グラフィクスのオプション、アニメーションなどを扱いました。前回のレポートの締め切りは今日としておりましたが、締切日の今日になってMathematicaが正常に使えませんでしたので、前回と今回のレポートの締切を次回授業美の5月10日とします。
今回から実際に端末を使った授業が始まりました。今年はシステムが入れ替わって一新されましたが、特にトラブルもなく、授業が進みました。システムに入っているMathematicaもバージョンが上がって11になりました。
今回は、e-ラーニングシステムの操作と内容の説明、Mathematicaの操作の説明を一通り行った後で、数の四則演算、代数方程式の解法、グラフ描画などに取り組みました。次回は日程が変則的になりますが、5月1日(月)に水曜日の授業日として実施されます。
今回は、アルゴリズムの中でも制御構造の代表的なものを復習した上で、1変数多項式の四則演算のアルゴリズムについて説明しました。アルゴリズムの説明では誤記や説明不足と思われる点を受講者の皆さんにいくつか指摘していただきました。有益なご指摘に感謝します。
授業の後半では、アルゴリズムの計算量(特に時間計算量)について説明しました。次回は、この説明を受けて、1変数多項式の四則演算の計算量の見積もりについて議論したいと思います。
今回は、計算機上数値の表現について説明しました。主に、1ワードで表す符号なし整数、2の補数による符号つき整数、浮動小数点数(浮動小数)の紹介を行いました。
浮動小数の説明の部分で、現在の計算機で広く用いられている浮動小数規格として "IEEE 754" 浮動小数規格の説明を行いましたが、この説明(口頭とスライド)において、規格名を "IEEE 745" と誤った説明をしてしまいました。お詫びして訂正します。
次回は、より桁数の大きな整数の表現と演算の話題から説明します。
授業サポートページ: https://www.math.tsukuba.ac.jp/~terui/compmath1-2017
本年度も、数学類2年生対象の「計算機演習」を担当します。授業内容は、今年も、数式処理システムMathematicaとプログラミング言語Haskellの初歩の実習です。
今日はガイダンスで、授業の進め方や単位の取り方等について説明し、スタッフの紹介を行いました。実際の授業は来週から行います。なお、この春に本学の全学計算機システムが更新されました。新しい計算環境にも期待したいと思います。
今回は、多項式演算の導入の前に、Eulid整域や一意分解整域 (Principal Ideal Domain: PID) などの定義を確認しました。その上で、アルゴリズムの導入として、アルゴリズムの性質や、疑似コードの導入を行いました。
次回は、アルゴリズムの制御構造を復習し、1変数多項式の加減乗除のアルゴリズムと計算量について議論します。
本年度も、数学類の専門科目「計算機数学I」を担当することになりました。この授業では、主に代数計算、特にEuclidの互除法を軸にしながら、アルゴリズムに基づいて計算を行うための数学について説明します。授業では、アルゴリズム、データの表現、計算量の議論もしながら進めていきます。
まずは、計算機の構成(しくみ)の復習ということで、実際にパソコンの蓋を開けて中を見ながら説明しました。それから、メモリの配置や計算機の「ワード」の説明を行いました。
昨年度からの授業の進め方の大きな変更点として、スライドの導入があります。基本的な説明はスライドで行います。板書をノートに写す時間が短縮されますので、余った時間で、その日の授業に関するテーマの演習問題を解いて復習するという段取りです。当面は、この方法で授業を行い、学習効果を見極めたいと思います。授業の録画はこれまで通り公開する予定です。
次回は、計算機による数値や数式の表現について説明します。
授業サポートページ: https://www.math.tsukuba.ac.jp/~terui/compmath1-2017
この4月1日付で「筑波大学人工知能科学センター (Center for Artificial Intelingence Research, C-AIR)」が発足し、本日、最初の研究員会議に出席しました。
ここ数年、人工知能は新たな流行となっており、各大学や研究機関でも人工知能の研究センターを設けるなど、研究を活発化させているようですが、本学でも、全学の研究センターを設けることになり、昨年、キックオフのイベントが開かれました。そして、本年度から「人工知能科学センター」としてスタートしました。
センターには、発足時点で、全学から37名の研究者が研究員として集まっています。出身分野も多岐にわたり、数理科学、情報科学、情報工学、生命科学、医療科学、体育、芸術、メディアアートなど、多彩な顔ぶれです。私も縁がありまして、数理物質系から参加することになりました。
現時点ではwebサイトの構築もこれからだそうですが、徐々に情報が出てくるものと思われます。本番はこれからどのような研究を進めて成果につなげるかということだと思いますが、今後、センターの方々と研究に関わりながら、人工知能関連技術の新たな可能性を探っていきたいと思います。
今年度、久々に大学院の授業を担当することになりました。春学期の「数理科学IIA」、秋学期の「数理科学IIB」で、計算機代数(数式処理)の手法やアルゴリズムの紹介をします。
春学期の「数理科学IIA」では、まず準備として、多項式の四則演算のアルゴリズムと計算量について説明します。引き続いて、1変数多項式の最大公約子(GCD)を取り上げ、部分終結式アルゴリズムの説明が中心になると思います。
この授業科目は、教育研究科 教科教育専攻 数学教育コースでもコードシェアで開講しています(春学期・秋学期)が、今年度は諸般の事情により、数学教育の受講者はいないようです。数学専攻の受講者は数名ですが、腕と個性のある人が揃っているようですので、これからの授業を楽しみにしたいと思います。
3月4日から6日にかけて、毎年恒例の研究グループのセミナー合宿を、千葉県館山市の筑波大学館山研修所にて行いました。
この合宿は、私が学部生の頃から続いているもので、計算機数学グループの学部生、大学院生、教員、卒業生や、その関係者が集まり、勉強や情報交換をしつつ親睦を深めるものです。今年は、34人の人達が参加しました。参加者が30人を超えたのはたぶん史上初のことです。
セミナーで話す「標準的な」内容は、学部3年生は自分の興味のあるテーマの話題、学部4年生は卒業研究の内容、大学院生や教員はは自身の研究内容、修士論文や博士論文を提出した人はその内容、卒業生は現在の自分の仕事や生活の話題といった具合です。実際にはこのような枠にはまるとは限らず、皆さん工夫した話題とプレゼンテーションを提供されるので、どの話も非常に興味深く聴いています。
夜は「シンポジウム」(懇親会)が行われます。現在一緒にグループを運営している先生の影響で、カードゲームやボードゲーム、各種数学パズルも盛んに行われますし、いろいろな話でも盛り上がります。今年は人数が多かったためか、特に盛り上がっていたような気がします。
こうした集まりを通して、研究の話題にとどまらず、いろいろな情報交換をし、お互いの人柄を知る機会として、今年も非常に有意義な合宿になったと思います。参加された方々、セミナーの中継を視聴された方々に感謝するとともに、来年も館山でお会いできるのを楽しみにしています。
Maple T.A. (メイプルティーエー)は、数式処理システムMapleを開発しているカナダのMaplesoft社が出している、オンラインの数学テスト/評価システムです。TAというと、大学では普段「ティーチング・アシスタント」(授業などで教員の補助をする、主に大学院生の職務)をいいますが、ここでは「Testing and Assessment(テストと評価)」の意味です。
私が数式処理の研究に携わり、Mapleを使っていることから、ここ数年の間、MapleおよびMaple T.A.の国内販売元にしてMaplesoftの親会社であるサイバネットシステム(株)の方々と交流させていただいておりますが、本年度、筑波大学 大学院数理物質科学研究科 数学専攻とサイバネットシステムで提携して、数学専攻の大学院生をインターンで受け入れていただきました。学生には、Maple T.A. のコンテンツ(教材)として、私が昨年の授業の際に作成した、小テストの教材をMaple T.A. 用にアレンジし、開発してもらいました。
そして、今日、サイバネットシステムの方に大学までお越しいただき、私の主宰するセミナーのメンバーである大学院生に、教材の評価をしてもらいました。今回評価したのは、小テスト1回分もしくは2回分、時間にして10分から20分間のものですが、サイバネットシステムの担当者の方から操作方法の説明を受け、各自問題を解いてみました。
Maple T.A. を本学で利用したのはこれが多分初の試みと思いますが、評価は興味深い体験だったとともに、インターン生による教材の完成度の高さと仕事の速さに感心したひと時でした。幸い、サイバネットシステムの方々にもインターン生の活動は好評だったようです。今後の大学院生の活躍や、サイバネットシステムと本学との連携の発展にも期待したいと思います。
6月末より、私のホームページを閲覧できない状態が続いておりましたが、このほど、障害から復旧し、再び閲覧可能な状態に戻りました。ご迷惑をおかけしました。今後も引き続きご愛顧の程よろしくお願いします。
今回は、この授業の最終回でしたが、前回残したハミルトングラフに関する定理の系を証明してもらったのに続き、最短経路探索と、中国の郵便配達問題のアルゴリズムを説明してもらいました。
「中国の郵便配達問題」という名前は、証明した人が中国人ということで、「中国の郵便配達」とは関係ありませんが、この定理の他にも、別の授業で取り上げた「中国剰余定理」のような呼ばれ方があります(主に西洋の視点と思いますが)。
今回のテキストでは、アルゴリズムがきちんと提示されていたわけではありませんでしたので、必要があれば、他の本でアルゴリズムを確認するとよいのではないかと思います。
以上、今学期でテキスト全体の1/3程を読みましたが、授業中は積極的な質疑応答が行われ、よい雰囲気で授業ができたのではないかと思います。今後も、履修者の皆さんには、本を読んだり、仲間と議論したりすることで数学を理解し、これからの各自の研究などにつなげていってもらえればと思います。
今回は、本授業の最終回でしたが、有理数の再構成について説明しました。今回は分量がやや多く、ちょっと急いでしまいましたが、講義ノート等で内容を補っていただければと思います。
以上、春学期の授業が一通り終わりました。計算機の構成、演算のしくみから、主に1変数多項式の基本的な演算、そして拡張Euclid互除法が中心になりました。内容は基礎的なものがほとんどでしたが、自分で手を動かして、アルゴリズムを理解してほしいと思います。
秋からは卒業予備研究が始まりますが、計算機分野への応募もお待ちしています。
授業サポートページ(予備):https://researchmap.jp/aterui/compmath1-2016/
授業サポートページ:https://www.math.tsukuba.ac.jp/~terui/compmath1-2016
今回は、拡張Euclid互除法の応用例として、中国剰余定理とその計算を紹介しました。
次回がこの講義の最終回ですが、次回は有理数の再構成について説明したいと思います。
なお、授業サポートページが、アクセス権設定の不具合で閲覧不能な状態が続き、ご迷惑をおかけしましたが、このほど、別の場所に予備のページを開設しましたので、講義ノートのダウンロードや講義録画のアクセスはそちらからご利用ください。
授業サポートページ(予備):https://researchmap.jp/aterui/compmath1-2016/
授業サポートページ:https://www.math.tsukuba.ac.jp/~terui/compmath1-2016
今回は、ハミルトン・グラフについて論じました。特に、単純グラフがハミルトニアンになるための十分条件の一つを与えているOreの定理で、頂点数が一般のnの場合の証明について、詳しく議論しました。
授業日程の都合で、次回授業は7月26日、これが最終回となります。次回は、単純グラフがハミルトニアンになるための別の十分条件として知られているDiracの定理について調べたのち、グラフのいくつかのアルゴリズムについて学びます。
現在、私の仕事場のホームページ https://www.math.tsukuba.ac.jp/~terui/ が閲覧できない状態になっています。より正確に申しますと、ページを表示するとログイン画面が現れます。
これは、私の意図でそのようにしたわけではなく、ベースになっているwikiのシステムをアップグレードしたところ、アクセス制御に何らかの不具合が発生している模様です。
現在、原因の究明と復旧に努めているところです。ご不便をおかけしている方々にお詫びします。以下、いくつかのう回先です。
今回は、拡張Euclid互除法の応用として、剰余環で与えられた元が乗法の逆元をもつ際に、その逆元(法逆元)を求める方法について説明しました。
次回は、拡張Euclid互除法の別の応用として、中国剰余定理の構成的計算法を紹介する予定です。
授業サポートページ:https://www.math.tsukuba.ac.jp/~terui/compmath1-2016
今回は、Haskellにおけるリストの内包表記、タプル (tuple)、いろいろなデータ型が出てきました。
私も実際にレポート課題を解いていますが、昨年のことをほとんど忘れており、使わない知識はあっという間に忘れてしまうことを実感しています。なんとかプログラムを組んだのですが、TAの人から誤りを指摘されました。変数が動く範囲で、本来は「k未満」としなければならない部分が「k以下」になっていたようです。お恥ずかしいミスでした。
今回は、オイラー・グラフの性質の残った部分と、オイラー・グラフの小道 (trail) を構成するFleuryのアルゴリズムについて学びました。
次回は、セクションを進めてハミルトン・グラフについて学びます。
今回は、前回紹介した拡張Euclid互除法の定理の証明の続きを行い、そのアルゴリズムの説明を行いました。そして、Euclid互除法の応用例として、連分数展開の計算を紹介しました。
有理数の連分数展開は有限項で終わりますが、無理数についても、2次無理数(整係数2次方程式の根)の場合には、循環連分数で展開できます。そこで、2次無理数の循環連分数展開についても説明しました。
次回は、拡張Euclid互除法の次の応用例として、法逆元 (modular inverse) の計算を紹介したいと思います。
授業サポートページ:https://www.math.tsukuba.ac.jp/~terui/compmath1-2016
今回はHaskell編の2回目で、関数の定義やリストの操作を中心に行っています。
レポートには複数個の課題が出ており、提出はその回のすべての課題の解答(プログラム)を1つのファイルにまとめて提出することになりますが、開発の段階では、プログラム毎にファイルを作り、開発→デバッグを行うのが効率がよさそうです。
今回は、オイラー・グラフの定義と性質について議論しました。特に、連結グラフがオイラー・グラフであるための必要十分条件は重要です。
次回は、今回の節の残りの部分を読み、ハミルトン・グラフに進む予定です。
今回は、Euclid互除法のアルゴリズムについて説明しました。アルゴリズムの停止性についてはテキストに説明がありましたので、授業では、Euclid互除法によってい生成される剰余列の長さの評価に関する性質を示し、これがフィボナッチ数列と関連があることや、剰余列の長さの上界に黄金比が現れることなどを紹介しました。その後、拡張Euclid互除法に入りました。
次回は、拡張Euclid互除法のアルゴリズムと性質を示し、拡張Euclid互除法の応用に進みます。
授業サポートページ:https://www.math.tsukuba.ac.jp/~terui/compmath1-2016
今回から、プログラミング言語Haskellの演習に入りました。Haskell編は、同じ数学類の坂井公先生が担当されるので、私は端末室でHaskellを動かしたりしながら学生サポートに回っています。
今回は、Haskellの初回ですので、Haskellのプログラミングに慣れる内容で、テキストエディタによるプログラムの編集、Haskell環境 (WinGHCi) の使い方について、説明が行われました。その後、WinGHCiで対話的な計算を行っていました。
前回の授業から2週間空きましたが、今回は、連結なグラフの点(頂点)を除去してグラフを非連結にする際の性質について議論しました。そして、任意の連結グラフに対して、その辺連結度が(点)連結度と常に等しいかより大きくなるという性質を証明しました。この証明は、テキストには「証明できる」とだけ書いてありましたが、今日の担当者は自分達で証明を 学んで発表していたので、参考になったと思います。
次回は、連結グラフの中でもよく知られているオイラーグラフについて学びます。
今回は、主に1変数多項式に対する剰余つき除算のアルゴリズムを示したのち、テキストの第4章に進みました。今日のところは、Euclidの互除法に入る前に、環やイデアルの概念を復習し、Euclid整域の定義を確認しました。
次回は、Euclid互除法から拡張Euclid互除法へと進みます。
授業サポートページ:https://www.math.tsukuba.ac.jp/~terui/compmath1-2016
今回は、タートルグラフィクスを用いたフラクタル図形の描画を取り上げました。題材の中では、リストの作成、リストの要素の置き換え、線分の描画などを用いています。
Mathematica編は今回で終わりますが、今後も機会がありましたらMathematicaを活用されることに期待します。次回からはプログラミング言語Haskellを学びます。
今回は、主に1変数多項式や多倍長整数の乗算のアルゴリズムとその計算量について説明しました。
内容としては、まず、1変数多項式の乗算のアルゴリズムと演算回数の見積もりを行い、ついで多倍長整数と単精度整数の乗算、そして多倍長整数どうしの乗算のアルゴリズムと計算量の見積もりを行いました。これらの応用により、1変数多項式の乗算についても、係数の大きさ(長さ)から計算量を見積もることができるようになると思いますが、この部分は各自での考察を促したいと思います。
次回は、主に1変数多項式に対する剰余つき除算を説明した後で、テキスト第4章のEuclid互除法に進む予定です。
授業サポートページ:https://www.math.tsukuba.ac.jp/~terui/compmath1-2016
今回は、プログラミングの初歩として、「ルールベースドプログラミング」および「手続き型プログラミング」を行いました。
ルールベースドプログラミングは、関数の定義を再帰的定義などのルールを用いて記述するもので、例年授業で扱ってきました。しかし、実際にMathematicaを用いたデータ処理などの計算では、より伝統的なif文やfor文などを用いたプログラミングも有効な場合があることから、これまでは「発展学習」として紹介していた手続き型プログラミングを必修として追加しました。
今回の授業は、これまでより難度が上がったためか、いつもより質問がたくさん出ていて、教室内の動きもより活発な印象を受けました。レポートの方も健闘に期待したいと思います。
次回はMathematica編の最終回ですが、フラクタル図形の描画を扱います。
今回は、グラフが連結成分に分かれている場合の辺の個数に関する条件や、連結なグラフから辺や頂点を除去して非連結なグラフにする際の条件について議論しました。
次回は、連結グラフの中でもオイラー・グラフについて調べていきます。なお、来週6月7日は数学教育コースの修士論文中間指導会のため、次回の授業は6月14日となります。
今回は、前回紹介したHorner法の応用として、数(整数、分数、小数)の10進・2進変換の話題を取り上げました。
私達人類が数を数える際、今日では10進数が広く用いられる(歴史的にはそれ以外の進法もあると思いますが)一方、計算機の内部ではほとんどの場所で2進法が使われています。ですので、10進数と2進数の変換はいたるところで用いられていると言ってよいでしょう。それらの計算にHorner法のアイデアを適用可能であることを紹介しました。
次回は、多項式などの乗算とそのアルゴリズムの説明に進みたいと思います。
授業サポートページ:https://www.math.tsukuba.ac.jp/~terui/compmath1-2016
今回は、微積分の内容の後半で、不定積分、定積分、微分方程式の解法を中心に扱いました。また、リストに対するさまざまな処理についても学びました(今回のレポート課題の一つに、台形公式による数値積分があり、この中でリスト処理を行います)。
次回はMathematicaによる初歩的なプログラミングを扱います。
今回は、道と閉路に関する性質の最初として、グラフの歩道 (walk)、小径 (trail)、道 (path)、閉路や連結性の定義を行い、閉路に関する性質を、いくつかの定理で観察しました。さすがに数学の話題に入ってきた模様で、だんだんテキストを読んで説明するのにも時間がかかってきているようでした。
次回は引き続きグラフの連結性に関する性質などを扱う予定です。
今回の授業では、1変数多項式の加算のアルゴリズムと計算量、1変数多項式の変数に値を代入して評価するHorner法を扱いました。
次回は、Horner法の応用として、整数や小数、分数の2進-10進変換を扱います。
授業サポートページ:https://www.math.tsukuba.ac.jp/~terui/compmath1-2016
今回は、微積分の内容の前半で、関数の定義、関数の極限の計算、導関数の計算、Taylor展開の計算を扱いました。
今回の授業内容で目立ったトラブルとして、「三角関数のSin, Cosの頭文字を大文字にするのを忘れている」、「アンダーラインの入力方法がわからない」、「カッコの使い分け(小カッコは数式の計算の優先順、中カッコはリスト、大カッコは関数の引数)が正しくできてない」、がありました。
次回は微積分の2回目で、積分の話題を中心に扱います。
今回は、グラフを用いてパズルの問題を解く例として、「8つの円の問題」、「6人の会合」、そして「4つの立方体の問題」を紹介してもらいました。
次回は、第3章に進み、道と閉路に関する性質について学んでいきます。
今回は、アルゴリズムの時間計算量の見積もりについて説明し、前回やった、多倍長整数の加算の計算量を見積もりました。その後、符号つき多売長整数の、2の補数を用いた表現について説明しました。
次回からは多項式の話題に入ります。まずは、1変数多項式の表現や演算の話題から進みたいと思います。
授業サポートページ:https://www.math.tsukuba.ac.jp/~terui/compmath1-2016
今回は、主に線形代数のテーマを扱いました。ベクトルや行列のリストによる表現とその使い方です。応用では、行列の対角化の方法について復習しながら計算しました。
次回は微積分の内容を扱う予定です。
今回の授業では、グラフの隣接行列と接続行列を定義したのち、いろいろなグラフの例に触れました。術語を挙げていきますと、空グラフ、完全グラフ、閉路グラフ、車輪、正則グラフ、プラトン・グラフ、二部グラフ、立方体、といった感じです。
次回は、グラフを用いて主にパズルなどの問題を解く方法について見ていきます。
これ以降、この授業では、数を正確なものとして扱いますが、今回は、整数の桁数が大きな場合に扱う「多倍長整数」の表現と演算(加算)について説明しました。
次回は、計算量について説明したのち、多倍長整数の加算にかかる計算量を評価します。
授業サポートページ:https://www.math.tsukuba.ac.jp/~terui/compmath1-2016
今回は、前回のMathematicaの使い始めの続きで、連立方程式の解法、グラフィクスのオプション、アニメーションを扱いました。
次回の授業は連休をはさんでの実施になりますが、線形代数の内容を扱う予定です。
今回の授業では、グラフの連結性、隣接、部分グラフの概念を扱いました。どのテーマにおいても、教科書の例題から、より一般的な例について、教室内で議論されていたと思います。
次回は、グラフの行列による表現法から、さまざまなグラフの例に進みます。
今回は、整数の表現として、符号なし整数と、2の補数を用いた符号つき整数について説明しました。そして、引き続いて浮動小数の概要を説明しました。IEEE浮動小数点規格や、浮動小数演算に伴う誤差などの詳細については今回は省きましたが、興味のある人は昨年の授業内容を参考にしていただければと思います。
次回は多倍長整数の説明に進みます。
授業サポートページ:https://www.math.tsukuba.ac.jp/~terui/compmath1-2016
今回から、端末を使った本格的な授業が始まりました。
といっても、今回はほとんどが実習のガイダンスとなりました。e-learningシステムmanabaへのログイン、Mathematicaの起動、レポートの課題ファイルのダウンロード、レポートの作り方と提出手順などを説明しました。いろいろ細かく説明したところ、ガイダンスのみで授業時間がほぼなくなりました。
今年は、次回のテキストを早めに公開し、授業前に予習を促すことにしましたが、1回目がほぼガイダンスで終わったので、次回の予習はどの程度進んでいるでしょうか。注意深く様子を見たいと思います。
今回の授業は、第1章の「入門」で、グラフとは何かという話から始まりました。第1章は、主にテキストの各章で扱う内容の紹介でしたが、参加者からは、テキストの図で取り上げたグラフの趣旨は何かといった質問が出ました。また、グラフの「連結性」が紹介された際には、1点のみからなるグラフは連結か?といった質問も出ました。
次の第2章では、グラフに出てくる主要な概念の定義と、グラフの例が示されています。今回は時間の都合で、グラフの「同形」の概念で終わりました。次回は、グラフの「連結性」の概念から進みます。
今年も、昨年に引き続き、数学類の専門科目「計算機数学I」を担当することになりました。
この授業では、主に代数計算、特にEuclidの互除法を軸にしながら、構成的な計算について説明します。授業では、アルゴリズム、データの表現、計算量の議論もしながら進めていきます。
今年も、授業のガイダンスの後、準備として、コンピュータの基本構成を説明しました。昨年に引き続き、タワー型のパソコンのケースを開けて中の部品の説明をする一方で、DVDドライブ、フロッピーディスク、MOディスクや、ハードディスクを解体した中身の紹介も行いました。その後、メモリの配置(メモリマップ)と計算機の「ワード」について説明しました。
今年も、毎回の講義ノートをwebの授業サポートページに掲載するとともに、講義の模様を録画して公開していきたいと思います。次回は、計算機による数値の表現に進みたいと思います。
授業サポートページ:https://www.math.tsukuba.ac.jp/~terui/compmath1-2016
今年度も、数学類2年次春学期の「計算機演習」を担当することになりました。今年度も、授業の前半、数式処理システムMathematicaの実習を担当します。
今回は、授業のガイダンスということで、ティーチング ・アシスタント (TA) の人達にも集まってもらい、授業の概要を説明しました。履修者は数学類がほとんどで、人数は40人ちょっとといった感じです。次回から本格的な授業が始まります。
今年度の春学期に、教育研究科の数学教育コースにて「数学セミナーA」という授業を担当します。
この授業は、数学のセミナー(輪講)を行う授業です。輪講とは、教科書として数学の本を選び、毎回、事前に当番を決めて、当番が本の内容を予習し、授業時間にその内容を説明するというもので、交代で授業を行うようなものです。通常の数学の講義や演習と異なる点は、話題は講義のように順を追って進みますが、質疑応答のような、講師と参加者の対話の要素が増える点では演習に近いものがあります。「セミナー」は、数学の勉強を行う際によく取る形態の一つで、数学では、大学院生以上になると、セミナーは、新しい本の勉強の他、先生と学生や、研究グループ内で、研究の進捗状況や研究の新しいアイデアや研究成果の検討など、普段の研究のコミュニケーションの主要な要素になります。
教育研究科には、学部においていくつかの異なる分野出身の人達が一緒になります。数学の場合は、数学科等、理学系の学科出身の学生がいる一方で、教育学部の数学教育などの学科出身の学生もいます。数学科の場合は、卒業研究などで、セミナーを経験することがほとんどだと思いますが、出身学科や分野によって、数学のセミナー経験がない場合がありますので、そのような経験の差を埋め、学生に一定の数学の能力を確保しようということで、数年前から、数学教育コースの修士1年生に対し、春学期に「数学セミナーA」、秋学期に「数学セミナーB」という授業を行っていると聞いています。
今回、私の授業では「グラフ理論」を取り上げることにしました。理由はいくつかあります。1つめは、前提となる数学の予備知識が少なくて済むこと。2つめは、最初の段階は単純な理論から始まりますが、理解には数学的な思考が必要であり、そのような練習に適していること。3つめは、本学数学類においては取り上げられる機会の少ない分野であり、内部進学者と、学外から入学した人との既習の予備知識の差が比較的少なく、ほとんどの人が同じスタートラインから学習を始められると判断したこと、などです。
テキストには、R.J.ウィルソンの「グラフ理論入門」(西関隆夫, 西関裕子 訳, 近代科学社, 2001)を選びました。入門書として定評があり、本の厚さも比較的薄く、値段も比較的安く、本の書き方も平易で取り組みやすそうに思えます。
授業の運営は、基本的に学生に任せることにします。毎回、2人の人がレポーターとして説明を行います。彼ら/彼女らは、次の回で座長を務め、授業を進めます。それから、毎回の授業で、レポーターの補欠を2人決めておきます。そして、役割の順番は、1週目に補欠、2週目にレポーター、3週目に座長を務めることになります。今回は、私の方で座長2人を選び(偶然というか、成り行きというか、昨年度、卒業研究を指導した2人になりましたが)、彼らに、次回のレポーターと補欠を選ぶための相談を進めてもらいました。次回から、数学教育コースの13人の新入生達と、授業を進めていきます。
東日本大震災から5年になります。この機会に、当時の私の仕事場と周辺の様子を写真とともに振り返ってみたいと思います。
地震発生の瞬間、私は、研究グループの合宿を1週間後に控え、合宿の最終案内のメールを書いていました。揺れを感じてオフィスの入口まで行きましたが、揺れはそれ程大きくなかったので、再び自分の机の前に戻りました。しかし、揺れは大きくはないものの、収まる気配がないことを不審に思い、「念のため」机の下に身を隠しました(結果的にこの動作は正解でした)。
その直後、大きな揺れが始まりました。ブラインドが窓に当たってガンガン鳴り、電気も止まって照明も切れ、室内が暗くなりました。自分の身が倒れないように膝を必死で抱えていました。ふっと机の外に目をやると、1回の揺れで書棚から本が水平に飛び出し、次の揺れで書棚が倒れてきました。見るものすべてに驚くのが精一杯で、恐怖を感じる余裕すらありませんでした。
ずいぶん長く感じられた揺れが収まり、この瞬間を記録しようと、まず自分が身を隠した机の下から、冒頭の写真を取りました。ところが、いざ机の外へ出ようと思ったら、椅子がつかえて外へ出られません。閉じこめられるのではないかと焦りました。無理にもがいても仕方がないので、1分間だけ脱出を試みて、それで出られなければ救助を待つことにして、もがいてみたら、間もなく椅子を押しのけて脱出できました。
廊下に出てみると、同じフロアにいた同僚の方は2,3人でした。隣のセミナー室の廊下に重ねてあった会議用の折りたたみテーブルの山が、見事に崩れて廊下をふさいでいました。私のオフィスのすぐ隣に階段がありますが、下のフロアには化学系の実験室もあり、万一化学薬品の漏出や爆発などが起こっていたりしたら危険ですから、建物の端にある非常階段に行きました。下を見下ろすと、道路(平塚通り)を隔てた大学会館の外にも人が集まっていました。
非常階段を降りて、とりあえず松美池のほとりに出ました。たぶん、学系棟や学群棟にいたと思われる人達が集まっていました。
避難中の15時15分頃には大きな余震がありました。立っているのが困難で座り込む人もいました。
避難して最も不安だったのは、この地震がどのような災害なのかということと、家族は元気かということでした。家族に携帯電話のメールを送ってもなかなかつながりませんでした。そのとき、知り合いの大学院生の人が持っているタブレット端末で、radikoでラジオのニュースを聴き、災害の様子がわかってきました。このとき、情報がいかに大切かということと、このような非常時には原始的な通信手段が最後まで生き残ることを、身をもって知りました。以来、携帯型ラジオをほぼ常に持ち歩いています。
その後、支援室の事務の方が池の前の「大気」の像のところにラジカセを置き、NHKのラジオのニュースを流し始めました。
そうしているうちに、数学以外の専攻では、どうやらスタッフが集まってミーティングが開かれているようでした。一方、数学の関係者は、先生方も学生の人達も、特に会議を開くこともなく、大気の像の周辺にとどまっていました。見たところ、皆さん無事の様子だったのは幸いでした。
私は岩手の出身で、小学校の頃から地震は日常茶飯事、学校の授業や日本海中部地震といった実際の地震などでも地震や津波の怖さを学んでいました。よって、ラジオのニュースを聴いた段階で、地震の大きさからして、きっと、津波など、大きな災害になるだろうと想像しましたが、そのうちに同僚の方が携帯電話のワンセグでニュースを見せてくれました。東北の太平洋岸に押し寄せる津波の映像に目を見張りました。その間にも松美池のほとりにはたくさんの人達がいました。
夕方4時を回り、そろそろ今日は解散ということになりました。学系棟も危険かもしれないので、グループで非常階段を上って建物に入りました。7階の数学域図書室の書庫を廊下から覗いたところ、書架には本がほとんど残っていませんでした。図書室の事務の方がオフィスにお財布を置いているというので、図書室のドアを開けたところ、カード目録を収めたラックがひっくり返っていました。やむを得ず、倒れたラックの上を歩いてお財布を取りに行きました。
それから、何人かの人達と自分のオフィスに向かいました。廊下は水浸しで、消火栓の扉が開いてホースが飛び出していました。後からわかりましたが、水浸しの理由は、消火栓ではなく、天井裏の水道管が切れたことによるものでした。
自分の仕事場に戻ってみると、もともと散らかってはいましたが(笑)、落ちた本で床が見えなくなっていました。その後、しばらくの間、復旧とリニューアル、耐震改修工事が最近まで続きます。
この後、いろいろなことがありました。震災直後にクラス担任として迎えた新入生も昨年春に卒業し、今では大学院生になった何人かの人達と交流が続いています。それから、入学時にその新入生を指導してくれたクラスリーダーの2人は、その後、私のところで東ロボで修士論文を書いてこの春卒業というのも、何かのご縁なのでしょう。これまでのことを記憶にとどめて、これから前へ進んでいきたいと思います。
このたび、母校の小学校で講演を行いました。母校は今年創立50周年を迎え、これから秋にかけて記念行事が続きますが、その一環として、卒業を控えた6年生を対象にした総合学習の講演の一つとして行ったものです。今回、小学校のPTA会長で、小学校と中学校のときの同級生の伊藤達也さんのお招きで講演を行いました。
講演のタイトルは「数学で世界に挑む」というもので、私が専門にしている数学の話を中心に、前半では「世界に挑む」テーマの紹介、後半では「数学」の世界の紹介を行いました。
講演の前半の「世界に挑む」テーマでは、私が今年度、大学院生とともに参加した人工知能プロジェクト「ロボットは東大に入れるか」の紹介を行い、プロジェクトの概要や、筑波チームの学生達の貢献、今後の課題などについて説明しました。
学生達の活躍の説明では、東ロボ君の活躍に貢献した学生がゲーム好きであること、しかし、彼を見ていて感心したこととして、ゲームに熱中するのと同じくらい数学やプログラミングにも熱中していたことを挙げ、生徒の皆さんにも、ゲームと同じくらい熱中できる何かを見つけてほしいことと、何かを自分で作ることに熱中できたら幸せ、ということを話しました。
模試の世界史の記述式の問題においては、現在の東ロボ君は教科書から関連のある文章を集めて組み立てているレベルで、答案の作文としてはまだ改善の余地があるそうですが、それでも、受験生の平均点は上回ったのだそうです。今回はこの事実に触れ、自分の頭で考えることが大切、ということを指摘しました。
講演の後半では、「数学」の世界の一例として「あみだくじ」を作る話題に触れました。「あみだくじ」は過去にも高校の講演で取り上げていますが、小学生相手の講演は初めてです。今回は、数学の理論は抜きにして、あみだくじをつくる手順を中心に説明しました。最初に、スタートとゴールを指定した上で、あみだくじを各自の手順で作ってもらいましたが、5分の制限時間で多くの生 徒さん達が正しいあみだくじを作ったことに驚きました。それから、あみだくじの作り方の手順を説明して作ってもらいましたが、生徒の皆さんはよく理解しているようで、全員が無事あみだくじを完成させたようでした。
最後に、私からのメッセージとして、広い視野を持ち、自分が夢中になれることを見つけてくださいということを述べ、講演を終えました。
今回、私を講演に呼んでくださった伊藤君は、地元の金属機械工作メーカーの社長さんとして生産と技術開発に取り組む一方、地元の産業を活性化させるべく、地元の若手経営者を率いて精力的に活動されています。今回は、将来を担う地元の後輩達のためにということでこのような話をさせていただき、大変嬉しく思います。これから中学校に進学し、未来にはばたく皆さんの活躍を願っております。
今回はこの授業の最終回でしたが、重積分の変数変換の例題で、前回の授業で紹介しきれなかったものとして、極形式で表される曲線が囲む部分の面積の計算を取り上げました。その後、広義積分の例題として、積分領域が非有界の例と、与えられた積分領域で非積分関数が非有界の例を取り上げました。
以上で秋学期の授業時間が終わりましたが、曲面積の計算は残してしまいました。授業全体では基本的な計算を中心に解説したつもりですが、各自必要に応じて役立てていただければと思いますし、今後微積分を使わない人にも、数学の理論の組み立てや応用の一面を知っていただければと思います。今後の皆さんのご活躍をお祈りします。
授業サポートページ:https://www.math.tsukuba.ac.jp/~terui/calculus2-2015
今回は、前半で、重積分の変数変換の計算例について説明しました。代表的な変数変換として、極座標変換とアフィン変換による例題を説明しました。
後半では広義積分を導入しました。今回は理論的な部分で終わりましたので、次回に計算例を扱いたいと思います。この授業もあと1回です。
授業サポートページ:https://www.math.tsukuba.ac.jp/~terui/calculus2-2015
今回は、重積分の変数変換について説明しました。今日は主に理論的な部分で、変数変換の前後における微小領域の変化率を表すヤコビアンの導出を中心に説明しました。
次回は重積分の変数変換の例題を紹介したのち、広義積分に進みたいと思います。
授業サポートページ:https://www.math.tsukuba.ac.jp/~terui/calculus2-2015
今回は、累次積分について説明し、授業のおしまいの方で、重積分の基本的性質に触れました。今回の説明で、実際の重積分の計算が可能になると思います。
重積分の基本的性質のうち、一部は時間内に説明が終わりませんでしたので、それらについては次回の授業の際に説明したいと思います。次回授業では、その後、重積分の変数変換の話題に進みたいと思います。
授業サポートページ:https://www.math.tsukuba.ac.jp/~terui/calculus2-2015
今回は、前回の重積分の定義の続きで、2次元Euclid空間内の一般の有界集合における面積の測り方として「ジョルダン (Jordan) 測度」を導入し、積分可能性の十分条件について説明しました。
今回は担当教員の都合により、授業時間は前半の4限のみで終了しました。次回は年明けですが、重積分の基本的な性質について説明した後、累次積分に進みたいと思います。
授業サポートページ:https://www.math.tsukuba.ac.jp/~terui/calculus2-2015
今回から、授業内容は重積分に入りました。
今回は、重積分(多変数の実数値関数のリーマン積分)の定義を説明しました。まず、有界閉区間上の積分を定義し、次に、2次元Euclid空間内の一般の有界集合上の積分を定義しました。そして、一般の有界集合上の積分が定義できるかどうかは、その集合の面積が確定するかどうかに依存することを紹介しました。
次回は、今回の続きで、2次元Euclid空間内の一般の有界集合において面積が確定することの定義に触れます。その後、実際の重積分の計算に用いられる「累次積分」について説明したいと思います。
授業サポートページ:https://www.math.tsukuba.ac.jp/~terui/calculus2-2015
今回は、Lagrangeの未定乗数法の説明を行いました。
授業の前半では、条件つき極値問題とLagrangeの未定乗数法の定理について説明しました。後半では、Lagrangeの未定乗数法を用いた条件つき極値問題の解法の例題を説明した後、Lagrangeの未定乗数法に登場する連立方程式の導出を紹介しました。
多変数(主に2変数)関数の偏微分の話題は今回までで、次回から重積分に入ります。
授業サポートページ:https://www.math.tsukuba.ac.jp/~terui/calculus2-2015
今回は、前半で陰関数定理を説明し、後半では、陰関数定理を用いて、陰関数で表される曲線の接線の計算を行いました。
Lagrangeの未定乗数法には進めませんでしたので、次回の授業で扱いたいと思います。来週は推薦入試、再来週は出張のため、次回の授業は12月11日の予定です。
授業サポートページ:https://www.math.tsukuba.ac.jp/~terui/calculus2-2015
今回は、2変数関数の極値について、Taylorの定理からの導出の要領を説明しました。
例題については、授業時間の最後の方で説明を試みましたが、時間不足で終わりませんでしたので、演習等で適宜復習されることを望みます。
次回は、陰関数定理とLagrangeの未定乗数法を説明する予定です。
授業サポートページ:https://www.math.tsukuba.ac.jp/~terui/calculus2-2015
今回は、前半で、多変数関数の高次偏導関数について説明しました。後半では、2変数関数のTaylorの定理を紹介し、その応用として、2変数関数の2次近似の導出を行いました。
次回は、Taylorの定理の2つ目の応用として、2変数関数の極値の計算について説明する予定です。なお、来週は学園祭前の休業のため、次回の授業は再来週になります。
授業サポートページ:https://www.math.tsukuba.ac.jp/~terui/calculus2-2015
今回は、前半で全微分の性質について述べました。後半では、全微分の関連事項として接平面について述べたのち、合成関数の微分を説明しました。
次回は高次偏導関数の説明から入る予定です。
授業サポートページ:https://www.math.tsukuba.ac.jp/~terui/calculus2-2015
今回の授業では、前半で多変数関数の連続性について説明しました。後半では、多変数関数の偏微分、および全微分の定義まで説明しました。
次回は、全微分の性質と接平面の話題に触れたのち、合成関数の微分に進む予定です。
授業サポートページ:https://www.math.tsukuba.ac.jp/~terui/calculus2-2015
今回の微積分の前半では、前回に引き続き、集合の閉包と有界の概念について説明し、ついで、点列の収束と極限について説明しました。後半では、多変数関数の用語と極限について説明しました。
次回は、多変数関数の連続性から説明を行う予定です。
授業サポートページ:https://www.math.tsukuba.ac.jp/~terui/calculus2-2015
2015年度の秋学期は、微積分II(地球学類対象)の講義を担当することになりました。
微積分IIでは、多変数の微積分を扱います。今日は初回で、授業のガイダンスに引き続いて、n次元ユークリッド空間の点とその集合、距離、内点、外点、境界点、開集合、閉集合といった概念について説明しました。これから1月末まで、毎週1回(2時限続き)、15回の講義が続きます。
例によって、授業のサポートページを作り、講義ノートなどの資料を載せます。あと、講義の模様をビデオ収録し、こちらも公開します。お楽しみに。
授業サポートページ:https://www.math.tsukuba.ac.jp/~terui/calculus2-2015
今回は、授業の最終回でしたが、中国剰余定理を紹介し、ついで、定理に現われる連立線形合同式の解を拡張Eucild互除法を用いて解く解法について説明しました。
これで一連の講義が終わりましたが、今年は、講義を初めて担当したこともあり、講義内容にやや偏りが生じたのは反省点だったと思います。多倍長数の演算に時間をかけ過ぎてしまい、他のトピックに割り当てる時間が足りなくなりました。もし次回担当する機会がありましたら、多倍長数の演算の時間を短縮し、数論に関する話題を追加してみたいと思います(その際、多倍長数に関するより詳しい解説を聞きたい場合は、今年の講義の録画が役に立つことでしょう)。
反省点はありますが、今回の講義で、現実に計算を行うための数学の知識や方法論に対する理解が深まれば幸いです。また、皆さんの中には、中学校や高校で教職に就く人もいるかもしれませんが、これから数学を学ぶ生徒さん達にも、折に触れて、こういった、数学の一つの姿を伝えていってもらえればと思います。
授業サポートページ:https://www.math.tsukuba.ac.jp/~terui/compmath1-2015
今回は、拡張Euclid互除法の応用の一つとして「法逆元計算」を取り上げました。これは、剰余環のある元が単元である(=乗法の逆元をもつ)際に、その逆元を計算する方法で、拡張Euclid互除法で計算する余因子が求める逆元となります。今回は、その性質を述べた定理と、計算例として、素数を法とする整数の剰余環(体)、および、有理数体に既約な1変数代数方程式の根を添加した拡大体において、逆元の計算を行いました。
この授業も次回が最終回ですが、次回は中国剰余定理と、拡張Euclid互除法を用いた中国剰余算法を取り上げ、授業の締めくくりにしたいと思います。
授業サポートページ:https://www.math.tsukuba.ac.jp/~terui/compmath1-2015
今回は、前回のEuclid互除法で残ったアルゴリズム自体の説明を行ってから、拡張Euclid互除法の説明を行いました。拡張Euclid互除法の根拠となる定理の証明は、時間の都合で、最も重要な「余因子の存在と計算手順」の部分のみを行いましたが、それ以外の証明も、一通り、講義ノートに記録しています。
この授業も残すところあとわずかですが、残りの時間は、(拡張)Euclidの互除法に関連する話題に充てる予定です。今回は、連分数展開の計算について説明しました。正則連分数の計算の際、Euclidの互除法が用いられます。これに関連し、ある条件を満たす無理数が、循環する連分数に展開されることも説明し、その計算も行いました。実は、連分数展開からもとの有理数や無理数を計算するのも(拡張)Euclidの互除法と関連性がありますが、こちらの方は時間の都合で割愛しました。
次回以降は、法逆元の計算と、これに関連して、中国剰余定理を(時間があれば)扱う予定です。
授業サポートページ:https://www.math.tsukuba.ac.jp/~terui/compmath1-2015
今回は、整数と1変数多項式の剰余つき除算について説明したのち、Euclidの互除法に入りました。その前に、可換環のイデアルや剰余環などの概念については、各自の復習に任せました(講義テキストにも一通り説明があります)。
Euclid互除法では、その根拠となる定理を説明したところで時間になりましたが、整数に対するEuclid互除法の場合、剰余を計算する回数の上界の一つとして黄金比が用いられることを紹介しました。
次回は「拡張Euclid互除法」について説明した後、Euclidの互除法の応用に進みます。
授業サポートページ:https://www.math.tsukuba.ac.jp/~terui/compmath1-2015
出張で1週間空けましたが、今回は、主に多倍長整数と1変数多項式に対する乗算のアルゴリズムについて説明しました。
多倍長整数の乗算については、単精度演算を単位とした計算量の見積もりを行いましたが、多項式の乗算については、見積もりが繁雑になるため、今回は、係数上の四則演算の回数を単位とした計算量の見積もりのみを行いました。
この時間の最後に、剰余つき除算の説明に入りました。次回は剰余つき除算を説明し、拡張ユークリッドの互除法に進む予定です。
授業サポートページ:https://www.math.tsukuba.ac.jp/~terui/compmath1-2015
今日はセミナー最終日ということで、午前中のセミナーでは、主に structured matrix (構造をもつ行列)に関する発表がありました。
これで5日間にわたるセミナーが終わったわけですが、私にとっては、Pade 近似や multiexponential analysis など、自分にとって未知の分野を知ると同時に、その辺でも自分が取り組んでいるものと似たような問題意識があることを知り、非常に有意義な会議だったと思います。
また、会議の日程はゆったりしており、参加者の人達からいろいろな話を聞けたのも収穫だったと思います。普通の国際会議ですと、街中でやるので、その日のセッションが終わったら慌ただしく移動してよく顔を合わせる人との時間が主になることが多いですが、合宿形式で、時間に余裕があることで、より多くの人達と話ができたと思います。
あと、自分の研究テーマに関しても、新しい情報やコメントを得られたのも収穫でした。日本に帰ってからも、より広い視野を忘れないように、仕事に取り組みたいと思います。
今日のプログラムは "sparse interpolation"(疎な多項式補間)の話題が中心でした。手法は様々でしたが、昨日までの講演にあった、指数関数の復元に対応するものがあり、両者の類似点を眺めることができたと思います。
自分の講演は、近似GCDでも用いる「部分終結式行列」に関する話題で、結果はまあまあ、といったところですが、いくつか有益なコメントをもらえたのは収穫だったと思います。
会議もいよいよ明日が最終日で、明日には町に戻ります。
今日は会議は午前中のみでしたが、Pade近似に関する発表が中心でした。
午後のエクスカージョン(遠足)は、予定が二転三転しましたが、結局、バスの手配がついて、ドイツの古都トリーア (Trier) に行きました。会議場からは1時間くらいで着きます。トリーアは古代ローマ帝国によって造られ、ローマ帝国が分割統治されていた時期には、最も西の地域の首都だったそうで、当時の城門(ポルタ・ニグラ)、皇帝の宮殿(現在は教会として使用)、皇帝の大浴場など、興味深い建物や遺跡がいろいろありました。
会議は明日も続きます。
今日は会議の2日目で、発表は Exponential Analysis に関するものを一日行いました。特に午前中のセッションでは、Prony method と呼ばれる、指数関数のパラメータをデータから再現する方法に関する発表がたくさんありました。
それから、今日は記念写真の撮影を行いました。写真の方はすでに会議のホームページに掲載されています。
今日から会議が始まりました。午前中は、主催者の先生 (Annie Cuyt) から、この会議の趣旨説明を兼ねた講演があり、お茶の休憩の後、参加者が軽く自己紹介をしました。
午後は Application Section で、Multi exponential analysis の応用事例として、サンプリング(屋外の環境データなどの収集)の最適化や画像処理などが紹介されました。
今日は早めに日程も終わったので、明日に備えたいと思います。なお、セミナープログラムは会議のホームページにて公開されています。
今回、Dagstuhl Seminar(ダグシュトゥールセミナー)という国際会議に参加するため、ドイツにやってきました。
Dagstuhl Seminarは、ドイツ西部の町Wadern(ヴァーダーン)にあるSchloss Dagstuhl(ダグシュトゥール城)と呼ばれる施設で開催されている一連のセミナー(会議)です。「城」と呼ばれるだけあり、昔のお城、というか邸宅を使ってセミナーハウスにしたもののようです。
そして、セミナーの方は、情報科学のいろいろな研究テーマでセミナーを公募し、採択されたものが、それぞれ1週間くらいの長さで開催されます。ですので、ここの施設では、毎週次から次へと新しいセミナーが開催されているようで、だいたい2年後くらいまでのスケジュールが決まっているようです。
セミナーの運営も独特で、まず、参加者は、各セミナーの主催者からの招待によって参加します。それから、セミナーの細かい運営は主催者によって決まるようで、単に研究成果の発表にとどまらず、参加者間での討論などによる研究交流も重視されているようですが、今回はどうなることでしょう。とりあえず、出発日である今日の未明に、主催者からセミナープログラムが送られてきました。
今回私が参加するセミナーは"Sparse modelling and multiexponential analysis"というもので、計算代数では厳密計算や近似計算に基づく多項式補間の話題が中心になりそうです。 私はもともと数式・数値融合専門で、これらの分野とはやや離れているかもしれませんが、どんなことになるか、大きな期待と若干の不安を持っての参加です。
今日は東京からフランクフルトに飛んで、近郊のマインツに宿泊し、明日、現地に向かいます。
大学の行事「ホームカミングデー」が、今年は11月7日(土)に行われることになりました。
「ホームカミングデー」は、毎年、大学を卒業して20年にあたる卒業生を対象に、大学に再び集まって旧交を温める行事です。今年の対象は、1991年大学入学、1995年大学院修士課程入学の人達が中心になります。それから、大学も、筑波大学に加え、図書館情報大学に入った人達もた衣装です。
大学では、この行事のために「ホームカミングデー委員会」を組織して準備を行います。委員会は、委員長、副委員長、委員、事務方から構成されますが、委員は、各学群から、ホームカミングデーの対象者を中心に選出されます。今回、理工学群担当の教員で、本学卒業20年にあたる人が自分しかいなかったとのことで、私が理工学群選出の委員としてホームカミングデー委員会に参加することになりました。(ちなみに、今年の委員長は理工学群長ですが、数学の先生です。)
ホームカミングデーは、先に述べた通り、11月7日(土)に行われますが、この日はちょうど学園祭の1日目に当たっています。参加申込の受付はこれから専用のwebサイトで行われる予定ですが、同級生の皆さんの多数の参加をお待ちしております。
今回はMathematica編の最終回で、タートルグラフィクス(コンピュータ上で「カメ」を動かし、その軌跡によって図形を描くこと)によるフラクタル図形の描画を行いました。
Mathematica編はこれで終わりますが、今後も折に触れてMathematicaのいろいろな機能を活用してもらえればと思います。
次回からはプログラミング言語 Haskell の実習に入ります。
今回は、1変数多項式に対するHorner法の応用の一つとして、数の2進・10進変換の効率的な方法を紹介しました。2進・10進変換は、2進数を10進数に、あるいは10進数を2進数に変換する計算です。
非負整数の2進・10進変換は、比較的多くの資料が出回っていると思いますが、循環小数(2進)や有理数(10進)の2進・10進変換、そして、負の10進数を2の補数で表す変換については、原理は他の変換と同様、それ程難しくはありませんが、計算例はさほど多くなさそうですので、参考になるかもしれません。
来週は私の出張のため休講にするので、レポート課題を出しました。課題は授業テキストの演習問題の抜粋ですが、例題を用いて基本的な解法を説明しました。
次回は再来週、1変数多項式や多倍長整数の乗算と除算を扱う予定です。
授業サポートページ:https://www.math.tsukuba.ac.jp/~terui/compmath1-2015
今回は、Mathematicaによるプログラミングの方法の一つとして「ルールベースドプログラミング」を扱いました。ルールとパターンマッチに基づく関数の定義です。
レポート課題の一つに、関数の微分を行うプログラムの作成がありましたが、定数の微分の定義を忘れていた人がいたようです。
次回は、Mathematica編の最終回ですが、今回のプログラミングと合わせたグラフィクスの話題を扱います。
今回は、まず、前回に引き続き、1変数多項式の加算を取り上げ、そのアルゴリズムと計算量の見積もりについて説明しました。
次に、1変数多項式の評価を行う「ホーナー (Horner) 法」について説明しました。これは、高校の数学でも「組立除法」として紹介されている方法で、国立国会図書館の電子展示会「江戸の数学」でも紹介されています。
次回は、Horner法の応用例として、10進数と2進数の間の効率的な変換法を紹介します。
授業サポートページ:https://www.math.tsukuba.ac.jp/~terui/compmath1-2015
今回は、微積分の内容で、前回の続きとして、積分や微分方程式の解法を扱ったほか、リストに対するいろいろな計算も扱いました。
今回のレポート課題を解く中で、ファイルの保存の際にエラーが出て、解き直しになった人が数人いました。それらの人達に共通していたのは、レポート全体の計算を一通り行った後で最初の保存に失敗した点です。以前の授業でも呼びかけましたが、ファイルをこまめに保存することで、もしファイルが途中で壊れた際の影響がなるべく小さくよう、工夫することも必要だと思います。
次回は、ルールに基づくプログラミングを扱います。
今回の授業では、まず、アルゴリズムの計算量を見積もる上で必要な「漸近表示」の説明を行い、次に、それを用いて、多倍長整数の加算の計算量を見積もりました。
それから、「2の補数」を用いた、符号つきの多倍長整数の表現について触れた後(減算のアルゴリズムは演習問題)、1変数多項式の話題に入り、多項式の術語と、1変数多項式の表現について説明しました。
次回は1変数多項式の加算から説明する予定です。
授業サポートページ:https://www.math.tsukuba.ac.jp/~terui/compmath1-2015
今回は、微積分の中でも微分を中心とした内容を扱いました。具体的には、関数の定義、極限値の計算、導関数の計算、Taylor展開の計算を扱いました。
次回は主に積分を中心とした内容を扱います。
今回の授業では、多倍長整数の加算のアルゴリズムについて説明しました。そのため、アルゴリズムの基本的な特徴(要件)についても解説しました。(今回述べた「アルゴリズムの特徴」は、D. Knuth, The Art of Computer Programming, Section 1.1によります。)
次回は、多倍長整数の加算のアルゴリズムの計算量を調べますが、そのために、アルゴリズムの計算量を見積もるための漸近表示の説明から始める予定です。
授業サポートページ:https://www.math.tsukuba.ac.jp/~terui/compmath1-2015
今回は、主に線形代数の話題を取り上げました。Mathematica では、リストを「ベクトル」、リストのリストを「行列」に見立てて計算を行います。今回は、ベクトルや行列の基本演算と行列の対角化を行い、さらに、リスト(ベクトル、行列)の要素に規則を与えて自動的に生成する方法などを扱いました。
次回は微積分の内容を扱う予定です。
今回の授業では、まず、前回の続きで、浮動小数演算における誤差として「桁落ち誤差」と「情報落ち」について説明し、引き続き、多倍長整数の構成について説明しました。
次回は、多倍長整数の加算について説明します。
授業サポートページ:https://www.math.tsukuba.ac.jp/~terui/compmath1-2015
今回は、Mathematica編の第2回、前回のMathematica入門の続きということで、連立方程式の解法、グラフィクスのオプション、アニメーションを中心に扱いました。
次回の授業は来週水曜日で、今回のレポート課題の締切日でもあるので、今回はレポートの締切まで、普段より若干期間が短いですが、ご健闘を祈ります。