いま、FORTRANで連立方程式を解きたいと思っています。そこで、どんな方程式なら解けるのかということを人に聞いたところ、次の(1)と(2)の場合しか解けないと言われました。

(1)マトリクスの形で表現できるもの
(2)未知数が1つだけのもの

これは本当ですか?(1)と(2)以外の場合は解けないのですか?教えてください。

また、(1)と(2)しか解けない場合でも、そうでない場合でも、その理由を簡単に説明してください。

よろしくお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

(1)(2)のような単純な判断にはなりません。


実数または複素数の場合は、次のように考えます。

[ア]未知数がN個ある。
[イ]独立で、矛盾しない方程式がM個ある。

この場合、M>N なら解けません。M≦Nなら解けます。ただし、M<Nの場合は、不定方程式といって、解の中に任意の値をもつ変数が入ります。
(例)2つの未知数x,y について1つの式 x+y=1 がある場合、解はtを任意の値として x=t, y=1-t

「独立」の意味は、ある方程式から別の方程式を導くことができないということです。たとえば、式1と式2から式3が導ける場合、これらは独立ではありません。
(例)x+y+z=3, x-y-z=1, y+z=1 は独立ではありません。

方程式が矛盾する場合は解けません。
(例)x+y=3, x+z=4, z-y=5 は矛盾しています。

変域が限られている(たとえば整数)場合は、特殊な取り扱いが必要です。また、二次以上の方程式では、解が複数ある場合や、複素数なら解があるが実数では解がないという場合があります。

連立一次方程式で、未知数がN個、方程式がM個 の場合は、係数を行列で表わして、
AX=B
A:係数の行列(N行M列) X:未知数の列ベクトル(N行1列) B:定数項の列ベクトル(M行1列)
と書けます。マトリクスとは行列のことです。

行列式とか、行列の階数というものを計算して、解の有無を判定します。どんな場合に解がありどんな場合に解がないのか、という議論は次のページに詳しく書いてあります。
http://next1.cc.it-hiroshima.ac.jp/MULTIMEDIA/li …

参考URL:http://next1.cc.it-hiroshima.ac.jp/MULTIMEDIA/li …

この回答への補足

詳しく説明していただきありがとうございます。

補足します。私の扱っている連立方程式はM=Nです。したがって、理論上は解けるはずです。ただし、かなり複雑な方程式なので、マトリクスの形にはなりません。このような場合でも解けるのですか?教えてください。

また、回答文中に

>この場合、M>N なら解けません。M≦Nなら解けます。

とありますが、この不等号の向きは逆だと思うのですが、どうなんでしょうか?

よろしくお願いいたします。

補足日時:2005/04/24 02:04
    • good
    • 0

No.1です。

補足への回答です。

不等号の向き(方程式が多すぎると解けない)は合っていますが、いくつか不適当なところがありました。

独立で矛盾しない方程式がN個を超えてあることはありませんので、[イ]を

[イ]独立な方程式がM個ある

と訂正します。
また、最後の部分で

A:係数の行列(N行M列)

は(M行N列)の誤りです。

さて、マトリクスにならないということは、二次以上の方程式であるか、非線形関数を含んでいるということだと思います。これが代数的に解ける見通しがない場合は、反復計算を使うことになります。反復計算にはいろいろな方法があります。たとえば、連立方程式が

x1 = g1(x1,x2,...,xN)
x2 = g2(x1,x2,...,xN)
...
というように表される場合は、適当な初期値x1,x2,...,xNから出発して次のx1,x2,..,xNを求める反復計算が考えられます。これは収束するとは限りません。

また、連立方程式が
f1(x1,x2,..,xN) = b1
f2(x1,x2,...xN) = b2
....
と表わされる場合、x1,x2,...,xNに適当な初期値を入れて求めた値とb1,b2,...,bNの差を残差e1,e2,...,eNとします。

