Mapleトップページ
事例・技術情報

数式処理の世界記録に挑む
京都大学情報学研究科情報教育推進センター情報学研究科特定准教授
木村欣司先生

今回は、ニュースなどで取り上げられた世界初の「16次方程式の判別式計算」に成功した木村欣司先生に「17次方程式の判別式」についてお伺いしました。また、研究におけるMaple の利用方法についてもお伺いしました。

木村欣司先生のプロフィール


現在所属されている研究室がどのような研究を行なっているのか教えて下さい。

私が所属している京都大学大学院情報学研究科の中村・辻本研究室では、「可積分系」という物理学や数学が起源となっている学問を、さまざまな分野へ応用することを目指して研究を進めています。
「可積分系」の細かい定義は割愛しますが、もっとも代表的なものは三角関数(sin, cos)などの関数で答を書き下せる常微分方程式のクラスです。

一般に、“常微分方程式は厳密に解けるものばかりではないか”と思われるかもしれませんが、実際にはほとんど解けないものばかりです。しかし一方で、解けるものにはとても美しい数学的な構造が存在しています。同様に、偏微分方程式の世界にも可積分系は存在していて、他にも差分方程式にも存在しているのです。

私たちの研究室では、このような可積分系の研究で得られた成果を元にして、さまざまな新しいアルゴリズムを作り出しています。特に、数値線形代数と呼ばれる分野の代表的な問題である「行列の固有値・特異値分解」というものを研究しています。

木村先生ご自身のご研究について教えて下さい。

神戸大学の博士課程のときの研究で、グレブナー基底の構成算法として有名な「ブッフバーガー算法」の実行時間を短縮するためのプログラムを開発しました。このプログラムの根本的なアイディアは、行列式、終結式、判別式の計算を高速化するためにも使えます。そのアイディアに加えて、可積分系の知識を生かして行列式や終結式、判別式を高速に計算するアルゴリズムを開発しました。これまで計算が不可能と思われていた行列式や終結式、判別式の計算もできることがわかってきています。これらの成果は私のホームページにも掲載していますので、是非ご覧ください。

博士課程のときの研究がもとになっているのですね。それ以前も神戸大学で同様の研究をされていたのですか?

最初は早稲田大の広田良吾先生(名誉教授)の元で、可積分系の研究を進めていました。広田先生の名前を冠した「広田の方法」は可積分系の解を求めるための非常に強力な道具として知られています。修士2年生のとき、広田研究室である問題の証明を行っていたのですが、やってみると非常に難しく、困り果てていました。そのときに、富士通研究所で開発された数式処理システムRisa/Asirについて書かれた本(注1)を見つけました。その本には、Risa/AsirをダウンロードするためのURLが書かれていました。そのURLのページに、開発を担当されていた野呂正行先生へのメールアドレスがありました。そこで、困り果てていた証明について、野呂正行先生にメールで質問をしてみたのです。頂いた返信を見ると、私がやりたいことを実現する方法が全て書いてありました。この証明が終わり、次にどのような研究に取り掛かろうかと悩んでいたところ、この野呂正行先生が神戸大学に教授として赴任されることを聞き、神戸大学の博士課程へ進むことにしました。

注1 「日本で生まれた数式処理ソフト リサ アジール ガイドブック」 齋藤友克、竹島卓、平野照比古共著 SEG出版

様々な出会いの中で、現在のご研究に携わるようになられたのですね。では、木村先生の Maple 利用歴について教えていただけますか? 特に、木村先生の研究内容全般で、どのようにMapleを利用されているかを教えて下さい。

はじめてMapleを使ったのは、確か大学院の修士1回生の頃だったと思います。確かMaple Vでしたね。研究室のコンピュータにインストールされていたものを使ってみました。

近年、私が主に行なっている、行列式や終結式、判別式の研究ではMapleはなくてはならない存在です。というのも、自分の開発したアルゴリズムの競争相手でもあるからです。この記事を読まれる方の中には「Mapleの行列式、終結式、判別式の算法は世界記録を作るソフトと対等な実力をもっているの?」と疑問に思うかもしれませんが、Mapleには非常に多くの関連機能が備わっていて、それらの機能をユーザが上手に使うことでユーザプログラムとして行列式、終結式、判別式の計算の高速化が行なえるのです。

