mathmaticaで次のような連立方程式をSolventを用いて解こうとしたのですがうまくいきませんでした。どうすればうまくいきますか?

-0.82a+b+f+0.8g=0, a-b+c=0,b-c+d=0, c-d+e=0,
d-e+f=0, e-f+a=0, 0.8a-0.82g=0,
a^2+b^2+c^2+d^2+e^2+f^2+g^2=1

A 回答 (2件)

#1です。


A#1の補足質問の回答

>同じ要領で下の計算をしようとしたらまた答えが出なくなりました。
なぜ解けないか?
それは、未知数より方程式の数か1つ多いからです。
その余分な1つ分の方程式が1次独立でなく、他の方程式は全部1次独立であれば、未知数の数と一次独立な方程式の数が同数になって解けます。
理論的には、未知数7個、方程式8個で1次独立な方程式が1つ混じっているのであれば、解けますが、実数の数値計算の場合、実数の定数の打切り誤差が入るため、一次独立でない方程式がなくなって、8個の一次独立な方程式になって、変数は7個となれば、方程式は解が存在しない不能な状態に陥ってしまいます。

解決方法は、2つ考えられます。
方法1)どれか1つの方程式を抜くことです。残りの7つの方程式を連立にして解けば、解が出せるでしょう。このやり方では計算機の数値計算の誤差のオーダーは推測ができません。

方法2)誤差分としての未知数hを1つ追加して、(小数点以下の数値を含む実数係数を持つ)1つの方程式の左辺にhを挿入し、そしてそのhを解くべき未知数の組に加えると解が出せます。そしてhの値からどの位のオーダーの誤差が入っているかの推測ができます。

方法2)で最初の方程式の左辺にhを加えて、連立方程式をwxMaximaで18桁の精度で解いてみた所、a~fの解が小数点第1位の桁から有効桁数が現れる正負の数値だったのに対し、hは小数点第8位から有効桁数が現れる数値として出てきています。つまり、計算精度の桁数は7桁位と推測されます。
方程式の係数に見かけ上、有効桁数16桁の係数が使われた方程式も、実質の計算精度は有効桁数が8桁程度しかないということを物語っているかと思います。多分8番目の式は理論式だと思われるので誤差は無いと思いますが、他の方程式の係数が本当に16桁目まで正確に求められているかが問題になります。本来ゼロまたは16桁以下になるべきhが、実際は10^(-8)のオーダーででて来るということは、係数にそれだけの誤差が含まれていると考えて良いかと思います。

数値計算では、冗長な式(一次独立でない方程式)が冗長で無い一時独立でない方程式に変貌して解けなくなることが起こります。補足質問の連立方程式の数値計算がまさにそれに該当します。覚えておけば、今後役立つでしょう。
基本といえば基本的なことですが、方程式の数と未知数の数が一致しないと、解が不能になったり、不定になって、特定の解が求まらなくなるということです。
    • good
    • 0
この回答へのお礼

返信が遅くてごめんなさい。
2つ目の方法で解くことができました。
今回のことはとてもためになりました、ありがとうございます。

お礼日時:2009/06/03 18:57

mathmaticaは今は使える環境に無いの分かりませんが


MapleやwxMaximaでのsolveでは解けました。

式をコピーアンドペーストで貼り付けてやるとエラーになりますので、
定数と変数の積のところに掛け算記号「*」(アスタリスク)を入れてやれば解けると思います。
また、定数の0.82を82/100, 0.8を8/10のように書いてやると答えが実数でなく分数(有理数)形式で表示してくれますのですっきりします。

やってみて結果を補足に書いて見てください。

結果は次のように2組の解が出てきました。
[a=0,b=-1/2,c=-1/2,d=0,e=1/2,f=1/2,g=0],
[a=0,b=1/2,c=1/2,d=0,e=-1/2,f=-1/2,g=0]
    • good
    • 0
この回答へのお礼

ありがとうございました。
おかげさまで同じ回答にたどり着きました。
どうやらスペースの入れ忘れで掛け算ができてなかったっぽいです。

しかしまた問題ができてしまったので、
できればもう少し教えてください。
同じ要領で下の計算をしようとしたらまた答えが出なくなりました。