ここで偏微分 ∂f1/∂x1, ∂f1/∂x2, ..., ∂fN/∂xN を求めるとこれらは行列になります。数式で求められない場合は数値微分によります。このとき、
(∂fn/∂x1)s1 + (∂fn/∂x2)s2 + … + (∂fn/∂xN)sN = en (n=1,2,...,N)
となるようなs1,...,sNを偏微係数を係数とする連立一次方程式を解いて求め、xk-sk(k=1,2,...,N)を次の近似値とするニュートン法は、最初にかなり良い近似値を選べば高速高精度です。

解が実数の範囲でないときは、複素数での計算が必要になります。その他、初期値の選び方や精度の検討、反復をどんな条件によりどこで打ち切るかの検討、収束しない場合の判定とエラー表示の検討が必要です。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。

お礼日時:2005/05/09 19:18

FORTRANで解くと言うことなので,多元連立1次方程式に限定すれば,代数的に解けるもの,解が存在するものは全て解けます。



別にマトリックス表現をしなくても,代数解法をそのままプログラミングすれば,解けます。つまり,解き方が分かっている連立方程式は,紙と鉛筆と時間さえあれば筆算で解けますね!そのときの解法をそのままプログラムにすれば解けると言うことです。ここで,マトリックスで表現するというのは,コンピュータの「最も解きやすい形で表現する」,位の意味です。

例えば,有限の元を持つ連立方程式でないと解けません。無限だと,代数的にも解けません。

例えば,多元連立1次方程式というのは,連立の数だけ未知数があります。3元連立方程式には3個の未知数があります。当然,連立の数よりも未知数の多い連立方程式は代数では解けません。これは,FORTRANという言語の問題でなく代数的な問題です。

例えば,0による除算を含む場合は,エラーになって解けません。ただし,0による除算を含まないような形に変形することで,出来るようになります。これも,代数的な問題でしょうね。

例えば,解がない場合。これも「代数的に解けない」に含まれますよね。

結局,代数的に解けないと解けないのです。逆に言うと,代数的に解ければ解けます。

これは,私の経験則ですが,専門的にどうなるかは,別の専門家の意見を聞いてみてください。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。

お礼日時:2005/05/09 19:17

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

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

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

Q多元連立方程式の解ける条件

例えば、10個の未知数を含む6個の式かがあるとします。

10個の未知数の内、4個が分かったとすると解ける場合もある、と思うのですが、これはどのように証明したらいいのでしょうか。

Aベストアンサー

←No.2「お礼」欄
「初期値」?
16元12連立「一次」方程式については…
方程式以外から値が与えられる未知数が3個では一意に解は求まらない →正しい
方程式以外から値が与えられる未知数は少なくとも4個必要 →正しい
方程式以外から値が与えられる未知数が4個あれば解が一位に決まる →係数による(から正しいとは言えない)

Q連立方程式はなぜ解ける?

中学で連立方程式を習って以来、
「文字2つに式2つだから解けるよね。」とか、「未知数3つに式が3つだから解けるね。」などと当たり前のように学校や塾で言われてきました。
初めは戸惑った記憶があるのですが、何度も言われたり自分で連立方程式を解くうちに「一般に未知数と式の数が同じ(あるいは式の方が多い)ならば解けるのか」ということを経験的に納得してきました。
しかし思い返すと、(私の記憶が正しければ)、学校の教科書に「一般に未知数と式の数が同じ(あるいは式の方が多い)ならば解ける。」なでという記述はなかったと思います。
基本的ながら、数学の一種のセンスとして重要なものの1つだと私は思うのですが、なぜ教科書には載っていないのですか?
また、私が中学生に連立方程式の解き方を教えている際に、「文字数2つに式2つだから解けるね。」と言った時、「なんで?」と言われたらなんと答えたらいいのでしょうか?
(「経験的に。」としか答えられません・・・。)
また、(多分あると思いますが)式と未知数の数が同じでも絶対(どんなに数学が発達しても)解けない連立方程式というのはあるのでしょうか?
尚、当方は高校数学までしか知識ありません・・・。

