• ベストアンサー

連立一次方程式における正のみの解

連立一次方程式を掃き出し法で解いているのですが、負の値が出てしまって困っています。 物理的には正の値しか出ないはずのものを計算しているので。 解に正の値しか持たなくさせる方法はないでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • ibm_111
  • ベストアンサー率59% (74/124)
回答No.5

要するに、式(条件)の数が変数より多い場合に もっともらしい解を出力したいという事でよいですか? 以前、この問題を調べた時に、共役勾配法が最適という結論に達しました。 https://www.google.co.jp/search?client=ubuntu&channel=fs&q=%E5%A4%89%E6%95%B0%E3%81%AE%E6%95%B0%E3%80%80%E5%BC%8F%E3%81%AE%E6%95%B0%E3%80%80%E9%80%A3%E7%AB%8B%E4%B8%80%E6%AC%A1%E6%96%B9%E7%A8%8B%E5%BC%8F%E3%80%80&ie=utf-8&oe=utf-8&hl=ja#channel=fs&hl=ja&q=%E5%85%B1%E5%BD%B9%E5%8B%BE%E9%85%8D%E6%B3%95%E3%80%80%E9%80%A3%E7%AB%8B%E4%B8%80%E6%AC%A1%E6%96%B9%E7%A8%8B%E5%BC%8F&safe=off ただし、共役勾配法はいろいろと拡張があり、 それぞれに得手不得手があるようなので、 自分の問題に応用できるかどうか調べてから利用することをお勧めします。

wrusagi
質問者

お礼

ありがとうございます。 私も共役勾配法に行き着いたのでさっそく実装して試してみました。 逆問題になっているので、良い評価関数を考えるのが難しく、まだ満足行く解にはなっていませんが。

その他の回答 (5)

  • ibm_111
  • ベストアンサー率59% (74/124)
回答No.6

間違えました。 式の数=12 変数の数=1000 だから、変数のほうが多いんですね。 そうしますと、解はパラメータ表示することになって 「解に正の値しか持たなくさせる」という目的は そのパラメータ次第ということになりますが。 それとも、どんなパラメータを持ってきても正になりそうにないので 困っているということですか?

  • bgm38489
  • ベストアンサー率29% (633/2168)
回答No.4

問題を示してくれないと、答えようがありません。物理的に正の値しか出ないはずの問題を解いてるのであれば、問題・解き方が間違っているか、「この条件からは物理的にありえない負の値が答えとなってしまう。よって、解なし」と言うのが答えかもしれない。

wrusagi
質問者

お礼

修正 >ここからどうにかしてもっともらしいa1~a12を得たいのです。 ここからどうにかしてもっともらしいa1~a1000を得たいのです。

wrusagi
質問者

補足

a1・f1(1) + a2・f1(2) + … + a1000・f1(1000) = b1 a1・f2(1) + a2・f2(2) + … + a1000・f2(1000) = b2 ・ ・ ・ a1・f12(1) + a2・f12(2) + … + a1000・f12(1000) = b12 という式があり、 未知数 a1 ~ a1000 定数 f1() ~ f12()、 b1~b12(測定値、誤差を含む) となっています。 ここからどうにかしてもっともらしいa1~a12を得たいのです。 今はとりあえず1000を12で割ったところで区切って、A1 ~ A12を定義し、 A1・f1(0 ~ 83) + A2・f1(83 ~ 166) + … + A12・f1(917 ~ 1000) = b1 A1・f2(0 ~ 83) + A2・f2(83 ~ 166) + … + A12・f2(917 ~ 1000) = b2 ・ ・ ・ A1・f12(0 ~ 83) + A2・f12(83 ~ 166) + … + A12・f12(917 ~ 1000) = b12 として式の数と未知数を一致させて連立方程式で解いてみたのですが、負の値は出るし(数学的にはただしのでしょうが)無理やり当てはめたような結果が出てしまって散々でした。 何か良い方法ないでしょうか?

noname#190065
noname#190065
回答No.3

 ちょっと反則かもしれませんが、数学ソフトを使って計算してみたらどうでしょうか。

wrusagi
質問者

補足

検算して正しいのでプログラムミスではないです

  • alice_44
  • ベストアンサー率44% (2109/4759)
回答No.2

(1) 正でも何でも好きな解をひと組好きに作る。 (2) その解が満たす方程式をでっち上げる。 (3) 方程式を入れ換える。 この手法が使えないケースでは、 出てきた解を信じるか、計算ミスを探すしかない。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

