• ベストアンサー
  • 困ってます

漸化式の問題を行列及びベクトルで解くには?

  • 質問No.2742208
  • 閲覧数886
  • ありがとう数2
  • 回答数2

お礼率 100% (39/39)

社会人ですが、趣味で数学検定に挑戦しようと思う者です。

私の高校時代の数学の先生は、「数列をベクトル解析で解いていた」と
仰有っていました。
では、具体的にどのようにすれば解けるのでしょうか。
以下の漸化式で一般項のご教授願います。

問題1)
a(1)=2、a(n+1)=3a(n)+1、の一般項を求めよ

解答1)
a(n)=1/2n-1

問題2)
na(n+1)=(n+2)a(n)、の一般項を求めよ

解答2)
a(n)=n(n+1)/2

どうぞよろしくお願いします。

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

  • 回答No.2
  • ベストアンサー

ベストアンサー率 53% (253/470)

問題2も、あえてベクトル風に表すと、
(a(n+1),a(n))=A(n)(a(n),a(n-1))
((a(n+1),a(n))は縦ベクトルの意味)
ここに、A(n)は2次の正方行列で、
(n+2)/n,0
1,0
(a(n+1),a(n))=A(n)(a(n),a(n-1))=A(n)A(n-1)(a(n-1),a(n-2))
=・・・=A(n)A(n-1)…A(2)(a(2),a(1))
となって、A(n)A(n-1)…A(2)は簡単に計算できるので、a(n)も
求まります。
しかし、これは
a(n+1)=(n+2)/n・a(n)=(n+2)/n・(n+1)/(n-1)・a(n-1)=・・・
とやっているのと本質的に同じです。

ベクトル風にやるのは、
a(n+1)=αa(n)+βb(n)
b(n+1)=γa(n)+δb(n)
のような、連立の漸化式の時とか、
a(n+2)=αa(n+1)+βa(n)
のようなとき、
a(n+1)=αa(n)+βa(n-1)
も使ってベクトルで表わし、行列のn乗が簡単に求まる場合は有効と
思います。

しかし、何が何でもベクトルを使ってやるのではなく、漸化式の
特徴を見極めて、なるべく簡単な方法で解くのが良いと思います。
もちろん、等差数列とか、等比数列とか基本的なものは覚えてお
くほうが良いと思いますが。

先生が何でそんなことを言ったのか、意図はわかりませんが、
この方法が好きだったのだと思います。解法は、個人の好みも
あると思います。

数学検定というのがどんなものか知りませんが、決まった方法を
憶えておいて、それを適用して素早く計算するというのはあまり
数学的能力とは関係ないと思うのですが…
就職などに有利なのでしょうか。
お礼コメント
Fall_Opera

お礼率 100% (39/39)

ご回答有り難うございます。

>等差数列とか、等比数列とか基本的なものは覚えておくほうが
>良いと思いますが。
やはり高校数学は暗記教科でしょうかね?
ラプラス変換や、テイラー展開、ロピタルの定理などを用いて
「暗記しない数学」をしたかったのですが、どうも甘かったようですね。

>就職などに有利なのでしょうか。
薬剤師です。あまり関係ないですね。

解決しました。深謝!
投稿日時:2007/02/11 14:29

その他の回答 (全1件)

  • 回答No.1

ベストアンサー率 51% (724/1416)

>私の高校時代の数学の先生は、「数列をベクトル解析で解いていた」と
ベクトル解析ってのは,ベクトル値関数の微積分みたいなもので
電磁気やら量子論とかにでもでてくる数学の分野で,
数列のような離散的なものではほとんど意味がないというか。。。
数値計算とかが絡めばもちろん離散化するでしょうが・・

閑話休題:
一般にベクトルを使えるケースは,
定数係数かつ線型な場合です.いわゆる y=ax (aは定数)のような
タイプです.
そして,それ以外の場合,例えば
y=ax+b (a,bは定数)のようなタイプは変数を増やして
強引に y=ax の形式に変換することが多いです.
例えば,y=ax+bなら
w=0x+1w
y=ax+bw
みたいな感じです
w 0 1 x
( )= ( ) ( )
y a b w

本題.
a(1)=2、a(n+1)=3a(n)+1、ならば
b(n+1)=b(n), b(1)=1のような数列をでっちあげて
a(n+1) = 3 a(n) + 1 b(n)
b(n+1) = 0 a(n) + 1 b(n)
という連立の漸化式にして
行列Aを
3 1
0 1
として(ここで,b(n+1)の式を下にしたのは
上三角行列の方が,少なくても私にとっては,
計算しやすいからで本質ではありません),
A^n を求めることで計算します.
A^nはすぐ計算できて
3^n (3^n-1)/2
0 1
よって
(a(n) b(n))^T = A^{n-1} (a(1) b(1))^T
3^{n-1} (3^{n-1}-1)/2 2
=( ) ( )
0 1 1
よって,
a(n)=(5・3^{n-1} -1)/2
です.
質問者さんの解は間違いです.
また,このように行列とベクトルを用いてといても
A^nの計算が一般には厄介なので素直に
普通の解法で正確に解ける方が大事です.

>問題2)
>na(n+1)=(n+2)a(n)、
初項がないので,とけません
たぶん a(1)=1でしょうが.
a(1)=1なら質問者さんの解は正解です

ただし,これは明らかにベクトルで解くものではありません.
定数係数でも線型でもないですし
線型に変形するにも,
(私が思いつく範囲では)妙な手を使う上に
それを使っても結局,
その妙な手を使わないで解くのとほとんど同じですし,
わざわざベクトルを使うと問題1)のように
却って煩雑になります.
この問題は,素直に,a(2)a(3)を順番に計算すればわかりますし
そうでなければ逆にa(n)からどんどん下に向かって
降下していけばよいでしょう.

数列の漸化式には統一的な解法は存在しません.
何でもかんでもベクトルで解けるなんてことはありませんし,
かといって,ベクトルで解くと楽なケースもあったり,
型にはまった定型的なものがあったり,
帰納法で証明するのが楽なものがあったりです
お礼コメント
Fall_Opera

お礼率 100% (39/39)

有り難うございます

>数列の漸化式には統一的な解法は存在しません.
>何でもかんでもベクトルで解けるなんてことはありませんし,
>かといって,ベクトルで解くと楽なケースもあったり,
>型にはまった定型的なものがあったり,
>帰納法で証明するのが楽なものがあったりです
漸化式は処理方法を覚えていないと解けない問題が多いような
気がします。しかし、ベクトル解析である程度それを抑えられるなら、
真剣に取り組もうと思います。
投稿日時:2007/02/11 11:40
関連するQ&A

その他の関連するQ&Aをキーワードで探す

ページ先頭へ