• 検索結果がありません。

計算機で数列と漸化式 !

N/A
N/A
Protected

Academic year: 2021

シェア "計算機で数列と漸化式 !"

Copied!
13
0
0

読み込み中.... (全文を見る)

全文

(1)

. .

.. .

.

.

計算機で数列と漸化式!

樋口さぶろお

龍谷大学理工学部数理情報学科

数値計算法L03(2010-04-23)

今日の目標

.

.

.

1 漸化式で定義された数列の一般項を計算できる ようになろう

.

.

2 漸化式で定義された数列の級数を計算できるよ うになろう

hig3.net

樋口さぶろお (数理情報学科) 計算機で数列と漸化式! 数値計算法L03(2010-04-23) 1 / 13

(2)

漸化式 漸化式と数列 の復習

漸化式で定義される数列

数列 {xn}n=0,1,2,...

初項 x0=a : x0 = 2.

漸化式

xn+1 =f(xn). : f(x) =−2x+ 3.

計算例

I x0=a

I x1=f(x0) =f(a).

I x2=f(x1) =f(f(x0)) =f(f(a)).

I ...

I

x

n

= f (f ( · · · f (

| {z }

n

a)

一般項 xn=(anの式)

(3)

漸化式 漸化式と数列 の復習

一般項はふつうは計算できない

試験問題は「やらせ」だ!

一般の場合に一般項を計算機で求めたい!!!

すごい計算機向きっぽい · · ·

反復

漸化式 一般項

一般 xn+1=f(xn) 書けないかも?!

等差数列

xn+1=xn+d xn=a+nd 等比数列 xn+1=xn×r

x

n

= ar

n

初項 x0=a,公差 d,公比 r.

(4)

漸化式 漸化式と数列 の復習

計算機で数列!

¨

§

¥

宇土§5.2¦

数学 数列

sequence

x0 x1 x2 . . . . . . 計算機

配列 array

x[0] x[1] x[2] . . . x[99]

宣言 ³

double x[100];

µ ´

初項x0= 2.0

初期化 ³

x[0]=2.0; /*最初に1回だけやる処理*/

µ ´

(5)

漸化式 漸化式と数列 の復習

関数f

xn+1 =f(xn)

(実数)関数 f(x) = 2x3+ 4x3e2x

関数の宣言と定義

³

/* 関数プロトタイプ宣言 */

double f(double x);

/* 関数の定義 */

double f(double x){

return 2.0*x*x*x+4.0*x-3.0*exp(-2.0*x);

}

µ ´

(6)

漸化式 漸化式と数列 の復習

漸化式を繰り返し使え xn+1 =f(xn) (n= 0,1,2, . . .) って,なんかいかにも

反復 ( 繰返し )

っぽくない?

for while

を使え パラメタ型反復の復習¨§宇土§4.3,§5.3¥¦

forループの使い方

³

int i;

for(i=0;i<100;i++){

/* 繰り返したい操作をここに書く */

}

µ ´

i=0: 最初に反復パラメタiの値を設定 i<100: この条件が成立する間繰り返す. i++: 反復の各回の最後にiの値を更新

(7)

漸化式 漸化式と数列 の復習

.

例題

.

.

.

.. .

.

.

1から100までの和を求めるプログラムを for ループを使って書こう.

黒板でやるね〜

(8)

漸化式 漸化式と数列 の復習

漸化式を計算するプログラム零号機

.

.

³

#include <stdio.h>

#include <math.h>

double f(double x);

int main(void){

int n;

double x[100];

x[0]=2.0;

for(n=0;n<100-1;n++){

x[n+1]=f(x[n]);

}

µ ´

³

for(n=0;n<100;n++){

printf("%fYn",x[n]);

} return 0;

}

double f(double x){

return 2.0*x*x*x +4.0*x-3.0*exp(-2.0*x);

}

µ ´

反復処理の誤りの93%は両端で起きる

代入して確かめる

(9)

漸化式 漸化式と数列 の復習

漸化式を計算するエコなプログラム初号機

.

さっきのは

メモリー

が超モッタイナイ

³

#include <stdio.h>

#include <math.h>

double f(double x);

int main(void){

int n;

double x;

x=2.0;

printf("%fYn",x);

for(n=0;n<12974081;n++){

x=f(x);

printf("%fYn",x);

}

(10)

漸化式 漸化式で定義される級数

級数 数列{xn}があったとしよう.

.

.

.

1 初項 x0 =a

.

.

.

2 漸化式 xn+1=rxn. (たとえば)

級数とは

部分和を SN =∑N

n=0xn と定義(N = 0,1,2, . . .) 数列 S0, S1, S2, . . . を級数という.

逆に言うと

x

n

S

n

の階差数列

数列 xn が与えられているとき,級数Sn 初項 S0 =x0

漸化式 Sn+1=Sn+xn+1 で定まる.

さっきののりで計算できるでしょ〜

ちなみに上の例は式で計算できちゃう.

S

n

=

11rn+1r

.

(11)

漸化式 漸化式で定義される級数

級数を計算するモッタイナイプログラム

.

³

#include <stdio.h>

#include <math.h>

double f(double x);

int main(void){

int n;

double x[100];

double s[100];

x[0]=2.0;

for(n=0;n<100-1;n++){

x[n+1]=f(x[n]);

} s[0]=x[0];

for(n=0;n<100-1;n++){

s[n+1]=s[n]+x[n+1];

}

(12)

漸化式 漸化式で定義される級数

級数を計算するエコなプログラム

.

.

³

#include <stdio.h>

#include <math.h>

double f(double x);

int main(void){ int n;

double x;

double s;

x=2.0;

s=x;

printf("%fYn",s[0]);

for(n=0;n<100-1;n++){

x=f(x); s=s+x;

printf("%fYn",s[n+1]);

} return 0;

}

µ ´

(13)

漸化式 漸化式で定義される級数

楽しい連休計画

自宅のPCに無料でVisual C++ 2008 Express Editionをインストールし て課題やり放題!!

レポート課題「VS2008インストール報告書」

講義の日常活動4点分 締切 2010-05-0802:00

eラーニングシステムにWordPDF形式のファイルで提出. 詳しくは数値計算法☆演習のWebページ参照

参照

関連したドキュメント

⑥ニューマチックケーソン 職種 設計計画 設計計算 設計図 数量計算 照査 報告書作成 合計.. 設計計画 設計計算 設計図 数量計算

 当図書室は、専門図書館として数学、応用数学、計算機科学、理論物理学の分野の文

(注)本報告書に掲載している数値は端数を四捨五入しているため、表中の数値の合計が表に示されている合計

、肩 かた 深 ふかさ を掛け合わせて、ある定数で 割り、積石数を算出する近似計算法が 使われるようになりました。この定数は船

このアプリケーションノートは、降圧スイッチングレギュレータ IC 回路に必要なインダクタの選択と値の計算について説明し

社会調査論 調査企画演習 調査統計演習 フィールドワーク演習 統計解析演習A~C 社会統計学Ⅰ 社会統計学Ⅱ 社会統計学Ⅲ.

越欠損金額を合併法人の所得の金額の計算上︑損金の額に算入

第1段階料金適用電力量=90キロワット時 × 日割計算対象日数 検針期間の日数