プロが教える店舗&オフィスのセキュリティ対策術

すこし煩雑な(21×11です)の連立一次方程式を解くプログラムを作りたいのですが
何か良い文献、HPなどは無いでしょうか?
いろいろなものを見ましたが大体縦横が同じ(n次元?)の
計算のヒントみたいなのしか見つけれませんでした。

プログラムはほとんどやったことが無いので、
ソースなどが公表されていてそれをちょっと書き換えれば
目的のものがつくれるというのが理想ですが・・・。

解法はガウスジョルダンとかガウスサイデル
あるいは他にもっとよいものがあればそちらで構いません。

また、連立一次方程式のちゃんとした答え(言い方悪いですね)が求まらない場合、
近似解を算出することになると思うのですが
これはどういった基準で「解」とされるのでしょうか?
計算の反復回数とかでしょうか?

まとまりのない質問ですがよろしくお願いします。
何かあれば補足をお願いします。

A 回答 (4件)

連立方程式の解き方にはいろいろ有って、それぞれ長所短所あります。


手元の書籍では
Numerical recipes in C (技術評論社)
に結構詳しく載っています。(別冊で、プログラムの入ったディスクも販売されていたと思います)

ガウスジョルダンももちろん掲載されていますし、変数と式の数が一致しない場合の扱いなども記述されています。
一読の価値はあるかと。

ご質問の式では、係数に0の多い、疎な方程式に思えます。疎な式の場合には、計算量を下げることも可能です
(詳細は、上記書籍に記載されています)

ご参考になれば。

この回答への補足

回答していただきありがとうございます。
教えていただいた書籍ですがソースコードの方は掲載されているのでしょうか?
アマゾンで検索したところ少しばかり価格が高いので購入すべきか
図書館などで探すか迷っています。
よろしければお教えください。お願いします。

補足日時:2004/10/15 01:36
    • good
    • 0

Newmerical... ソースコードは記載されています。


(ただ、手で打ち込むのは、結構面倒かも)
他にもCを使った数値計算関係の書籍はいくつかありますので、一度大きめの書店で見て見られたほうが良いかも。
(Numerical..の訳者である奥村先生が執筆された書籍もいくつかあるはず)

プログラムの用途にもよりますが、業務に使うなら、きちんと誤差評価(や計算量評価、安定性の評価)に関して記載している書籍を選ばれたほうが良いと思います。
(仕事用なら、(市販などの)の数値演算パッケージを導入するのが一番いいのかもしれません)
    • good
    • 0
この回答へのお礼

度々の回答ありがとうございます。
書店、図書館などで色々な本を探してみることにします。

お礼日時:2004/10/17 01:36

係数行列が正方でないということは、変数の数と式の数が一致していない(普通には解けない)のでは?


式の数の方が多い場合には、全ての式を同時に満足する数値の組は無いので、評価関数を定義して、それが最小(もしくは最大)になる数値の組み合わせを探すことになるような。
式の数が少ないと、解けないし。

今一度、問題を見直す必要があるかと思います。

この回答への補足

21×11という書き方はもしかしたら間違っていたかもしれません。

補足日時:2004/10/07 22:53
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
実は長々と補足を書いたのですが、gooの禁止事項に触れたらしく編集されました。
それも相当簡素なものに編集されており自分でもびっくりしています。
係数行列はなんといいますか規則的に配列しており、
係数の中でゼロじゃないものは6つだけですので問題的には計算できるとは思うのですが未だに解決できずにおります。
ちなみに解は{0,0,...,1,...,0,0}ですのでこのことから考えても
正方行列を解くプログラムでもあればそれをちょっと書き換えてできるのかなと考えた次第です。
しかし、正方行列を解くプログラムもいまいちうまくできずに困っています。

お礼日時:2004/10/11 21:39

最適化アルゴリズムをくめばいいんじゃないですかね?


そうすれば,最適解が求まると思いますよ.
計算終了条件は「計算回数」であったり,「誤差が○○以下」であったり,様々です.

下記URLの「さ」を選択すると,最適化アルゴリズムが載っています.

参考URL:http://www.sist.ac.jp/~suganuma/cpp/sakuin.htm#sa
    • good
    • 0
この回答へのお礼

回答していただきありがとうございました。
参考URLの方も大変参考になりました。
また機会がありましたらお願い致します。

お礼日時:2004/10/15 01:40

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!