中学で連立方程式を習って以来、
「文字2つに式2つだから解けるよね。」とか、「未知数3つに式が3つだから解けるね。」などと当たり前のように学校や塾で言われてきました。
初めは戸惑った記憶があるのですが、何度も言われたり自分で連立方程式を解くうちに「一般に未知数と式の数が同じ(あるいは式の方が多い)ならば解けるのか」ということを経験的に納得してきました。
しかし思い返すと、(私の記憶が正しければ)、学校の教科書に「一般に未知数と式の数が同じ(あるいは式の方が多い)ならば解ける。...続きを読む

Aベストアンサー

しかし思い返すと、(私の記憶が正しければ)、学校の教科書に「一般に未知数と式の数が同じ(あるいは式の方が多い)ならば解ける。」なでという記述はなかったと思います。

************************************************
たしかに、ありませんね。
文部省は教科書検定をいつもやっているので
来年は追加ですね。

記述がないその理由は、線形代数学に委ねなければならないからです。
したがって、中学校で、その理由を説明することはできません。
(高校でも無理です。)
しかし、その結果を文章で書き込むことは可能だし、
必要と思われます。

行列式では、クラーメルの公式があります。
行列式の研究は2元2式や3元3式の連立方程式の
研究から始まったものと思われます。

Q1/(1-x)や1/(1+x)の積分形

あまりに簡単な問題ですいません。
1/(1-x)の積分形
1/(1+x)の積分形
を教えてください。

それと1/xの積分形はLog(x)と本に載っていますが
Ln(x)でも良いのでしょうか?

30歳を過ぎて頭がぼけてしまいました。
なにとぞ宜しく御願いします。

Aベストアンサー

∫1/(1-x)dx=-log(1-x)+C
∫1/(1+x)dx=log(1-x)+C

1/xを積分したときのlog(x)(正しくはlog|x|)は
常用対数(底が10)ではなく自然対数(底がe=2.71828183...)
なのでLn(x)と同じ意味です

Q未知数の数と必要な方程式の数が等しい理由

未知数の数だけ方程式の数が必要なのはなぜでしょうか?またこのことは確かなのでしょうか?
未知数が二つあれば方程式が二つ必要、ということには、今まで何の疑問もなくそうのように考え、今までそれでやってきました。しかし、今頃になって、本当に良いのだろうか思うようになりました。考えてみると、未知数二つに対して方程式一つでは、解けませんし、二つあれば確かに解けそうです。二つの方程式が適切なものあれば解けそうです。このことは、いままでみんながそうしているから間違いないだろう、自分の経験でも確かにそうだから、と思っていました。しかし、未知数の数だけ方程式の数が必要ということの理由や、それで大丈夫という証明は教わったことがないような気がします。馬鹿な疑問かもしれませんが、なにか教えていただけれると助かります。

Aベストアンサー

証明は簡単です。
N個の未知数を含むN個の方程式の任意の一つを取り出すと、これによって一つ未知数を消去できますね。これをN-1個の方程式について行なうと最後に残った方程式の未知数は一つとなり、これからその未知数の価を求めることができます。あとは消去した逆をたどれば残りの未知数も求められることになります。
 ただしN個の方程式を用意するというのは解くための必要条件であり、十分条件ではないことに留意してください。解けない場合があるのです。それはN個の方程式の中に他の方程式を足したり引いたりすると、その方程式になってしまうものが紛れ込んでいる場合です。一次連立方程式のときにはこれがときどき起こりますから用心してください。

Q「記」「以上」の使い方に付いて

仕事上の文章で社内外どちらの発信と限らず「下記の通り」等の表現を用いた場合、
「記」の後に詳細を記入し、「以上」で文面を〆めるものを頻繁に目にします