また、Maple の内部にはsdmp(Sparse Distributed Multivariate Polynomial)と呼ばれるライブラリが存在していて、私はこれを用いて独自の行列式計算プログラムを作成しています。これを使うことで、Maple本体が用意しているDetコマンドより高速な行列式の計算が可能になります。私のホームページには随時作成したものを公開しています。

ところで、「17次方程式の判別式」について、初学者でもわかるような形で少し教えていただけますか?

2次方程式の判別式は、皆さんが中学校や高校などで習うので覚えているかと思います。つまり、2次方程式ax2 + bx + c = 0 に対して判別式は
D = b2 - 4ac となる式です。判別式 D の値によりこの方程式の実数の根の個数を知ることが出来ます。

 一方で、判別式を用いて逆の言い方もできるわけですね。つまり、判別式D < 0 となるようにパラメータ a, b, c を選ぶと複素数の根が2つになります。また判別式 D = 0 となるようにパラメータを選ぶと実数の根は1つ、そしてD > 0 となるようにパラメータを選ぶと実数の根は2つ、というように、実根の数を「制御」することが出来るとも言えます。すなわち、判別式を計算できるようにすると、「ユーザが指定する実根の数を持つように、代数方程式の係数を決める」という逆問題的なアプローチが出来ることになります。

これは、例えば制御系等の設計において、1変数多項式でモデリングできた対象に対して実根を持たないように係数を構成するパラメータの条件を導出することを意味していて、安定な系を実現できることにも役立ちます。なお、判別式というのは終結式の親戚でもあり、さらに終結式は行列式の特殊な場合でもあります。私の研究は、これらの各種計算において、これまで計算できなかったものをより高速に計算できるようにしたものです。

先ほどの質問と関連するのですが、「17次方程式の判別式計算」でMapleはどのように利用されたか教えて下さい。

細かい話は割愛しますが、8GBのメモリを搭載した計算機であれば、私のホームページに掲載している計算プログラムを使って、実際に「12次方程式の判別式計算」をお試し頂けます。Maple は低い次数の判別式において自分のプログラムが正しい計算結果を返しているかどうか、差を取って比較する場合などにも利用しました。

他の数式処理ツールと比較して、Maple について気に入っている点がありましたらぜひ教えて下さい。

私のいまの研究テーマに関係するため、なんといってもsdmpライブラリが存在することがMapleの一番のお気に入りです。このライブラリによって、多変数多項式の四則演算(加算、減算、乗算、除算)が大幅に高速化されます。多変数多項式の加算・減算・乗算の性能が計算時間を左右するようなユーザプログラムがある場合、Mapleは非常に良いスコアを出すことができると思います。

Maplesoft製品やサイバネットシステムに対して、ご意見・ご要望がありましたらぜひ教えて下さい。

Maple内部に存在するsdmpライブラリは、Mapleにとってのまさに財産であるといっても過言ではないと思います。このライブラリの能力を活用した、より多くの関数が提供されることを期待しています。手始めに行列式のコマンドDetを高速化されるというのはどうでしょうか?

取材を終えて

16 次方程式の判別式計算については、報道機関等で発表されており、こちらのHP上にも記載があります。一方、17次方程式の判別式は、1通りの方法で計算した計算結果であるために、今のところ報道機関での発表予定はないとのことです。

16次方程式の判別式計算のときのように、17次方程式の判別式計算での報道機関の発表があるとすれば、とても楽しみです。お忙しい中、ユーザインタビューにお答え頂き、有難う御座いました。

(2013年 5月)



お問い合わせ サイバネットシステム株式会社 システムCAE事業部
TEL: 03-5297-3255 (受付時間 9:00〜12:00 / 13:00〜17:30 ※土日祝及び弊社休業日を除く)
メールでのお問い合わせ  お問い合わせフォーム  お問い合わせ一覧

モデルベース開発