In[13]= Solve[{-2.0330486504573965*a + b + f + 0.4*g == 0,
a - 2.2330486504573965*b + c == 0,
b - 2.2330486504573965*c + d == 0,
c - 2.2330486504573965*d + e == 0,
d - 2.2330486504573965*e + f == 0,
e - 2.2330486504573965*f + a == 0,
0.4*a - 0.2330486504573965*g ==0,
a*a + b*b + c*c + d*d + e*e + f*f + g*g == 1},
{a, b, c, d, e, f, g}]
Out[13]= {}

こうなったんですがこれはどこが問題なんでしょう?

お礼日時:2009/05/29 18:30

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q連立方程式の解き方がいまいちぱっとしません だいたいの連立方程式は右図のようにしますがこの問題のよう

連立方程式の解き方がいまいちぱっとしません だいたいの連立方程式は右図のようにしますがこの問題のように勝手に足し合わしたりしていんでしょうか。

Aベストアンサー

肝心な数学の基礎が全く脱落しているようです。中学校一年の数学の教科書を取り出してしっかり復習しましょう。
・・・冗談でも嫌味でもなく、本当に大事なところが抜けてしまっている・・・深刻です。

小学校の算数から中学の数学になったときに計算が大きく変わりましたね。
1) 引き算は、その数の負数を加えること。
  負数とはその数に加えると0になる数
2) 割り算は、その数の逆数をかけ合わせること・
  逆数はその数にかけると1になる数
・・・この二つのことで、未知数であっても初めて計算が自由に扱えるようになった。
 小学校では、5個×3=15本だったし、3-2≠2-3、2÷3=3÷2だったのが、
       5(本)×3 = 3× 5 (本)、3+(-2)=(-2)+3、2×(1/3) = (1/3)×2
3) 両辺が=の関係である時、両辺に同じ処理をしても=の関係は変わらない。
 2x - 4 = 6  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄★
すなわち
 2x + (-4) = 6
  両辺に 4を加えると
 2x + (-4) + 4 = 6 + 4
 2x = 10      結果であるテクニックとしての[移項]は知っている
  両辺に(1/2)をかける
 2x × (1/2) = 10 × (1/2)
  交換則で
 x × 2 ×(1/2) = 5
  x = 5

たったこれだけを中学一年で一年かけて徹底的に学んだはず・・・中学数学の半分はこれと言ってもよい。
底が抜けているので、いくら解き方を覚えても役には立たない。
 [移項]処理は、「両辺に同じ処理をしても=の関係は変わらない」ことの結果にしか過ぎない。その結果--解き方だけ覚えて、理数科でもっとも肝心な「理由」を身につけてこなかった---でしょ!!!

 だから連立方程式は、未知数を一つずつ消していくという「消去法」というテクニックしか身についていない。繰り返しますが、理科や数学は解き方をいくら覚えても、せいぜい、その時の試験しかパスしない。

例えば、
 a + b = 0
 b - a + c = 0
 a + c - 1 = 0
という式があったとします。どうやって解きますか?
掃き出し法で解いてみましょう。

1) まず、式を下記のように変形します。
  a + b   = 0  一番下の式を加え
 -a + b + c = 0
  a   + c = 1

 2a + b + c = 1 中の式を引く
 -a + b + c = 0
  a   + c = 1
★ 両辺が=の関係である時、両辺に同じ処理をしても=の関係は変わらない。
   ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄★
  ここはわかりますか>>>だってすべての式は=で結ばれている。

 3a     = 1 3で割る
 -a + b + c = 0
  a   + c = 1

  a     = 1/3
 -a + b + c = 0
  a   + c = 1  一番上の式を引く

  a     = 1/3
 -a + b + c = 0  一番上の式を加えて
      c = 2/3

  a     = 1/3
    b + c = 1/3 一番下の式を引く
      c = 2/3

  a     = 1/3
    b   = -1/3
      c = 2/3

 これは「掃き出し法」と言われる解き方で、連立方程式を解く一番たくさん使われている方法です。特にコンピューターで計算しやすいためにコンピュータで解くときは100%この方法です。

 下記に、これを

  1  1  0 = 0
 -1  1  1 = 0
  1  0  1 = 1

と書き直して、簡単にする方法を説明しています。

参考)これってどうやって解くんですか?? - 数学 | 教えて!goo( https://oshiete.goo.ne.jp/qa/9194001.html )

 何度も繰り返しますが、「解き方」を覚えて、それを使って解くのではなく、なぜその方法で解けるのかを理解するようにしましょう。そうすれば、見たことない問題でも解けようになる。公式忘れたって公式をその場で作ればよい。

肝心な数学の基礎が全く脱落しているようです。中学校一年の数学の教科書を取り出してしっかり復習しましょう。
・・・冗談でも嫌味でもなく、本当に大事なところが抜けてしまっている・・・深刻です。

小学校の算数から中学の数学になったときに計算が大きく変わりましたね。
1) 引き算は、その数の負数を加えること。
  負数とはその数に加えると0になる数