ところが、最近異動して来た上司が「以上」で〆る文章は社内のみで対外的には使用するべきではないと言っているのを耳にしました

その時は慌しさに追われて確認もしなかったのですが、
今、ふと思い出して、疑問に感じています

自分自身、全く知らずに「記」「以上」を乱用していたのですが、
この上司の言う事は常識でしょうか?
そうであれば、「記」のみで〆るのですか?
具体的な例を是非ご伝授下さい

Aベストアンサー

記書きスタイルのことですね。
社内でも社外でも、最後に「以上」で締めくくるのは、「お伝えしたいことは、これで全てです」と明確にすることが目的なので、どちらでも使います。

一番良くないのは、「以上」を書かずに文を終えること。
特に、使用した用紙の後半まで文章があるような場合、以上で締めくくっていないと、読み手は、「ひょっとして2ページ目があるのかな?」と不安な気持ちになるものです。
相手に余計な不安を与えたり、手間をかけたりすることが、ビジネスに置いては、×なのです。

主に、業務遂行に直接関わるようなものの文書に記書きは使われます。
なので、決まったスタイルに則って、簡潔に書くことが大事です。(社外宛なら、本文の前に「拝啓」、最後に「敬具」と書き、十分、礼は尽くした形になっているのですし。)
一方、お礼やお詫びなどの文書の場合は、記書きを使うことはありません。拝啓で始まり、敬具で終わる一般の手紙と同じスタイルになります。

その辺の使い分けが、上司の方は、ごっちゃになっているような気がします。

Qmatlabで複数条件のif文を行列計算で行うには?

matlabで複数条件のif文を行列計算で行うには?

matlabではfor文などは行列計算で回したほうが高速化できると聞きました。
for文でのやりかたはわかったのですが、複数条件でのif文ではどのように書けばよいのでしょうか?

自分のプログラムは以下のようなものです


for i=1:100
for j=1:100
theta_kari=atan(abs(B(j,i))/abs(A(j,i)));
if A(j,i)>=0&&B(j,i)>=0
theta(j,i)=theta_kari;
elseif A(j,i)<0&&B(j,i)>=0
theta(j,i)=theta_kari+(pi/2);
elseif A(j,i)<0&&B(j,i)<0
theta(j,i)=theta_kari+pi;
elseif A(j,i)>=0&&B(j,i)<0
theta(j,i)=theta_kari+(pi/2*3);
end
end
end

よろしくお願いします

matlabで複数条件のif文を行列計算で行うには?

matlabではfor文などは行列計算で回したほうが高速化できると聞きました。
for文でのやりかたはわかったのですが、複数条件でのif文ではどのように書けばよいのでしょうか?

自分のプログラムは以下のようなものです


for i=1:100
for j=1:100
theta_kari=atan(abs(B(j,i))/abs(A(j,i)));
if A(j,i)>=0&&B(j,i)>=0
theta(j,i)=theta_kari;
elseif A(j,i)<0&&B(j,i)>=0
theta(j...続きを読む

Aベストアンサー

matlab的に一番速いのは

theta = atan(abs(B./abs(A)) + (A<0 & B>=0)*pi/2 + (A<0 & B<0)*pi + (A>=0 & B>=0)*(pi/2*3);

ですかね。

Q無線LAN どの機器が接続されているかを調べたい

WR9500Nを使用し、無線でインターネットをしています。
パソコンやゲーム機、スマホ等たくさんの機器を接続しています。

どの機器が接続されているのか(もしくは接続されていたのか)を調べる方法はあるのでしょうか。

Aベストアンサー

>パソコンやゲーム機、スマホ等たくさんの機器を接続しています。
スマホのアプリで、Fing - Network Toolsってのがあります。

Fing
https://play.google.com/store/apps/details?id=com.overlook.android.fing&hl=ja


人気Q&Aランキング

おすすめ情報