そもそも数値が間違っている という可能性は無視していいんですか? 例えば ・数値を入れる場所を間違えた ・(計測値を使って計算しているとして) 計測を間違えた という可能性は考えられる. あるいは, 「数値が間違っている」というわけではないけど ・計測値の誤差の影響 という状況だってあり得る. もちろん ・計算を間違える ということも不可能ではない.

wrusagi
質問者

補足

たしかにそのとおりです。 誤差を含んでいます。 今の結果は誤差を含めて無理やり当てはめたような感じになっています。 誤差の影響を最小にした結果を求めたいと考えています。

関連するQ&A

  • 連立方程式の解

    連立方程式の解 連立方程式{ax+by=9 の解が bx-ay=-2 x=4,y=-1 であるときa,bの値を求めなさい。 この問題が分かりません! 解き方を教えてください! お願いします!

  • ラグランジュ未定乗数法の解を非負解に限定したい

    ラグランジュ未定乗数法の解を非負解だけにするということは可能ですか? 逆問題を解いてるのですが、物理的に正の値しか取らないはずなので解を正のみに制限したいんです。

  • 連立方程式について

    方程式が同じというのはどういう意味なのでしょうか。 解が等しければ同じ方程式ということですか? 例 x+y=2 両辺に2をかけると→2X+2y=4 この2つの方程式が同じとはどういうことですか? 連立方程式で①と②のしきがあったとき、①と②を同時に満たす値を求めるのに ①を何倍かした式①’と②を計算していいのはなぜですか? ①と①’がおなじだからという事だとは思いますが、 式がおなじとはなんでしょうか、、

  • 連立方程式の解と定数a

    連立方程式の解と定数a x、yの連立方程式 ax+by=9 bxーay=ー2 の解がx=4、y=ー1となるaの値を求めよ この問題はx=4,y=-1を代入してaを求めて解くと思いますが、 これは連立方程式の解がx=4,y=-1となるための必要条件じゃないんですか? つまりといた後にそのaで確かに(4,-1)(のみ?)が解となるか確かめる必要があるんじゃないですか? 数学はまったく苦手なので質問がまとはずれでしたらお知らせください。よろしくお願いします

  • 解が無数にある(連立方程式)

    添付しました画像の連立方程式の解が「無数にある」理由をわかりやすく教えていただけないでしょうか? よろしくお願い申し上げます。

  • 連立方程式について

    連立方程式について 連立方程式の解を求める際、係数を揃えるために、両辺に同じ数をかける時 がありますが、 ふたつの方程式が組み合わさった、連立方程式の場合、一方の方程式ともう一方の方程式に当てはまる解を求めているのに、なぜ一方の式の両辺に同じ数をかけた方程式ともう一方の方程式とを計算できるのですか?数をかける前と後の方程式は同じということですか?そうだとしたら、なぜ数をかけているのに同じということになるのでしょうか。 分かりずらい文章ですみません、、

  • 連立方程式 解の存在

    教えてください!! 次の連立方程式において、解が存在しないのは、Kの値がいくらのときか。 Kxー6y=K+2 2x+(Kー7)y=3 選択肢は、(1)1(2)2(3)3(4)4(5)5 になっているのですが・・・・・ 宜しくお願いいたします。

  • 連立方程式の解

    以下の連立方程式の解と式を教えて貰えませんか? x=3y-7 x+5y=9 です。分かりやすく教えていただけると助かります。

  • 方程式の解の存在範囲

    aを実数の定数として、異なる2つの実数解をもつxの二次方程式 x^2+ax+2a^2-8=0 を考える。 このとき、 (1)x=0が1つの解で他の解が正のとき、aの値を求めよ。 (2)1つの解が負で、1つの解が正のとき、aの値の範囲を求めよ。 (3)1つの解のみ正のとき、aの値の範囲を求めよ。 (4)2つの解がともに正のとき、aの値の範囲を求めよ。 おねがいします

  • 二次方程式の解の配置について

    aを実数の定数として、異なる二つの実数解をもつ二次方程式x^2+ax+2a^2-8=0がある (1)x=0が一つの解で、他の解が負のときaの値を求めよ (2)少なくとも1つの解が正ならば、なにか<a<なにかである (1)はできたのですが、(2)が分かりません…解答お願いします