★ 無誤差な連立方程式 ★

 385 無誤差な連立方程式  aya  2002/11/12 (火) 19:30
  398 Re: 無誤差な連立方程式  aya  2002/11/14 (木) 17:04
   408 Re^2: 無誤差な連立方程式  竹澤  2002/11/15 (金) 09:34
    409 Re^3: 無誤差な連立方程式  竹澤  2002/11/15 (金) 10:19
     413 Re^4: 無誤差な連立方程式  青木繁伸  2002/11/15 (金) 12:02
   399 Re^2: 無誤差な連立方程式  青木繁伸  2002/11/14 (木) 18:47
  391 Re: 無誤差な連立方程式  竹澤  2002/11/13 (水) 09:10
   395 Re^2: 無誤差な連立方程式  ひの  2002/11/14 (木) 00:02
  389 Re: 無誤差な連立方程式  ひの  2002/11/13 (水) 00:09
  388 Re: 無誤差な連立方程式  青木繁伸  2002/11/12 (火) 23:45


385. 無誤差な連立方程式  aya  2002/11/12 (火) 19:30
こんにちは.はじめまして.

連立1次方程式を解く時に,無誤差で解けないかなぁとおもっているのですが何か良い方法はありますか?
ご存知の方がいらっしゃいましたらよろしくお願いします.
参考文献とかでもいいんでご教授ねがいます.

     [このページのトップへ]


398. Re: 無誤差な連立方程式  aya  2002/11/14 (木) 17:04
どうもありがとうございました.m(_ _)m
無誤差は難しいですかぁ.
入力から出力まで有理数表現で表せれば可能だと聞いたのですが,
そのような方法は可能ですか?
たびたび,申し訳ございません.
よろしくお願いします.

     [このページのトップへ]


408. Re^2: 無誤差な連立方程式  竹澤  2002/11/15 (金) 09:34
> 入力から出力まで有理数表現で表せれば可能だと聞いたのですが,
> そのような方法は可能ですか?

 可能です。
 Mathematica 3.0Jで,
Solve[{x+y==1/7, x+1000000000000001/1000000000000000y==2/7},{x,y}]
という連立方程式を解いたところ,答えは以下のものでした。
x = 999999999999999/7,
y = 1000000000000000/7
統計学では,数値的な誤差がない答えが必要になることは希でしょう。
しかし,特に意味がない答えであってもその答えを知りたい,ということは
あるかも知れません。

     [このページのトップへ]


409. Re^3: 無誤差な連立方程式  竹澤  2002/11/15 (金) 10:19
 おっと
>x = 999999999999999/7,
>y = 1000000000000000/7
ではなく,
>x = -999999999999999/7,
>y = 1000000000000000/7
です。
 ついでに,どうして誤差なしになるかを申し上げます。
x+y=a/b
x+2y=c/d
という連立方程式を解くとします。a,b,c,dはすべて整数です。
このとき,a,b,c,dに数値を与えずに,単にxとyについて解きます。
 すると,
x=?/??, y=???/????
という答えが得られます。
そして,a,b,c,dに数値をあてはめ,約分できるものは約分すれば,
得られる分数(あるいは整数)は,誤差がないものになります。
 土木の構造計算では,連立方程式が非常に悪条件であっても,
その答えが意味を持つことがあるので,連立方程式を誤差なしで
解くことは重要だ,という話を聞いたことがあります。

     [このページのトップへ]


413. Re^4: 無誤差な連立方程式  青木繁伸  2002/11/15 (金) 12:02
Mathematica はあまり使わなくて,しかも他の用途で使っているので,こんなこともできるとわかり,嬉しくなりました。

Solve[{x + y == 1654541212645687456456/7456123123456123123,
x + 10000000000000000000000000001/10000000000000000000000000y ==
278415215456123123/787845645612345612315645317}, {x, y}]
を解くと,{x -> 130352308986907276666085466007151050609700796553476905443593850969479778\
16552/586839986182846380234235802043175668395205744906629309507951243947503649\
91, y -> -\
13035230898669989444330961261324852590706425434230000000000000000000000000/
58683998618284638023423580204317566839520574490662930950795124394750\
364991}}
となったりしました。

しかし,これが実際どんな数値なのか,計算したとたんに誤差が出てしまいます。
電卓を使って統計学の計算をさせるとき「計算の途中では分数式のままにしておいて,計算は一番最後にしなさい」というのと結局は同じですね。

     [このページのトップへ]


399. Re^2: 無誤差な連立方程式  青木繁伸  2002/11/14 (木) 18:47
> 無誤差は難しいですかぁ.

数値計算では,無理です。
Mathematica は少なくとも途中までは数値計算ではなくて式計算(なんていうのだったけ,要するに式を使って表す)ですから,最終的には得られた式を「計算」しないと数値解は得られないわけです。

> 入力から出力まで有理数表現で表せれば可能だと聞いたのですが,
> そのような方法は可能ですか?

係数に無理数があったり,そうでなくても結果に無理数が出てくるときはどうします。それを考えても無理であることが明らかでしょう。

最初にお聞きしたように,何のために誤差のない結果が欲しいのかに依存します。通常は,有効桁が10数個あれば,実用上何の問題もないと思いますが?

     [このページのトップへ]


391. Re: 無誤差な連立方程式  竹澤  2002/11/13 (水) 09:10
> 連立1次方程式を解く時に,無誤差で解けないかなぁとおもっているのですが
> 何か良い方法はありますか?

 Mathematicaなどを使えば可能です。
以下のところに書かれているようなことができるわけです。

http://documents.wolfram.com/v4-ja/MainBook/1.5.7.html

中学生がこういうものを使って,数学の宿題を片づけたりすると,
先生は困るのでしょうね。

     [このページのトップへ]


395. Re^2: 無誤差な連立方程式  ひの  2002/11/14 (木) 00:02
> 中学生がこういうものを使って,数学の宿題を片づけたりすると,
> 先生は困るのでしょうね。

先生は困らないでしょう。本人がテストのときに困るだけです。

     [このページのトップへ]


389. Re: 無誤差な連立方程式  ひの  2002/11/13 (水) 00:09
手で解けば良いのではないですか。コンピュータで数値計算をする限り,無誤差で解けるのは,係数や解が全て整数か2の累乗になる場合だけです。

     [このページのトップへ]


388. Re: 無誤差な連立方程式  青木繁伸  2002/11/12 (火) 23:45
> 連立1次方程式を解く時に,無誤差で解けないかなぁとおもっているのですが
> 何か良い方法はありますか?
> ご存知の方がいらっしゃいましたらよろしくお願いします.
> 参考文献とかでもいいんでご教授ねがいます.

誤差なく解く方法というのはどういうのをイメージしているのでしょうか。
コンピュータは2 進数を扱うので,10進数で循環小数でないものもコンピュータ上では循環小数になってしまうと言うことはご存じですね。

分数を使っても,固定小数点数を使っても,全てが解決できるわけではないですよね。

     [このページのトップへ]


● 「統計学関連なんでもあり」の過去ログ--- 021 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る