2) 割り算は、その数の逆数をかけ合わせること・
  逆数はその数にかけると1になる数
・・・この二つのことで、未知数であっても初めて計算が自由に...続きを読む

QA=([a,b],[c,d])に対し,A^2+xA+yE=0,E=([

A=([a,b],[c,d])に対し,A^2+xA+yE=0,E=([1,0],[0,1])となるx,yを求めよ。できるだけ詳しく教えてください。よろしくお願いします。

Aベストアンサー

> x,yを求めよ。とあると,
> 文字を使わない数字で答えが出なければいけないと思ってるのですが

文字にも「既知量」の文字と「未知量」の文字があります。
今の場合、a, b, c, d が既知量の文字として与えられているので、
x = (a,b,c,d の式)
y = (a,b,c,d の式)
の形であらわせ、というのが、ここで求められていることです。

ちなみに k は問題文中にありません。 注意してください。
(alice_44さんの解答の意味を分かっていれば k を a,b,c,d に関係づけるのは簡単なことですが、ここにはあえて書きません。 自分で考えないと勉強にならないから。)

あと「初心者」ということですが、だったらケーリー・ハミルトンみたいな「教えてもらった便利な公式」に頼るのはそれこそ邪道であって、正直にA^2を計算して連立方程式に持ち込むべきでしょう。 しょせんxとyについての連立1次方程式なのですから。

Q分数の連立方程式の解き方を教えてください。

分数の連立方程式の解き方を教えてください。
 a=4500000+60000/260000b
 b=4250000+30000/180000a

Aベストアンサー

[問題] は
 a = 4500000 + (60000/260000)b
 b = 4250000 + (30000/180000)a
なのですね。

ならば、
 a = 4500000 + (60000/260000)b   (1)
   ↓ 代入して、
 b = 4250000 + (30000/180000)a
  =4250000 + (30000/180000){4500000 + (60000/260000)b}
を、まず解くのでしょう。

b の項を左に集めれば、
 b - (30000/180000)(60000/260000)b = 4250000 + (30000/180000)4500000
 b(25/26) = 4250000 + 750000 = 5000000
 b = 200000*26 = 5200000   (2)

ここで (1) へ戻り、
 a = 4500000 + (60000/260000)*5200000
  = 4500000 + 60000*20
  = 4500000 + 1200000
  = 5700000

…かな?
検算してみて頂戴。。
  

[問題] は
 a = 4500000 + (60000/260000)b
 b = 4250000 + (30000/180000)a
なのですね。

ならば、
 a = 4500000 + (60000/260000)b   (1)
   ↓ 代入して、
 b = 4250000 + (30000/180000)a
  =4250000 + (30000/180000){4500000 + (60000/260000)b}
を、まず解くのでしょう。

b の項を左に集めれば、
 b - (30000/180000)(60000/260000)b = 4250000 + (30000/180000)4500000
 b(25/26) = 4250000 + 750000 = 5000000
 b = 200000*26 = 5200000   (2)

ここで (1) へ戻り、
 a = 4500000 + ...続きを読む

Qa^(a+b)=b^24,b^(a+b)=a^6を同時に満たす1と異なるの正数a,bを求めよ

こんにちは。

[問]
a^(a+b)=b^24,b^(a+b)=a^6を同時に満たす1と異なるの正数a,bを求めよ。
[解]
a+b=24log[a]b
a+b=6log[b]a=6/log[a]b
なので
(log[a]b)^2=1/4
log[a]b=±1/2
a^(±1/2)=b
からどうしてもa,bが定まりませんどうすれば定まりますでしょうか?

Aベストアンサー

>a,b(>0)の大小関係のいかんによってはlog[a]b<0も有り得るのでは??

ええ、もちろん log[a]b を単独でみるときはそうです。でも、この式
   a+b=24log[a]b をみると、a も b も正の数ですから、左辺は
正の数ですよね。ということは、右辺の log[a]b は正の数でなければな
りませんよね?そういう意味で log[a]b>0 といったのです。
したがって、もし b=a^(-1/2)を log[a]b に入れると log[a]a^(-1/2)=-1/2
となり、a+b=-12 で「a,bは正の数」と言うことに矛盾してしまいます。

納得できたでしょうか。説明が足りなくてすみませんでした。

Qこの連立方程式の解き方を具体的に教えて下さい(恥ずかしながら忘れてしまいました(泣)) 答えは書いて

この連立方程式の解き方を具体的に教えて下さい(恥ずかしながら忘れてしまいました(泣))
答えは書いてあるのですが、連立方程式の解き方がカットされていて……


よろしくお願いします。

Aベストアンサー

上の式を360倍します。
 2x+3y=4320

下の式は150倍して変形します。
 x+y=1800
 x=1800-y

このxの値を先の式に代入します。
 2(1800-y)+3y=4320
 3600-2y+3y=4320
 y=4320-3600=720

このyの値を3番目の式に代入します。
 x=1800-720=1080

x=1080、y=720です。

Qa^2+b^2+c^2=3 のとき、a^3+b^3+c^3+3abc<

a^2+b^2+c^2=3 のとき、a^3+b^3+c^3+3abc<=6 を示せ。
(ただし,a>0,b>0,c>0)これは、既出の問題で、添削をしてもらい、間違いを指摘してもらいました。
いろいろ考えましたが、良い考えがでません。
添削してもらった解答は、c<=b<=a と置いて、これより、c<=1 が分かる。
また、相加相乗を使うと、abc<=1 となるので、証明する式は、
a^3+b^3+c^3<=3 となる。ここで、c<=1だから、a^3+b^3+c^3<=a^3+b^3+1^3となるので、
a^3+b^3<=2を a^2+b^2+1^2=3,つまり、a^2+b^2=2のもとで示せばよい。
としてしまいましたが、c=1でa^3+b^3+c^3が最大になるとは限らないので、ここで考えは
破綻しました。
良い考えがありましたら、よろしくお願いします。

Aベストアンサー

>a^3+b^3+c^3≦3が示された

反例
(√5/2)^2+(√5/2)^2+(√2/2)^2=3
(√5/2)^3+(√5/2)^3+(√2/2)^3>3

Q連立方程式の解き方

 0.8x-0.6y=6500
 
 0.4y-0.2x=1400

の連立方程式の解き方と途中式を教えて下さい。

Aベストアンサー

係数が小数のままだと計算を間違えやすいので、
両辺を10倍なり100倍なりすることにより桁を上げます。

0.8x-0.6y=6500
両辺を10倍すると
8x-6y=65000
両辺を2で割ります。
4x-3y=32500・・・※1

0.4y-0.2x=1400
両辺を10倍すると
4y-2x=14000
みやすいように項を入れ替えます。
-2x+4y=14000
両辺を2で割ります。
-x+2y=7000・・・※2

※1と※2の連立方程式となります。

ここでは加減法で解いてみます。
(※1)+4×(※2)
4x-3y=32500
-4x+8y=28000

5y=60500
y=12100

y=5500を※2に代入
-x+2*12100=7000
-x=-17200
x=17200

よってx=17200,y=12100・・・答え

別解)代入法で連立方程式を解く
※2よりx=2y-7000・・・※3
これを※1に代入
4(2y-7000)-3y=32500
8y-28000-3y=32500
5y=60500
y=12100
これを※3に代入すると
x=2*12100-7000=17200

係数が小数のままだと計算を間違えやすいので、
両辺を10倍なり100倍なりすることにより桁を上げます。

0.8x-0.6y=6500
両辺を10倍すると
8x-6y=65000
両辺を2で割ります。
4x-3y=32500・・・※1

0.4y-0.2x=1400
両辺を10倍すると
4y-2x=14000
みやすいように項を入れ替えます。
-2x+4y=14000
両辺を2で割ります。
-x+2y=7000・・・※2

※1と※2の連立方程式となります。

ここでは加減法で解いてみます。
(※1)+4×(※2)
4x-3y=32500
-4x+8y=28000

5y=60500
y=12100

y=5500を※2に代入
-x+2*12100=7000...続きを読む

Qx+y+z=0,2x^2+2y^2-z^2=0のとき,x=yであることを証明せよ。

クリックありがとうございます(∩´∀`)∩

 ★x+y+z=0,2x^2+2y^2-z^2=0のとき,x=yであることを証明せよ。

この問題について説明をお願いします。

Aベストアンサー

おおざっぱな説明になりますが、左の式を
z=-x-y
として、それを右の式のzに代入します。
それを展開してまとめると
x^2-2xy+y^2=0
という式になります。
あとはこれを因数分解すれば
(x-y)^2=0
となるので、x=yという答えがでます。
与えられた条件がほかになければこれでいいはずです。

Qこの連立方程式の解き方を教えてください

この連立方程式の解き方を教えてください

Aベストアンサー

分数だから、ややこしく感じるのでしょうね。
上の式は両辺を15倍に、下に式は両辺を12倍してみて下さい。
①、② の様な整数の式になると思います。

3(2x+3y)=150ー5y ・・・①
9xー4(yー3)+12x=60 ・・・②

①を整理すると、6x+9y=150 ・・・③
②を整理すると、21x-4y=48 ・・・④

③、④ ここまでくれば、普通の連立方程式ですから
簡単に解けると思いますが。
 因みに、x=4,y=9 になると思いますが、計算は確認して下さいね。

QF_n=(a+b+c)^(2n+1)-{a^(2n+1)+b^(2n+1)+c^(2n+1)} の因数分解

F_n=(a+b+c)^(2n+1)-{a^(2n+1)+b^(2n+1)+c^(2n+1)} 
(n=1,2,3,4,5)
を因数分解せよ、という問題なのですが、どすればよいのでしょうか?

なお、答えは、

F_1=3(b+c)(c+a)(a+b)
F_2=5(b+c)(c+a)(a+b)(Σa^2+Σab)
F_3=7(b+c)(c+a)(a+b)(Σa^4+2Σa^3 b+3Σa^2 b^2+5Σa^2 bc)
F_4=3(b+c)(c+a)(a+b)(3Σa^6+9Σa^5 b+19Σa^4 b^2+35Σa^4 bc+23Σa^3 b^3+63Σa^3 b^2 c)
F_5=11(b+c)(c+a)(a+b)(Σa^8+4Σa^7 b+11Σa^6 b^2+21Σa^6 bc+9Σa^5 b^3+54Σa^5 b^2 c+23Σa^4 b^4+84Σa^4 b^3 c+123Σa^4 b^2 c^2+159Σa^3 b^3 c^2)

のようなのですが、(b+c)(c+a)(a+b)を因数に持つことは分かりますが、残りの因数はどうやってもとめるのでしょうか?

一文字を変数と見て、地道に割り算するしかないのでしょうか?
効率的な計算方法はありますでしょうか?

F_n=(a+b+c)^(2n+1)-{a^(2n+1)+b^(2n+1)+c^(2n+1)} 
(n=1,2,3,4,5)
を因数分解せよ、という問題なのですが、どすればよいのでしょうか?

なお、答えは、

F_1=3(b+c)(c+a)(a+b)
F_2=5(b+c)(c+a)(a+b)(Σa^2+Σab)
F_3=7(b+c)(c+a)(a+b)(Σa^4+2Σa^3 b+3Σa^2 b^2+5Σa^2 bc)
F_4=3(b+c)(c+a)(a+b)(3Σa^6+9Σa^5 b+19Σa^4 b^2+35Σa^4 bc+23Σa^3 b^3+63Σa^3 b^2 c)
F_5=11(b+c)(c+a)(a+b)(Σa^8+4Σa^7 b+11Σa^6 b^2+21Σa^6 bc+9Σa^5 b^3+54Σa^5 b^2 c+23Σa^4 b^4+84Σa^4 b^3 c+123Σa^4 b^2 c^2+159Σa^3 b^3 c^...続きを読む

Aベストアンサー

最後までは計算していませんが、次の方法でできそうです。
F_n = (b+c)(c+a)(a+b)(Σ[ABC] k_ABC a^A b^B c^C) とおきます。
(ここで、A+B+C = 2n+1 です。)
展開すると、F_n = (a^2 b + 略 + 2abc)(Σ[ABC] k_ABC a^A b^B c^C) です。
そして、F_n を例えば、a で A+2 回偏微分、a で B+1 回偏微分、
a で C 回偏微分、した後、a,b,c に 0 を代入します。
F_n=(a+b+c)^(2n+1)-{a^(2n+1)+b^(2n+1)+c^(2n+1)} に対しても同じようにします。
このようにすると、例えば C > 0 であれば、
k_ABC (A+2)!(B+1)!(C)! = (2n+1)! となり、係数が得られます。


人気Q&Aランキング