C言語による数値計算プログラミング演習

Size: px
Start display at page:

Download "C言語による数値計算プログラミング演習"

Transcription

1 4. 連立一次方程式の解法 4. LU 分解法 同じ係数行列 A( サイズ n n) をもつ m 組の連立 次方程式 AX = B ( ただし A=[ ij ] は n 行 n 列の正則行列,B=[b ij ] と X=[x ij ] は n 行 m 列の行列 ) を同時に解く 行列 A,B を並置して 個の配列 A (n 行 n+m 列 ) を作成し, i,n+j =b ij (i=,,n; j=,,m) として A の配列成分を改めて ij と記す A' = [ A B] = M n n L O L n n 以下のアルゴリズムを実行すると, M nn b b b M n b b b n L O L b m b m = M M bnm n n A' の B 部に解 X の値が入る L O L n n M nn, n+, n+ M n, n+, n+, n+ n, m+ L O L, n+ m, n+ m M n, n+ m アルゴリズム 4.. LU 分解法の素直なアルゴリズム LU 分解と前進消去の同時進行 ( 原型 ): for j= to n+m {k= {L: l i = i j := j / {U: u j = j /l {Y: y j =b j /l for k= to n {k=, 3,, n for i=k to n {L: l ik = ik Σ k- l= l il u lk for l= to k- ik := ik - il lk for j=k+ to n+m {U: u kj = ( kj -Σ k- l= l kl u lj )/l kk for l= to k- {Y: y kj = (b kj -Σ k- l= l kl y lj )/l kk kj := kj - kl lj kj := kj / kk 後退代入 : for k=n-, n-,, {k=n {X: x nj = y nj for j= to m { 右辺ベクトルの数だけ繰り返す for l=k+ to n {k n {X: x kj =y kj Σ n l=k+ u kl x lj k,n+j := k,n+j - kl l,n+j プログラム /* Solve Liner Eqution System AX=B */ /* By LU Decomposition Method */ /* ( Originl Algorithm ) */ /* AX = B */

2 /* A : Coefficient Mtrix size n*n */ /* X : Solution Mtrix (m Vectors) size n*m */ /* B : Right-hnd-side Mtrix (m Vectors) size n*m */ /* */ /* HERE A'=[A,B] */ # include <stdio.h> #define MMAX 0 #define NMAX 30 void min(void) { flot [NMAX][NMAX+MMAX]; int n,m; int i,j,k,l; /* Red Dt */ printf("input Mtrix Size: n, m? "); /* 行列データの画面入力 */ scnf("%d%d", &n, &m); /* サイズ :n, m */ printf(" ninput Coefficient Mtrix A n"); /* 行列 A の画面入力 */ printf("? A(%d, j), j=,%d : ", i+, n); for(j=0; j<n; j++) scnf("%g", &[i][j]); printf(" ninput R.H.S. Vectors B n"); /* 行列 B の画面入力 */ printf("? B(%d, j), j=,%d : ", i+, m); for(j=0; j<m; j++) scnf("%g", &[i][n+j]); /* Write Dt */ printf(" nliner Eqution System: AX=B n"); printf("* Size of Mtrix: n,m=%d,%d n", n,m); printf("* A'=[A B] n"); /* 行列 A'=[A B] の画面への出力 */ for(j=0;j<n+m;j++) printf("%6.g", [i][j]); /* LU Decomposition nd Forwrd reduction */ for(j=;j<n+m;j++) [0][j] /= [0][0]; for(k=;k<n;k++){ for(i=k;i<n;i++) for(l=0;l<k;l++) [i][k] -= [i][l]*[l][k]; for(j=k+;j<n+m;j++){

3 for(l=0;l<k;l++) [k][j] -= [k][l]*[l][j]; [k][j] /= [k][k]; printf(" nmtrix A' fter LU decomposition nd Forwrd reduction n"); /* Debug Write */ for(j=0;j<n+m;j++) printf("%5.6e", [i][j]); /* Bckwrd Substitution */ for(k=n-;k>=0;--k){ for(j=0;j<m;j++){ for(l=k+;l<n;l++){ [k][n+j] -= [k][l]*[l][n+j]; /* Print Result */ printf(" nsolutions n"); for(j=0;j<m;j++) printf("%5.6e", [i][n+j]); アルゴリズム 4.. LU 分解法のコンパクトなアルゴリズム LU 分解と前進消去の同時進行 : for k= to n for j=k+ to n+m kj := kj / kk {U( ただし対角成分 を除く ) for i=k+ to n ij := ij - ik kj {L, U と Y 後退代入 : for k=n, n-,, for j= to m for i= to k- i,n+j := i,n+j - ik k,n+j 3

4 次のプログラムでは, 入力データをファイルから読んでいる プログラム /* Solve Liner Eqution System AX=B */ /* By LU Decomposition Method */ /* ( Compct Algorithm ) */ /* AX = B */ /* A : Coefficient Mtrix size n*n */ /* X : Solution Mtrix (m Vectors) size n*m */ /* B : Right-hnd-side Mtrix (m Vectors) size n*m */ /* */ /* HERE A'=[A,B] */ /* */ /* Input Dt is red from File */ # include <stdio.h> #define MMAX 0 #define NMAX 30 flot [NMAX][NMAX+MMAX]; int n,m; void input(void) /* 関数 :A, B の係数をファイルから入力 */ { int i,j; FILE *fp; /* ファイルポインターの宣言 */ /* Red Dt */ /* ファイルオープンとエラー処理 */ if( (fp=fopen("c4mtrix.dt","r"))==null ){ printf(" ファイルをオープンできません n"); exit(); /* 行列データのファイル入力 */ fscnf(fp,"%d%d",&n, &m); /* サイズ :n, m */ /* 行列 A */ for(j=0; j<n; j++) fscnf(fp,"%g", &[i][j]); /* 行列 B */ for(j=0; j<m; j++) fscnf(fp,"%g", &[i][n+j]); /* ファイルクローズ */ fclose(fp); /* 行列データの出力 */ printf("liner Eqution System: AX=B n"); 4

5 printf("* Size of Mtrix: n,m=%d,%d n", n,m); printf("* A'=[A B] n"); /* 行列 A'=[A B] の画面への出力 */ for(j=0;j<n+m;j++) printf("%6.g", [i][j]); void min(void) /* メイン関数 */ { int i,j,k,l; input(); /* LU Decomposition nd Forwrd reduction */ for(k=0;k<n;k++){ for(j=k+;j<n+m;j++){ [k][j] /= [k][k]; for(i=k+;i<n;i++){ [i][j] -= [i][k]*[k][j]; printf(" nmtrix A' fter LU decomposition nd Forwrd reduction n"); /* Debug Write */ for(j=0;j<n+m;j++) printf("%5.6e", [i][j]); /* Bckwrd Substitution */ for(k=n-;k>=0;--k){ for(j=0;j<m;j++){ for(i=0;i<k;i++){ [i][n+j] -= [i][k]*[k][n+j]; /* Print Result */ printf(" nsolutions n"); for(j=0;j<m;j++) printf("%5.6e", [i][n+j]); 5

6 実行例 問題 ) デバッグ ( プログラムの誤りを修正すること ) 用 問題 ) Ax = b 3 6 A = 7 b = AX = B A = B = 問題 に対する実行例 ) プログラム 4..( 入力データをキーボードから入力 ) 実行開始 Input Mtrix Size: n, m? 3 Input Coefficient Mtrix A? A(, j), j=, 3 : 3? A(, j), j=, 3 : 7? A( 3, j), j=, 3 : 4 0 Input R.H.S. Vectors B? B(, j), j=, : 6? B(, j), j=, :? B( 3, j), j=, : 5 Liner Eqution System: AX=B * Size of Mtrix: n,m=3, * A'=[A B] Mtrix A' fter LU decomposition nd Forwrd reduction e e e e e e e e e e e e+00 Solutions e e e おしまい

7 問題 に対する実行例 ) プログラム 4..( 入力データをファイルから読む ) 入力データ ( ファイル名 :c4mtrix.dt): 入力データ 実行開始 Liner Eqution System: AX=B * Size of Mtrix: n,m=4,5 * A'=[A B] Mtrix A' fter LU decomposition nd Forwrd reduction e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e-0.995e-0 Solutions e e e e e e e e e e e e e e e e e e e-0.995e おしまい

8 4. ガウスの消去法 4. 節と同様, B AX = を解くにあたり, 配列を A '= [ A B] にとる 4.. ガウスの消去法 ( 基本 ) アルゴリズム 4.. 前進消去 : for k= to n- for i=k+ to n w:= ik/ kk for j=k+ to n+m {j=k は ik =0 と自明なので省く ij := ij - w kj { (k+) ij= (k) ij ( (k) ik (k) kk) (k) kj {b (k+) ij= b (k) ij ( (k) ik (k) kk)b (k) kj 後退代入 : for k=n, n-,, for j= to m { 右辺ベクトルの数だけ繰り返す if k<n then {k<n: x kj =(b (k) kj Σ n l=k+ (k) kl x lj )/ (k) kk for l=k+ to n {k=n: x kj = b (k) kj/ (k) kk k,n+j := k,n+j - kl l,n+j k,n+j := k,n+j / kk 後退代入はつぎのようにコンパクトなアルゴリズムに書き換えられる : for k=n, n-,, for j= to m { 右辺ベクトルの数だけ繰り返す k,n+j := k,n+j/ k,k {x kj =(b (k) kj Σ n l=k+ (k) kl x lj )/ (k) kk for i= to k- i,n+j := i,n+j - ik k,n+j プログラム 4.. LU 分解法のプログラム 4.. に記した関数 input を用い, ファイルからデータを入力する 以下にガウスの消去法 ( 後退代入にはコンパクトなアルゴリズムを使用 ) の min 関数を記す 他はプログラム 4.. と同じ void min(void) /* メイン関数 */ { int i,j,k; flot w; 8

9 input(); /* Forwrd reduction */ for(k=0;k<n-;k++){ for(i=k+;i<n;i++){ w=[i][k]/[k][k]; for(j=k+;j<n+m;j++){ [i][j] -= w*[k][j]; /* Bckwrd Substitution */ for(k=n-;k>=0;--k){ for(j=0;j<m;j++){ [k][n+j] /= [k][k]; for(i=0;i<=k-;i++){ [i][n+j] -= [i][k]*[k][n+j]; /* Print Result */ printf(" nsolutions n"); for(j=0;j<m;j++) printf("%5.6e", [i][n+j]); 実行例 教科書の例題 4. を解く 4 4 Ax = b A = 3 4 b = 入力データ 入力データ 実行開始 Liner Eqution System: AX=B * Size of Mtrix: n,m=3, * A'=[A B] 4 4 9

10 Solutions e e e おしまい 掃出し法 ( あるいはガウス ジョルダン消去法 ) アルゴリズム 4.. 掃き出しのプロセス : for k= to n w:=/ kk for j=k to n+m { (k+) kj= (k) kj/ (k) kk kj := kj w {b (k+) kj= b (k) kj/ (k) kk for i= to n if(i k) then w:= ik for j=k to n+m ij := ij - w kj { (k+) ij= (k) ij (k) ik (k+) kj {b (k+) ij= b (k) ij (k) ik b (k+) kj プログラム 4.. LU 分解法のプログラム 4.. に記した関数 input を用い, ファイルからデータを入力する 以下に min 関数を記す ( 他はプログラム 4.. と同じ ) void min(void) /* メイン関数 */ { int i,j,k; flot w; input(); /* Sweep-out */ for(k=0;k<n;k++){ w = /[k][k]; for(j=k;j<(n+m);j++) [k][j] *= w; if(i!=k){ w = [i][k]; for(j=k;j<(n+m);j++) [i][j] -= w*[k][j]; 0

11 /* Print Result */ printf(" nsolutions n"); for(j=0;j<m;j++) printf("%5.6e", [i][n+j]); 実行例 LU 分解法の実行例で記した問題 を解く 実行開始 Liner Eqution System: AX=B * Size of Mtrix: n,m=4,5 * A'=[A B] Solutions e e e e e e e e e e e e e e e e e e e-0.995e おしまい ピボット選択付ガウス消去法 ( あるいはピボット選択付 LU 分解法 ( ただし L の対角成分はすべて )) アルゴリズム 4..3 LU 分解と前進消去 : for i= to n p i =i { 置換情報 p の初期設定 for k= to n- i=k,k+, n に対し, ik > kk となる r を探す if r k then {k 行と r 行の p,l,a,b の値を入れ換える p k と p r の値を入れ換える k 行の kj と r 行の rj の値を入れ換える (j=,,,n+m) for i=k+ to n ik := ik/ kk {L( ただし対角成分 を除く ) for j=k+ to n+m ij := ij - ik kj {L,U と Y 後退代入は, アルゴリズム 4.. におけるものと同じ

12 プログラム 4..3 LU 分解法のプログラム 4.. に記した関数 input を用い, ファイルからデータを入力する 以下に min 関数を記す ( 他はプログラム 4.. と同じ ) void min(void) /* メイン関数 */ { int p[nmax],i,j,k,r; flot mx,w,kk,ptemp,temp; input(); for(i=0;i<n;i++) /* Index for Pivoting */ p[i]=i; /* Forwrd Substitution with Pivoting */ for(k=0;k<n-;k++){ mx=fbs([k][k]); r=k; for(i=k+;i<n;i++){ /* serch r such tht _{r,k=mx _{i,k i=k,..n */ if( fbs([i][k]) > mx ){ mx=fbs([i][k]); r=i; if(r!=k){ /* exchnge column r nd column k */ ptemp=p[r]; p[r] =p[k]; p[k] =ptemp; for(j=0;j<n+m;j++){ temp = [r][j]; [r][j] = [k][j]; [k][j] = temp; for(i=k+;i<n;i++) [i][k] = [i][k]/[k][k]; for(i=k+;i<n;i++){ for(j=k+;j<n+m;j++) [i][j] -= [i][k]*[k][j]; /* Bckwrd Substitution */ for(k=n-;k>=0;--k){ kk=/[k][k]; for(j=0;j<m;j++){ for(i=k+;i<n;i++){ [k][n+j] -= [k][i]*[i][n+j]; [k][n+j] *=kk; /* print result */ printf(" npermuttion n"); printf("%3d", p[i]); if(i%0==9)

13 printf(" nlu decomposition n"); for(j=0;j<n;j++) printf("%5.6e", [i][j]); printf(" nsolution n"); for(j=0;j<m;j++) printf("%5.6e", [i][n+j]); 実行例 ガウスの消去法 ( 基本 ) における実行例で扱った問題 ( 教科書例題 4.) を解く 実行開始 Liner Eqution System: AX=B * Size of Mtrix: n,m=3, * A'=[A B] Permuttion 0 LU decomposition e e e e e e e e e-0 Solution e e e おしまい

14 4.3 三項方程式の解法 三項方程式 c i x i- + i x i + b i x i+ = d i (i=,,,n) は, つぎのように行列表示される Ax = d b x d c b x d O O O M M A =, x =, d = O O O M M c n n b n x n dn cn n xn d これは 4.,4. 節に示した数値解法により解くことができる つぎのアルゴリズムは 4. 節の LU 分解によるものであり, これを実行すると右辺ベクトルの d 部に解 x の値が入る なお,c, b n の値は使用しないが, 通常 c =0, b n =0 を入れておく アルゴリズム 4.3. LU 分解と前進消去の同時進行 : b :=b / d :=d / for i= to n i := i -c i b i- d i :=(d i -c i h i- )/ i b i :=b i / i 後退代入 : for i=n-, n-,, d i :=d i -b i d i+ 問題 常微分方程式 d u/dx = を条件 u(0)=0, u()=0 のもとで解くと, 解 u(x)=0.5x(x-) を得るが, これを差分法で求め, 差分近似解と誤差を出力する x の区間 [0,] を n- 等分して各小区間幅を Δx とし,x i =(i-)δx,i=,,,n,( ただし Δx=/(n-)) とおく 0 x x x 3 x n- x n Δx 階導関数は u"(x i ) ( u(x i +Δx) u(x i ) + u(x i -Δx) )/(Δx) と近似される ( 第 9 章 : 数値微分を参照のこと ) ので,U i =u(x i ) と記せば,i=,3,,n- に対し U i+ U i + U i- = (Δx) が成立し,i= と i=n に対しては以下の条件が課せられる U = 0 U n = 0 n 個の未知数 U i, i=,,,n に対し, 代数方程式が n 個得られたので, 連立一次方程式により U i が求められる 具体的に代数式を列挙すると 4

15 x=x =0 のとき U = 0 x=x のとき U - U + U 3 = (Δx) x=x 3 のとき U U 3 + U 4 = (Δx) x=x 4 のとき U 3 U 4 + U 5 = (Δx) : : : : x=x n- のとき U n- U n- + U n = (Δx) x=x n = のとき U n = 0 となり, 三項方程式の形をしていることがわかる プログラム /* three-term equtions */ #include <stdio.h> #define NMAX 0 void min(void) { flot [NMAX],b[NMAX],c[NMAX],d[NMAX], xmin=0.0,xmx=.0,dx,x,error; int n,i; printf("number of points: n? "); scnf("%d", &n); dx=(xmx-xmin)/(n-); c[0]= 0.0; [0]=.0; b[0]= 0.0; d[0]= 0.0; for(i=;i<n-;i++){ c[i]=.0; [i]=-.0; b[i]=.0; d[i]= dx*dx; c[n-]= 0.0; [n-]=.0; b[n-]= 0.0; d[n-]= 0.0; 5 /* dt */ printf(" nthree-term equtions: n i,c[i],[i],b[i],d[i] n"); /* output */ for(i=0;i<n;i++) printf("%d %g %g %g %g n", i,c[i], [i], b[i], d[i]); /* forwrd */ b[0] /= [0]; d[0] /= [0]; for(i=;i<n;i++){ [i] -= c[i]*b[i-]; d[i] -= c[i]*d[i-]; d[i] /= [i]; b[i] /= [i];

16 for(i=n-;i>=0;i--) d[i] -=b[i]*d[i+]; printf(" n i tx t Solution t Error n"); x=i*dx; error=0.5*x*(x-)-d[i]; printf("%d t%5.6g t%5.6g t%5.6e n", i,x,d[i],error); /* bckwrd */ 実行例 実行開始 近似解のグラフ number of points: n? Three-Term equtions: i,c[i],[i],b[i],d[i] : : Solution i x Solution Error e e e e e e e e e e e e e e e e e e e \ e e おしまい

17 4.4 反復法 4.4. ヤコビ法 アルゴリズム 4.4. for i= to n { 初期値の設定 x i := 与えられた初期値 for k=0,,, { 収束するまで反復する for i= to n x temp :=b i for j= to n if(i j) then x temp :=x temp - ij x i x temp :=x temp / ii x new i:=x temp ===== for i= to n x i :=x new i ===== 収束判定は ノルムを用いて行い, 解の変化量が次式を満たすとき収束したとする n ( k+ ) ( k) ( k+ ) ( k) xi xi x i= ( k + ) n x ( k + ) xi i= x = < ε アルゴリズムの のところに分子 分母のノルムの計算 ( 下記 ) を挿入する norm_dx:=0 norm_x :=0 for i= to n norm_dx:=norm_dx + x new i-xi norm_x :=norm_x + x new i あるいは上記を, 直前の (for i= to n) のループと同時進行させる アルゴリズムの のところに次の収束判定を入れる If norm_dx/norm_x < ε brek(for k=0,,, のループから出る ) プログラム 4.4. 以下に示すプログラムでは, 関数 input においてファイルからデータを入力する /* Solve Liner Eqution System Ax=b */ /* by Jcobi Method */ #include <stdio.h> #include <mth.h> 7

18 #define KMAX 50 #define NMAX 0 flot eps, [NMAX][NMAX], b[nmax]; int n; void input(void) /* 入力データを読み込む関数 */ { int i, j; FILE *fp; /* ファイルポインターの宣言 */ /* ファイルオープンとエラー処理 */ if( (fp=fopen("c4iter.dt","r"))==null ){ printf(" ファイルをオープンできません n"); exit(); fscnf(fp,"%g %d", &eps, &n); /* 収束判定許容誤差と行列サイズの入力 */ /* 行列データのファイル入力 */ for(j=0;j<n;j++) fscnf(fp,"%g",&[i][j]); for(i=0;i<n;i++) /* 右辺ベクトルのファイル入力 */ fscnf(fp,"%g",&b[i]); fclose(fp); /* ファイルクローズ */ printf("solve Liner Eqution System: Ax=b n"); printf("* Mtrix size: n=%d t Tolernce: eps=%g n n",n,eps); /* 画面への出力 */ printf("* A'=[A b] n"); /* 行列 A'=[A b] の画面への出力 */ for(j=0;j<n;j++) printf("%5.6e", [i][j]); printf("%5.6e n", b[i]); void min(void) /* メイン関数 */ { int i, j, k; flot dxnorm, xnorm,xx,x[nmax],xnew[nmax]; input(); printf("itertion by Jcobi Method n"); /* initil vlue */ for(i=0;i<n;i++) x[i]=0; /* itertion */ for(k=0;k<kmax;k++){ printf("k=%d t",k); for(i=0;i<n;i++) printf("%5.6e", x[i]); dxnorm=0; xnorm =0; 8

19 xx=b[i]; for(j=0;j<n;j++) if(i!=j) xx -= [i][j]*x[j]; xx /= [i][i]; dxnorm += fbs(xx-x[i]); xnorm += fbs(xx); xnew[i]= xx; for(i=0;i<n;i++) x[i]=xnew[i]; if(dxnorm/xnorm<eps) brek; if(k>=kmax) printf("not convergent? n"); /* output solution */ printf(" nsolution:"); for(i=0;i<n;i++) printf("%5.6g",x[i]); 4.4. ガウス ザイデル法 アルゴリズム 4.4. for i= to n { 初期値の設定 x i := 与えられた初期値 for k=0,,, { 収束するまで反復する for i= to n x temp :=b i for j= to n if(i j) then x temp :=x temp - ij x i x temp :=x temp / ii x i :=x temp プログラム 4.4. ヤコビ法のプログラム 4.4. に記した関数 input を用い, ファイルからデータを入力する 以下に min 関数を記す ( 他はプログラム 4.4. と同じ ) void min(void) /* メイン関数 */ { int i, j, k; flot dxnorm, xnorm,xx,x[nmax]; input(); printf("itertion by Guss-Seidel Method n"); /* initil vlue */ 9

20 for(i=0;i<n;i++) x[i]=0; /* itertion */ for(k=0;k<kmax;k++){ printf("k=%d t",k); for(i=0;i<n;i++) printf("%5.6e", x[i]); dxnorm=0; xnorm =0; xx=b[i]; for(j=0;j<n;j++) if(i!=j) xx -= [i][j]*x[j]; xx /= [i][i]; dxnorm += fbs(xx-x[i]); xnorm += fbs(xx); x[i]=xx; if(dxnorm/xnorm<eps) brek; if(k>=kmax) printf("not convergent? n"); /* output solution */ printf(" nsolution:"); for(i=0;i<n;i++) printf("%5.6g",x[i]); SOR 法 ( 加速緩和法 ) アルゴリズム for i= to n { 初期値の設定 x i := 与えられた初期値 for k=0,,, { 収束するまで反復する for i= to n x temp :=b i for j= to n if(i j) then x temp :=x temp - ij x i x temp :=x temp / ii x i :=x i + ω(x temp - x i ) プログラム ヤコビ法のプログラム 4.4. に記した関数 input を用い, ファイルからデータを入力する 以下に min 関数を記す ( 他はプログラム 4.4. と同じ ) 0

21 void min(void) /* メイン関数 */ { int i, j, k; flot dxnorm, xnorm,xx,dx,x[nmax]; flot omeg=.; input(); printf("itertion by SOR n"); /* initil vlue */ for(i=0;i<n;i++) x[i]=0; /* itertion */ for(k=0;k<kmax;k++){ printf("k=%d t",k); for(i=0;i<n;i++) printf("%5.6e", x[i]); dxnorm=0; xnorm =0; xx=b[i]; for(j=0;j<n;j++) if(i!=j) xx-= [i][j]*x[j]; xx /= [i][i]; dx = xx-x[i]; xx = x[i] + omeg*dx; dxnorm += fbs(dx); xnorm += fbs(xx); x[i]=xx; if(dxnorm/xnorm<eps) brek; if(k>=kmax) printf("not convergent? n"); /* output solution */ printf(" nsolution:"); for(i=0;i<n;i++) printf("%5.6g",x[i]); 実行例 次の問題を, ヤコビ法, ガウス ザイデル法,SOR 法で解け Ax = b A = b = 入力データ ( ファイル名 :c4iter.dt): 入力データ e-6

22 実行例 ) ヤコビ法 実行開始 Solve Liner Eqution System: Ax=b * Mtrix size: n=4 Tolernce: eps=e-06 * A'=[A b] e e e e e e e e e e e e e e e e e e e e+00 Itertion by Jcobi Method k= e e e e+00 k= e e e e+00 k= e e e e-0 k= e e e e-0 k= e e e e-0 k= e e e e-0 k= e e e e-0 k= e e e e-0 k= e e e e-0 k= e e e e-0 k= e e e e-0 : : k= e e e e-0 k= e e e e-0 k= e e e e-0 Solution: おしまい 実行例 ) ガウス ザイデル法 実行開始 Solve Liner Eqution System: Ax=b * Mtrix size: n=4 Tolernce: eps=e-06 * A'=[A b] e e e e e e e e e e e e e e e e e e e e+00 Itertion by Guss-Seidel Method

23 k= e e e e+00 k= e e e e-0 k= e e e e-0 k= e e e e-0 k= e e e e-0 k= e e e e-0 k= e e e e-0 k= e e e e-0 k= e e e e-0 k= e e e e-0 k= e e e e-0 : : k= e e e e-0 k= e e e e-0 k= e e e e-0 Solution: おしまい 実行例 3)SOR 法 : 収束加速パラメータ ω=. の場合 実行開始 Solve Liner Eqution System: Ax=b * Mtrix size: n=4 Tolernce: eps=e-06 * A'=[A b] e e e e e e e e e e e e e e e e e e e e+00 Itertion by SOR k= e e e e+00 k= e e e e-0 k= e e e e-0 k= e e e e-0 k= e e e e-0 k= e e e e-0 k= e e e e-0 k= e e e e-0 k= e e e e-0 k= e e e e-0 k= e e e e-0 k= e e e e-0 k= e e e e-0 k= e e e e-0 Solution: おしまい 参考文献 葉子 : 数値計算の基礎 解法と誤差, コロナ社 (007) 森口繁一, 伊理正夫, 武市正人編 :C による算法痛論, 東京大学出版会 (000) Heth, Michel T.: Scientific Computing, An Introductory Survey, McGrw-Hill(00) 3

C言語による数値計算プログラミング演習

C言語による数値計算プログラミング演習 8. 数値積分 任意の区間 [,b] における f() の定積分 b () I = f ( ) d の値は, つぎのように n 点の関数値の和により近似的に与えられる () In = Ak f ( k) n k = このとき, k を分点,A k を重みという 8. ニュートン コーツ ( 複合型 ) 積分公式 積分区間 [,b] を等分割して n 個の分点をとり, 被積分関数 f() を n- 次ラグランジュ補間多項式で近似して得られる積分公式を

More information

C言語による数値計算プログラミング演習

C言語による数値計算プログラミング演習 5. 行列の固有値問題 n n 正方行列 A に対する n 個の固有値 λ i (i=1,,,n) と対応する固有ベクトル u i は次式を満たす Au = λ u i i i a11 a1 L a1 n u1i a1 a a n u i A =, ui = M O M M an 1 an L ann uni これらはまとめて, つぎのように書ける 5.1 ヤコビ法 = Λ, = [ u1 u u

More information

スライド 1

スライド 1 数値解析 平成 30 年度前期第 10 週 [6 月 12 日 ] 静岡大学工学研究科機械工学専攻ロボット 計測情報分野創造科学技術大学院情報科学専攻 三浦憲二郎 講義アウトライン [6 月 12 日 ] 連立 1 次方程式の直接解法 ガウス消去法 ( 復習 ) 部分ピボット選択付きガウス消去法 連立 1 次方程式 連立 1 次方程式の重要性 非線形の問題は基本的には解けない. 非線形問題を線形化して解く.

More information

C言語による数値計算プログラミング演習

C言語による数値計算プログラミング演習 6. 関数近似 : 補間と補外 6. ラグランジュ補間法 互いに異なる点 x,x,,x とそれらの点における関数値 f(x ),f(x ),,f(x ) が与えられているとする これらの 点を補間するたかだか - 次の補間多項式 F (x) は, ラグランジュ基底関数 L k (-) (x) を用いて ( ) () F( x) = f( xk) Lk ( x) k= L ( x ) = と書ける これは,

More information

数値計算法

数値計算法 12.1 電気回路網に関するキルヒホッフの法則による解法 1 工学的諸問題を多元連立 1 次方程式で表現することができる. 例えば, 荷物を最短の時間と最低のコストで輸送するためにはどのようなルートで物流を行うか という問題, 工場の部品の在庫の状況からいかに最小のコストで製品をつくるか という問題, 機械要素の運動の問題, 電気回路の解析の問題など, いくつか挙げられる. つまり, 計算機で多元連立方程式を解くことができれば,

More information

スライド 1

スライド 1 数値解析 平成 24 年度前期第 13 週 [7 月 11 日 ] 静岡大学創造科学技術大学院情報科学専攻工学部機械工学科計測情報講座 三浦憲二郎 講義アウトライン [7 月 11 日 ] 関数近似と補間 最小 2 乗近似による関数近似 ラグランジュ補間 形状処理工学の基礎 点列からの曲線の生成 T.Kanai, U.Tokyo 関数近似 p.116 複雑な関数を簡単な関数で近似する関数近似 閉区間

More information

スライド 1

スライド 1 数値解析 2019 年度前期第 13 週 [7 月 11 日 ] 静岡大学創造科学技術大学院情報科学専攻工学部機械工学科計測情報講座 三浦憲二郎 講義アウトライン [7 月 11 日 ] 関数近似と補間 最小 2 乗近似による関数近似 ラグランジュ補間 T.Kanai, U.Tokyo 関数近似 p.116 複雑な関数を簡単な関数で近似する 関数近似 閉区間 [a,b] で定義された関数 f(x)

More information

Gauss

Gauss 15 1 LU LDL T 6 : 1g00p013-5 1 6 1.1....................................... 7 1.2.................................. 8 1.3.................................. 8 2 Gauss 9 2.1.....................................

More information

スライド 1

スライド 1 数値解析 平成 29 年度前期第 14 週 [7 月 10 日 ] 静岡大学工学研究科機械工学専攻ロボット 計測情報分野創造科学技術大学院情報科学専攻 三浦憲二郎 期末試験 7 月 31 日 ( 月 ) 9 10 時限 A : 佐鳴会議室 B : 佐鳴ホール 講義アウトライン [7 月 10 日 ] 関数近似と補間 最小 2 乗近似による関数近似 ( 復習 ) ラグランジュ補間 形状処理工学の基礎

More information

1 5 13 4 1 41 1 411 1 412 2 413 3 414 3 415 4 42 6 43 LU 7 431 LU 10 432 11 433 LU 11 44 12 441 13 442 13 443 SOR ( ) 14 444 14 445 15 446 16 447 SOR 16 448 16 45 17 4 41 n x 1,, x n a 11 x 1 + a 1n x

More information

09.pptx

09.pptx 講義内容 数値解析 第 9 回 5 年 6 月 7 日 水 理学部物理学科情報理学コース. 非線形方程式の数値解法. はじめに. 分法. 補間法.4 ニュートン法.4. 多変数問題への応用.4. ニュートン法の収束性. 連立 次方程式の解法. 序論と行列計算の基礎. ガウスの消去法. 重対角行列の場合の解法項目を変更しました.4 LU 分解法.5 特異値分解法.6 共役勾配法.7 反復法.7. ヤコビ法.7.

More information

[1] #include<stdio.h> main() { printf("hello, world."); return 0; } (G1) int long int float ± ±

[1] #include<stdio.h> main() { printf(hello, world.); return 0; } (G1) int long int float ± ± [1] #include printf("hello, world."); (G1) int -32768 32767 long int -2147483648 2147483647 float ±3.4 10 38 ±3.4 10 38 double ±1.7 10 308 ±1.7 10 308 char [2] #include int a, b, c, d,

More information

PowerPoint Presentation

PowerPoint Presentation 応用数学 Ⅱ (7) 7 連立微分方程式の立て方と解法. 高階微分方程式による解法. ベクトル微分方程式による解法 3. 演算子による解法 連立微分方程式 未知数が複数個あり, 未知数の数だけ微分方程式が与えられている場合, これらを連立微分方程式という. d d 解法 () 高階微分方程式化による解法 つの方程式から つの未知数を消去して, 未知数が つの方程式に変換 のみの方程式にするために,

More information

LINEAR ALGEBRA I Hiroshi SUZUKI Department of Mathematics International Christian University

LINEAR ALGEBRA I Hiroshi SUZUKI Department of Mathematics International Christian University LINEAR ALGEBRA I Hiroshi SUZUKI Department of Mathematics International Christian University 2002 2 2 2 2 22 2 3 3 3 3 3 4 4 5 5 6 6 7 7 8 8 9 Cramer 9 0 0 E-mail:hsuzuki@icuacjp 0 3x + y + 2z 4 x + y

More information

(2016 2Q H) [ ] R 2 2 P = (a, b), Q = (c, d) Q P QP = ( ) a c b d (a c, b d) P = (a, b) O P ( ) a p = b P = (a, b) p = ( ) a b R 2 {( ) } R 2 x = x, y

(2016 2Q H) [ ] R 2 2 P = (a, b), Q = (c, d) Q P QP = ( ) a c b d (a c, b d) P = (a, b) O P ( ) a p = b P = (a, b) p = ( ) a b R 2 {( ) } R 2 x = x, y (2016 2Q H) [ ] R 2 2 P = (a, b), Q = (c, d) Q P QP = a c b d (a c, b d) P = (a, b) O P a p = b P = (a, b) p = a b R 2 { } R 2 x = x, y R y 2 a p =, c q = b d p + a + c q = b + d q p P q a p = c R c b

More information

Microsoft PowerPoint mod.ppt

Microsoft PowerPoint mod.ppt 並列アルゴリズム 2005 年後期火曜 2 限 高見利也 ( 青柳睦 ) Aoygi@cc.kysh-.c.jp http://server-500.cc.kysh-.c.jp/ 月 日 ( 火 ) 9. LU 分解法とその並列化 ( 講義 ) PC クラスタによる並列プログラミング ( 演習 ) 1 もくじ 1. 序並列計算機の現状 2. 計算方式およびアーキテクチュアの分類 3. 並列計算の目的と課題

More information

今後の予定 6/29 パターン形成第 11 回 7/6 データ解析第 12 回 7/13 群れ行動 ( 久保先生 ) 第 13 回 7/17 ( 金 ) 休講 7/20 まとめ第 14 回 7/27 休講?

今後の予定 6/29 パターン形成第 11 回 7/6 データ解析第 12 回 7/13 群れ行動 ( 久保先生 ) 第 13 回 7/17 ( 金 ) 休講 7/20 まとめ第 14 回 7/27 休講? 今後の予定 6/29 パターン形成第 11 回 7/6 データ解析第 12 回 7/13 群れ行動 ( 久保先生 ) 第 13 回 7/17 ( 金 ) 休講 7/20 まとめ第 14 回 7/27 休講? 数理生物学演習 第 11 回パターン形成 本日の目標 2 次元配列 分子の拡散 反応拡散モデル チューリングパタン 拡散方程式 拡散方程式 u t = D 2 u 拡散が生じる分子などの挙動を記述する.

More information

9 8 7 (x-1.0)*(x-1.0) *(x-1.0) (a) f(a) (b) f(a) Figure 1: f(a) a =1.0 (1) a 1.0 f(1.0)

9 8 7 (x-1.0)*(x-1.0) *(x-1.0) (a) f(a) (b) f(a) Figure 1: f(a) a =1.0 (1) a 1.0 f(1.0) E-mail: takio-kurita@aist.go.jp 1 ( ) CPU ( ) 2 1. a f(a) =(a 1.0) 2 (1) a ( ) 1(a) f(a) a (1) a f(a) a =2(a 1.0) (2) 2 0 a f(a) a =2(a 1.0) = 0 (3) 1 9 8 7 (x-1.0)*(x-1.0) 6 4 2.0*(x-1.0) 6 2 5 4 0 3-2

More information

?

? 240-8501 79-2 Email: nakamoto@ynu.ac.jp 1 3 1.1...................................... 3 1.2?................................. 6 1.3..................................... 8 1.4.......................................

More information

練習&演習問題

練習&演習問題 練習問題 ファイル入出力 練習問題 1 ファイルへのデータ出力 配列 a[ ] の値をファイル data.txt に出力するプログラムを作成しなさい #include #include /* srand(), rand() */ #include /* time() */ int main(void) { int i; double a[5];

More information

連立方程式の解法

連立方程式の解法 連立方程式の解法連立方程式をエクセルを用いて解く方法は以下の 2 種類が考えられます 1) エクセルの行列関数を用いる 2) VBA でヤコビ法やガウスザイデル法を用いる ここでは両方について説明します 1) エクセルの行列関数を用いる方法エクセルは表計算ですから行と列に並んだ数値を扱うのは得意です 連立方程式は次のように行列を用いて表すことができます 連立方程式が行列形式で表されることを考慮して解法を考えてみます

More information

Microsoft Word - COMP-MATH-2016-FULLTEXT.doc

Microsoft Word - COMP-MATH-2016-FULLTEXT.doc #13 2017/1/17 16 連立一次方程式を解くその 2 1) 対角線上に 0 が現れる場合を回避する 0x + 3y = 9 2x + 4y = 16 これを kadai-26 で解いてみなさい 以下のようにエラーになる 0.00000000 3.00000000 9.00000000 2.00000000 4.00000000 16.00000000-1.#IND0000-1.#IND0000-1.#IND0000-1.#IND0000-1.#IND0000-1.#IND0000

More information

関数の呼び出し ( 選択ソート ) 選択ソートのプログラム (findminvalue, findandreplace ができているとする ) #include <stdio.h> #define InFile "data.txt" #define OutFile "sorted.txt" #def

関数の呼び出し ( 選択ソート ) 選択ソートのプログラム (findminvalue, findandreplace ができているとする ) #include <stdio.h> #define InFile data.txt #define OutFile sorted.txt #def C プログラミング演習 1( 再 ) 6 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ 関数の呼び出し ( 選択ソート ) 選択ソートのプログラム (findminvalue, findandreplace ができているとする ) #include #define InFile "data.txt" #define OutFile "sorted.txt"

More information

1 4 2 EP) (EP) (EP)

1 4 2 EP) (EP) (EP) 2003 2004 2 27 1 1 4 2 EP) 5 3 6 3.1.............................. 6 3.2.............................. 6 3.3 (EP)............... 7 4 8 4.1 (EP).................... 8 4.1.1.................... 18 5 (EP)

More information

Part () () Γ Part ,

Part () () Γ Part , Contents a 6 6 6 6 6 6 6 7 7. 8.. 8.. 8.3. 8 Part. 9. 9.. 9.. 3. 3.. 3.. 3 4. 5 4.. 5 4.. 9 4.3. 3 Part. 6 5. () 6 5.. () 7 5.. 9 5.3. Γ 3 6. 3 6.. 3 6.. 3 6.3. 33 Part 3. 34 7. 34 7.. 34 7.. 34 8. 35

More information

(2018 2Q C) [ ] R 2 2 P = (a, b), Q = (c, d) Q P QP = ( ) a c b d (a c, b d) P = (a, b) O P ( ) a p = b P = (a, b) p = ( ) a b R 2 {( ) } R 2 x = x, y

(2018 2Q C) [ ] R 2 2 P = (a, b), Q = (c, d) Q P QP = ( ) a c b d (a c, b d) P = (a, b) O P ( ) a p = b P = (a, b) p = ( ) a b R 2 {( ) } R 2 x = x, y (2018 2Q C) [ ] R 2 2 P = (a, b), Q = (c, d) Q P QP = a c b d (a c, b d) P = (a, b) O P a p = b P = (a, b) p = a b R 2 { } R 2 x = x, y R y 2 a p =, c q = b d p + a + c q = b + d q p P q a p = c R c b

More information

12.2 電気回路網に関するキルヒホッフの法則による解法 2 多元連立 1 次方程式の工学的応用についての例を 2 つ示す.1 つはブリッジ T 型回路, もう 1 つはホーイストンブリッジ回路である. 示された回路図と与えられた回路定数からキルヒホッフの法則を使って多元連立 1 次方程式を導出する

12.2 電気回路網に関するキルヒホッフの法則による解法 2 多元連立 1 次方程式の工学的応用についての例を 2 つ示す.1 つはブリッジ T 型回路, もう 1 つはホーイストンブリッジ回路である. 示された回路図と与えられた回路定数からキルヒホッフの法則を使って多元連立 1 次方程式を導出する 12.2 電気回路網に関するキルヒホッフの法則による解法 2 多元連立 1 次方程式の工学的応用についての例を 2 つ示す.1 つはブリッジ T 型回路, もう 1 つはホーイストンブリッジ回路である. 示された回路図と与えられた回路定数からキルヒホッフの法則を使って多元連立 1 次方程式を導出する. その式のパラメータを前述のプログラムに反映させてシミュレーションを行う. 12.2.0 キルヒホッフの法則

More information

12.pptx

12.pptx 数値解析 第 1 回 15 年 7 月 8 日 水 ) 理学部物理学科情報理学コース 1 講義内容 1. 非線形方程式の数値解法 1.1 はじめに 1. 分法 1.3 補間法 1.4 ニュートン法 1.4.1 多変数問題への応用 1.4. ニュートン法の収束性. 連立 1 次方程式の解法.1 序論と行列計算の基礎. ガウスの消去法.3 3 重対角行列の場合の解法.4 LU 分解法.5 特異値分解法.6

More information

Microsoft Word - NumericalComputation.docx

Microsoft Word - NumericalComputation.docx 数値計算入門 武尾英哉. 離散数学と数値計算 数学的解法の中には理論計算では求められないものもある. 例えば, 定積分は, まずは積分 ( 被積分関数の原始関数をみつけること できなければ値を得ることはできない. また, ある関数の所定の値における微分値を得るには, まずその関数の微分ができなければならない. さらに代数方程式の解を得るためには, 解析的に代数方程式を解く必要がある. ところが, これらは必ずしも解析的に導けるとは限らない.

More information

Taro-再帰関数Ⅱ(公開版).jtd

Taro-再帰関数Ⅱ(公開版).jtd 0. 目次 6. 2 項係数 7. 二分探索 8. 最大値探索 9. 集合 {1,2,,n} 上の部分集合生成 - 1 - 6. 2 項係数 再帰的定義 2 項係数 c(n,r) は つぎのように 定義される c(n,r) = c(n-1,r) + c(n-1,r-1) (n 2,1 r n-1) = 1 (n 0, r=0 ) = 1 (n 1, r=n ) c(n,r) 0 1 2 3 4 5

More information

all.dvi

all.dvi 5,, Euclid.,..,... Euclid,.,.,, e i (i =,, ). 6 x a x e e e x.:,,. a,,. a a = a e + a e + a e = {e, e, e } a (.) = a i e i = a i e i (.) i= {a,a,a } T ( T ),.,,,,. (.),.,...,,. a 0 0 a = a 0 + a + a 0

More information

関数の呼び出し ( 選択ソート ) 選択ソートのプログラム (findminvalue, findandreplace ができているとする ) #include <stdiu.h> #define InFile "data.txt" #define OutFile "surted.txt" #def

関数の呼び出し ( 選択ソート ) 選択ソートのプログラム (findminvalue, findandreplace ができているとする ) #include <stdiu.h> #define InFile data.txt #define OutFile surted.txt #def C プログラミング演習 1( 再 ) 6 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ 関数の呼び出し ( 選択ソート ) 選択ソートのプログラム (findminvalue, findandreplace ができているとする ) #include #define InFile "data.txt" #define OutFile "surted.txt"

More information

all.dvi

all.dvi 29 4 Green-Lagrange,,.,,,,,,.,,,,,,,,,, E, σ, ε σ = Eε,,.. 4.1? l, l 1 (l 1 l) ε ε = l 1 l l (4.1) F l l 1 F 30 4 Green-Lagrange Δz Δδ γ = Δδ (4.2) Δz π/2 φ γ = π 2 φ (4.3) γ tan γ γ,sin γ γ ( π ) γ tan

More information

行列代数2010A

行列代数2010A a ij i j 1) i +j i, j) ij ij 1 j a i1 a ij a i a 1 a j a ij 1) i +j 1,j 1,j +1 a i1,1 a i1,j 1 a i1,j +1 a i1, a i +1,1 a i +1.j 1 a i +1,j +1 a i +1, a 1 a,j 1 a,j +1 a, ij i j 1,j 1,j +1 ij 1) i +j a

More information

Microsoft Word - 03-数値計算の基礎.docx

Microsoft Word - 03-数値計算の基礎.docx δx f x 0 + δ x n=0 a n = f ( n) ( x 0 ) n δx n f x x=0 sin x = x x3 3 + x5 5 x7 7 +... x ( ) = a n δ x n ( ) = sin x ak = (-mod(k,2))**(k/2) / fact_k 10 11 I = f x dx a ΔS = f ( x)h I = f a h I = h b (

More information

Microsoft PowerPoint - Eigen.pptx

Microsoft PowerPoint - Eigen.pptx 固有値解析 中島研吾 東京大学情報基盤センター同大学院情報理工学系研究科数理情報学専攻数値解析 ( 科目番号 -58) 行列の固有値問題 べき乗法 対称行列の固有値計算法 : ヤコビ法 A 行列の固有値問題 標準固有値問題 (Stndrd vlue Prolem を満足する と を求める : 固有値 (eigenvlue) : 固有ベクトル (eigenvector) 一般固有値問題 (Generl

More information

行列、ベクトル

行列、ベクトル 行列 (Mtri) と行列式 (Determinnt). 行列 (Mtri) の演算. 和 差 積.. 行列とは.. 行列の和差 ( 加減算 ).. 行列の積 ( 乗算 ). 転置行列 対称行列 正方行列. 単位行列. 行列式 (Determinnt) と逆行列. 行列式. 逆行列. 多元一次連立方程式のコンピュータによる解法. コンピュータによる逆行列の計算.. 定数項の異なる複数の方程式.. 逆行列の計算

More information

Taro-再帰関数Ⅲ(公開版).jtd

Taro-再帰関数Ⅲ(公開版).jtd 0. 目次 1 1. ソート 1 1. 1 挿入ソート 1 1. 2 クイックソート 1 1. 3 マージソート - 1 - 1 1. ソート 1 1. 1 挿入ソート 挿入ソートを再帰関数 isort を用いて書く 整列しているデータ (a[1] から a[n-1] まで ) に a[n] を挿入する操作を繰り返す 再帰的定義 isort(a[1],,a[n]) = insert(isort(a[1],,a[n-1]),a[n])

More information

差分スキーム 物理 化学 生物現象には微分方程式でモデル化される例が多い モデルを使って現実の現象をコンピュータ上で再現することをシミュレーション ( 数値シミュレーション コンピュータシミュレーション ) と呼ぶ そのためには 微分方程式をコンピュータ上で計算できる数値スキームで近似することが必要

差分スキーム 物理 化学 生物現象には微分方程式でモデル化される例が多い モデルを使って現実の現象をコンピュータ上で再現することをシミュレーション ( 数値シミュレーション コンピュータシミュレーション ) と呼ぶ そのためには 微分方程式をコンピュータ上で計算できる数値スキームで近似することが必要 差分スキーム 物理 化学 生物現象には微分方程式でモデル化される例が多い モデルを使って現実の現象をコンピュータ上で再現することをシミュレーション ( 数値シミュレーション コンピュータシミュレーション ) と呼ぶ そのためには 微分方程式をコンピュータ上で計算できる数値スキームで近似することが必要になる その一つの方法が微分方程式を差分方程式におき直すことである 微分方程式の差分化 次の 1 次元境界値問題を考える

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション コンピュータ物理学 2 第 2 回 (2016.10.11) 第 1 回 10/ 4( 火 ) ガイダンス 第 2 回 10/11( 火 ) 数値表現と誤差 第 3 回 10/18( 火 ) 第 4 回 10/25( 火 ) 数値微分 積分 第 5 回 11/ 1( 火 ) 第 6 回 11/ 8( 火 ) 第 7 回 11/15( 火 ) 常微分方程式 第 8 回 11/22( 火 ) 第 9 回

More information

Microsoft PowerPoint - 4.pptx

Microsoft PowerPoint - 4.pptx while 文 (1) 繰り返しの必要性 while の形式と動作 繰り返しにより平 根を求める ( 演習 ) 繰り返しにより 程式の解を求める ( 課題 ) Hello. をたくさん表示しよう Hello. を画面に 3 回表示するには, 以下で OK. #include int main() { printf("hello. n"); printf("hello. n");

More information

プログラミング基礎

プログラミング基礎 C プログラミング 演習 アルゴリズム基礎論 演習 第 10 回 今後の予定 12/22( 月 ) 期末試験 (60 分間 ) 場所 :A1611 時間 :16:20~17:20 課題の最終提出締切 :12/19( 金 ) これ以降の新規提出は評価されない 12/22までに最終状況を提示するので, 提出したのに や になってる人は自分の提出内容や提出先を再確認した上で12/26までに問い合わせること

More information

行列代数2010A

行列代数2010A (,) A (,) B C = AB a 11 a 1 a 1 b 11 b 1 b 1 c 11 c 1 c a A = 1 a a, B = b 1 b b, C = AB = c 1 c c a 1 a a b 1 b b c 1 c c i j ij a i1 a i a i b 1j b j b j c ij = a ik b kj b 1j b j AB = a i1 a i a ik

More information

memo

memo 数理情報工学特論第一 機械学習とデータマイニング 4 章 : 教師なし学習 3 かしまひさし 鹿島久嗣 ( 数理 6 研 ) kashima@mist.i.~ DEPARTMENT OF MATHEMATICAL INFORMATICS 1 グラフィカルモデルについて学びます グラフィカルモデル グラフィカルラッソ グラフィカルラッソの推定アルゴリズム 2 グラフィカルモデル 3 教師なし学習の主要タスクは

More information

Microsoft Word - Cプログラミング演習(9)

Microsoft Word - Cプログラミング演習(9) 第 9 回 (6/18) 3. ファイルとその応用 外部記憶装置に記録されたプログラムやデータを, ファイルと呼ぶ シーケンシャルファイルやランダムファイルへのデータの記録や読み出し, 更新の手順について学習する (1) ファイルとレコードファイル複数の関連したデータを一つに集めたり プログラムを外部記憶装置に保存したものレコードファイルを構成する一塊のデータ ex. 個人カードフィールドレコードを構成する個別の要素

More information

XMPによる並列化実装2

XMPによる並列化実装2 2 3 C Fortran Exercise 1 Exercise 2 Serial init.c init.f90 XMP xmp_init.c xmp_init.f90 Serial laplace.c laplace.f90 XMP xmp_laplace.c xmp_laplace.f90 #include int a[10]; program init integer

More information

Taro-ファイル処理(公開版).jtd

Taro-ファイル処理(公開版).jtd ファイル処理 0. 目次 1. はじめに 2. ファイル内容の表示 3. ファイル内容の複写 3. 1 文字単位 3. 2 行単位 4. 書式付き入出力 5. 文字配列への入出力 6. 課題 6. 1 課題 1 ( ファイル圧縮 復元 ) - 1 - 1. はじめに ファイル処理プログラムの形は次のようになる #include main() { FILE *fp1,*fp2; ファイルポインタの宣言

More information

Chap2

Chap2 逆三角関数の微分 Arcsin の導関数を計算する Arcsin I. 初等関数の微積分 sin [, ], [π/, π/] cos sin / (Arcsin ) 計算力の体力をつけよう π/ π/ E. II- 次の関数の導関数を計算せよ () Arccos () Arctan E. I- の解答 不定積分あれこれ () Arccos n log C C (n ) n e e C log (log

More information

Taro-プログラミングの基礎Ⅱ(公

Taro-プログラミングの基礎Ⅱ(公 0. 目次 2. プログラムの作成 2. 1 コラッツ問題 自然数 n から出発して n が偶数ならば 2 で割り n が奇数ならば 3 倍して 1 を足す操作を行う この操作を繰り返すと最後に 1 になると予想されている 問題 1 自然数 aの操作回数を求めよ 問題 2 自然数 aから bまでのなかで 最大操作回数となる自然数を求めよ 2. 2 耐久数 正整数の各桁の数字を掛け 得られた結果についても同様の操作を繰り返す

More information

kiso2-09.key

kiso2-09.key 座席指定はありません 計算機基礎実習II 2018 のウェブページか 第9回 ら 以下の課題に自力で取り組んで下さい 計算機基礎実習II 第7回の復習課題(rev07) 第9回の基本課題(base09) 第8回試験の結果 中間試験に関するコメント コンパイルできない不完全なプログラムなど プログラミングに慣れていない あるいは複雑な問題は 要件 をバラして段階的にプログラムを作成する exam08-2.c

More information

C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ

C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ 今回のプログラミングの課題 次のステップによって 徐々に難易度の高いプログラムを作成する ( 参照用の番号は よくわかる C 言語 のページ番号 ) 1. キーボード入力された整数 10 個の中から最大のものを答える 2. 整数を要素とする配列 (p.57-59) に初期値を与えておき

More information

x, y x 3 y xy 3 x 2 y + xy 2 x 3 + y 3 = x 3 y xy 3 x 2 y + xy 2 x 3 + y 3 = 15 xy (x y) (x + y) xy (x y) (x y) ( x 2 + xy + y 2) = 15 (x y)

x, y x 3 y xy 3 x 2 y + xy 2 x 3 + y 3 = x 3 y xy 3 x 2 y + xy 2 x 3 + y 3 = 15 xy (x y) (x + y) xy (x y) (x y) ( x 2 + xy + y 2) = 15 (x y) x, y x 3 y xy 3 x 2 y + xy 2 x 3 + y 3 = 15 1 1977 x 3 y xy 3 x 2 y + xy 2 x 3 + y 3 = 15 xy (x y) (x + y) xy (x y) (x y) ( x 2 + xy + y 2) = 15 (x y) ( x 2 y + xy 2 x 2 2xy y 2) = 15 (x y) (x + y) (xy

More information

kiso2-03.key

kiso2-03.key 座席指定はありません Linux を起動して下さい 第3回 計算機基礎実習II 2018 のウェブページか ら 以下の課題に自力で取り組んで下さい 計算機基礎実習II 第2回の復習課題(rev02) 第3回の基本課題(base03) 第2回課題の回答例 ex02-2.c include int main { int l int v, s; /* 一辺の長さ */ /* 体積 v

More information

8 / 0 1 i++ i 1 i-- i C !!! C 2

8 / 0 1 i++ i 1 i-- i C !!! C 2 C 2006 5 2 printf() 1 [1] 5 8 C 5 ( ) 6 (auto) (static) 7 (=) 1 8 / 0 1 i++ i 1 i-- i 1 2 2.1 C 4 5 3 13!!! C 2 2.2 C ( ) 4 1 HTML はじめ mkdir work 作業用ディレクトリーの作成 emacs hoge.c& エディターによりソースプログラム作成 gcc -o fuga

More information

行列の反復解法 1. 点 Jacobi 法 数値解法の重要な概念の一つである反復法を取り上げ 連立一次方程式 Au=b の反復解法を調べる 行列のスペクトル半径と収束行列の定義を与える 行列のスペクトル半径行列 Aの固有値の絶対値の最大値でもって 行列 Aのスペクトル半径 r(a) を与える 収束行

行列の反復解法 1. 点 Jacobi 法 数値解法の重要な概念の一つである反復法を取り上げ 連立一次方程式 Au=b の反復解法を調べる 行列のスペクトル半径と収束行列の定義を与える 行列のスペクトル半径行列 Aの固有値の絶対値の最大値でもって 行列 Aのスペクトル半径 r(a) を与える 収束行 行列の反復解法 1. 点 Jacobi 法 数値解法の重要な概念の一つである反復法を取り上げ 連立一次方程式 Au=b の反復解法を調べる 行列のスペクトル半径と収束行列の定義を与える 行列のスペクトル半径行列 Aの固有値の絶対値の最大値でもって 行列 Aのスペクトル半径 r(a) を与える 収束行列 B が正方行列で のとき B を収束行列と呼ぶ 定理収束行列のスペクトル半径は である 簡単な証明もし

More information

Microsoft Word - 8章(CI).doc

Microsoft Word - 8章(CI).doc 8 章配置間相互作用法 : Configuration Interaction () etho [] 化学的精度化学反応の精密な解析をするためには エネルギー誤差は数 ~ kcal/mol 程度に抑えたいものである この程度の誤差内に治まる精度を 化学的精度 と呼ぶことがある He 原子のエネルギーをシュレーディンガー方程式と分子軌道法で計算した結果を示そう He 原子のエネルギー Hartree-Fock

More information

Microsoft PowerPoint - Eigen.ppt [互換モード]

Microsoft PowerPoint - Eigen.ppt [互換モード] 固有値解析 中島研吾 東京大学情報基盤センター同大学院情報理工学系研究科数理情報学専攻数値解析 ( 科目番号 58) 行列の固有値問題 べき乗法 対称行列の固有値計算法 Eige Eige A 行列の固有値問題 標準固有値問題 (Stdrd Eigevle Problem を満足する と を求める : 固有値 (eigevle) : 固有ベクトル (eigevetor) 一般固有値問題 (Geerl

More information

joho09.ppt

joho09.ppt s M B e E s: (+ or -) M: B: (=2) e: E: ax 2 + bx + c = 0 y = ax 2 + bx + c x a, b y +/- [a, b] a, b y (a+b) / 2 1-2 1-3 x 1 A a, b y 1. 2. a, b 3. for Loop (b-a)/ 4. y=a*x*x + b*x + c 5. y==0.0 y (y2)

More information

FEM原理講座 (サンプルテキスト)

FEM原理講座 (サンプルテキスト) サンプルテキスト FEM 原理講座 サイバネットシステム株式会社 8 年 月 9 日作成 サンプルテキストについて 各講師が 講義の内容が伝わりやすいページ を選びました テキストのページは必ずしも連続していません 一部を抜粋しています 幾何光学講座については 実物のテキストではなくガイダンスを掲載いたします 対象とする構造系 物理モデル 連続体 固体 弾性体 / 弾塑性体 / 粘弾性体 / 固体

More information

Microsoft PowerPoint - C言語の復習(配布用).ppt [互換モード]

Microsoft PowerPoint - C言語の復習(配布用).ppt [互換モード] if 文 (a と b の大きい方を表示 ) C 言語 Ⅰ の復習 条件判定 (if, 条件式 ) ループ (for[ 二重まで ], while, do) 配列 ( 次元 次元 ) トレース int a, b; printf( 整数 a: ); scanf( %d, &a); printf( 整数 b: ); scanf( %d, &b); //つのif 文で表現する場合間違えやすい どっちに =

More information

C 言語第 3 回 2 a と b? 関係演算子 a と b の関係 関係演算子 等しい a==b 等しくない a!=b より大きい a>b 以上 a>=b より小さい a<b 以下 a<=b 状態 真偽 値 条件が満たされた場合 TRUE( 真 ) 1(0 以外 ) 条件が満たされなかった場合 F

C 言語第 3 回 2 a と b? 関係演算子 a と b の関係 関係演算子 等しい a==b 等しくない a!=b より大きい a>b 以上 a>=b より小さい a<b 以下 a<=b 状態 真偽 値 条件が満たされた場合 TRUE( 真 ) 1(0 以外 ) 条件が満たされなかった場合 F C 言語第 3 回 三つの基本構造 ( シラバス 5 6 回目 ) 1 1 順次処理上から順番に実行していく #include int main(void) { long x, y; 最初 長い整数がつかえる 負の数もか だいたい ±21 億まで OK なんだ 掛け算するぞ x = 1000*2000; scanf("%ld", &y); printf("%ld", x*y);

More information

Taro-数値計算の基礎Ⅱ(公開版)

Taro-数値計算の基礎Ⅱ(公開版) 0. 目次 1. 2 分法 2. はさみうち法 3. 割線法 4. 割線法 ( 2 次曲線近似 ) 5. ニュートン法 ( 接線近似 ) - 1 - 1. 2 分法 区間 [x0,x1] にある関数 f(x) の根を求める 区間 [x0,x1] を xm=(x0+x1)/2 で 2 等分し 区間 [x0,xm],[xm,x1] に分割する f(xm) の絶対値が十分小さい値 eps より小さいとき

More information

Microsoft PowerPoint コンピュータ物理2_第2回.pptx

Microsoft PowerPoint コンピュータ物理2_第2回.pptx コンピュータ物理学 2 第 2 回 (2015.10.9) 第 1 回 10/ 2( 金 ) ガイダンス 第 2 回 10/ 9( 金 ) 数値表現と誤差 第 3 回 10/16( 金 ) 第 4 回 10/23( 金 ) 数値微分 積分 第 5 回 10/30( 木 ) 第 6 回 11/13( 金 ) 第 7 回 11/20( 金 ) 常微分方程式 第 8 回 11/27( 金 ) 第 9 回

More information

Microsoft PowerPoint - program.ppt [互換モード]

Microsoft PowerPoint - program.ppt [互換モード] プログラミング演習 バージョン 1 担当教員 : 綴木馴 プログラムの決まりについて学ぶ おすすめする参考書 ザ C 戸川隼人サイエンス社 本日の予定 1. 授業の説明. 2. コンパイラーのインストール. プログラムの決まりについて学ぶ,P31 /* The most in C */ /* hello.c */ printf("hello,world n"); プログラムの決まり ( コメント )

More information

偏微分方程式、連立1次方程式、乱数

偏微分方程式、連立1次方程式、乱数 数値計算法 011/6/8 林田清 大阪大学大学院理学研究科 常微分方程式の応用例 1 Rutherford 散乱 ( 原子核同士の散乱 ; 金の薄膜に α 粒子をあてる ) 1 クーロン力 f= 4 0 r r r Ze y からf cos, si f f f y f f 粒子の 方向 y方向の速度と座標について dv Ze dvy Ze y, 3 3 dt 40m r dt 40m r d dy

More information

, = = 7 6 = 42, =

, = = 7 6 = 42, = http://www.ss.u-tokai.ac.jp/~mahoro/2016autumn/alg_intro/ 1 1 2016.9.26, http://www.ss.u-tokai.ac.jp/~mahoro/2016autumn/alg_intro/ 1.1 1 214 132 = 28258 2 + 1 + 4 1 + 3 + 2 = 7 6 = 42, 4 + 2 = 6 2 + 8

More information

演習1

演習1 神戸市立工業高等専門学校電気工学科 / 電子工学科専門科目 数値解析 2019.5.10 演習 1 山浦剛 (tyamaura@riken.jp) 講義資料ページ http://r-ccs-climate.riken.jp/members/yamaura/numerical_analysis.html Fortran とは? Fortran(= FORmula TRANslation ) は 1950

More information

PowerPoint Presentation

PowerPoint Presentation ファイルの入出力 芝浦工業大学情報工学科 青木義満 今回の講義内容 ファイル入出力 ファイルからのデータ読込み ファイルと配列 2 1 ファイルへのデータ書き込み ( 復習 ) ソースファイル名 :fileio1.c データをファイルに書き込み #include int main(void) { ファイルポインタ宣言 int student_id = 100; char name[

More information

データ構造

データ構造 アルゴリズム及び実習 7 馬青 1 表探索 定義表探索とは 表の形で格納されているデータの中から条件に合ったデータを取り出してくる操作である 但し 表は配列 ( 連結 ) リストなどで実現できるので 以降 表 の代わりに直接 配列 や リスト などの表現を用いる場合が多い 表探索をただ 探索 と呼ぶ場合が多い 用語レコード : 表の中にある個々のデータをレコード (record) と呼ぶ フィールド

More information

memo

memo 数理情報工学演習第一 C プログラミング演習 ( 第 5 回 ) 2015/05/11 DEPARTMENT OF MATHEMATICAL INFORMATICS 1 今日の内容 : プロトタイプ宣言 ヘッダーファイル, プログラムの分割 課題 : 疎行列 2 プロトタイプ宣言 3 C 言語では, 関数や変数は使用する前 ( ソースの上のほう ) に定義されている必要がある. double sub(int

More information

joho12.ppt

joho12.ppt n φ 1 (x),φ 2 (x),,φ n (x) (x i, f i ) Q n c 1,,c n (,f k ) q n = c i φ i (x) x Q n i=1 c 1 = 0 c 1 n ( c 1 ) = q n f k 2 Q n ( c 1 ) = q 2 2 n ( ) 2 f k q n ( ) + f k Q n c 1 = c 1 q n 2 q n( ) q n q

More information

フローチャートの書き方

フローチャートの書き方 アルゴリズム ( 算法 ) 入門 1 プログラムの作成 機械工学専攻泉聡志 http://masudahp.web.fc2.com/flowchart/index.html 参照 1 何をどのように処理させたいのか どのようなデータを入力し どのような結果を出力させるのか問題を明確にする 2 問題の内容どおりに処理させるための手順を考える ( フローチャートの作成 )~アルゴリズム( 算法 ) の作成

More information

Microsoft Word - テキスト2008課題編.doc

Microsoft Word - テキスト2008課題編.doc . 演習課題 演習課題 ( 必修 ) 台形公式とシンプソンの公式を用いて次の定積分の値を求めよ S = + ( a 4 + b 3 + c + d + e) d なお, +, a, b, c, d, e は各自で設定せよ 教科書第 章を参照のこと y S は右図の + の面積に等しい この区間を 個の Δ に分割し を順に,,..., + それに対応する y を y, y,..., y + とおくと

More information

n ξ n,i, i = 1,, n S n ξ n,i n 0 R 1,.. σ 1 σ i .10.14.15 0 1 0 1 1 3.14 3.18 3.19 3.14 3.14,. ii 1 1 1.1..................................... 1 1............................... 3 1.3.........................

More information

第7章 有限要素法のプログラミング

第7章 有限要素法のプログラミング April 3, 2019 1 / 34 7.1 ( ) 2 Poisson 2 / 34 7.2 femfp.c [1] main( ) input( ) assem( ) ecm( ) f( ) solve( ) gs { solve( ) output( ) 3 / 34 7.3 fopen() #include FILE *fopen(char *fname, char

More information

cp-7. 配列

cp-7. 配列 cp-7. 配列 (C プログラムの書き方を, パソコン演習で学ぶシリーズ ) https://www.kkaneko.jp/cc/adp/index.html 金子邦彦 1 本日の内容 例題 1. 月の日数配列とは. 配列の宣言. 配列の添え字. 例題 2. ベクトルの内積例題 3. 合計点と平均点例題 4. 棒グラフを描く配列と繰り返し計算の関係例題 5. 行列の和 2 次元配列 2 今日の到達目標

More information

応用数学III-4.ppt

応用数学III-4.ppt III f x ( ) = 1 f x ( ) = P( X = x) = f ( x) = P( X = x) =! x ( ) b! a, X! U a,b f ( x) =! " e #!x, X! Ex (!) n! ( n! x)!x! " x 1! " x! e"!, X! Po! ( ) n! x, X! B( n;" ) ( ) ! xf ( x) = = n n!! ( n

More information

NS NS Scalar turbulence 5 6 FEM NS Mesh (A )

NS NS Scalar turbulence 5 6 FEM NS Mesh (A ) 22 3 2 1 2 2 2 3 3 4 NS 4 4.1 NS............ 5 5 Scalar turbulence 5 6 FEM 5 6.1 NS.................................... 6 6.2 Mes A )................................... 6 6.3.....................................

More information

プログラミング基礎

プログラミング基礎 C プログラミング Ⅱ 演習 2-1(a) BMI による判定 文字列, 身長 height(double 型 ), 体重 weight (double 型 ) をメンバとする構造体 Data を定義し, それぞれのメンバの値をキーボードから入力した後, BMI を計算するプログラムを作成しなさい BMI の計算は関数化すること ( ) [ ] [ ] [ ] BMI = 体重 kg 身長 m 身長

More information

( )

( ) 7..-8..8.......................................................................... 4.................................... 3...................................... 3..3.................................. 4.3....................................

More information

Microsoft PowerPoint - prog11.ppt

Microsoft PowerPoint - prog11.ppt プログラミング言語 第 回 (7 年 7 月 6 日 今日の配布物 片面の用紙 枚 今日の課題が書かれています 本日の出欠を兼ねています /33 今日やること http://www.tnlab.ice.uec.ac.jp/~s-okubo/class/language/ にアクセスすると 教材があります 7 年 7 月 6 日分と書いてある部分が 本日の教材です 本日の内容 前回の課題の解答 Romberg

More information

に対して 例 2: に対して 逆行列は常に存在するとは限らない 逆行列が存在する行列を正則行列 (regular matrix) という 正則である 逆行列が存在する 一般に 正則行列 A の逆行列 A -1 も正則であり (A -1 ) -1 =A が成り立つ また 2 つの正則行列 A B の積

に対して 例 2: に対して 逆行列は常に存在するとは限らない 逆行列が存在する行列を正則行列 (regular matrix) という 正則である 逆行列が存在する 一般に 正則行列 A の逆行列 A -1 も正則であり (A -1 ) -1 =A が成り立つ また 2 つの正則行列 A B の積 2 逆行列 逆行列の計算は 連立一次方程式を数値的に解くために利用される 気象学の分野では線形系の応答問題を数値的に解くときに用いられることも多い ここでは計算機を用いて逆行列を求める方法を学ぶ 2.1 はじめにたとえば 次のような連立一次方程式を解くことを考える このような 2 元連立一次方程式は 代入法や消去法によって容易に解くことができる 解法をプログラミング言語によって記述することも困難ではない

More information

4.6: 3 sin 5 sin θ θ t θ 2t θ 4t : sin ωt ω sin θ θ ωt sin ωt 1 ω ω [rad/sec] 1 [sec] ω[rad] [rad/sec] 5.3 ω [rad/sec] 5.7: 2t 4t sin 2t sin 4t

4.6: 3 sin 5 sin θ θ t θ 2t θ 4t : sin ωt ω sin θ θ ωt sin ωt 1 ω ω [rad/sec] 1 [sec] ω[rad] [rad/sec] 5.3 ω [rad/sec] 5.7: 2t 4t sin 2t sin 4t 1 1.1 sin 2π [rad] 3 ft 3 sin 2t π 4 3.1 2 1.1: sin θ 2.2 sin θ ft t t [sec] t sin 2t π 4 [rad] sin 3.1 3 sin θ θ t θ 2t π 4 3.2 3.1 3.4 3.4: 2.2: sin θ θ θ [rad] 2.3 0 [rad] 4 sin θ sin 2t π 4 sin 1 1

More information

OHP.dvi

OHP.dvi 7 2010 11 22 1 7 http://www.sml.k.u-tokyo.ac.jp/members/nabe/lecture2010 nabe@sml.k.u-tokyo.ac.jp 2 1. 10/ 4 2. 10/18 3. 10/25 2, 3 4. 11/ 1 5. 11/ 8 6. 11/15 7. 11/22 8. 11/29 9. 12/ 6 skyline 10. 12/13

More information

1 4 1 ( ) ( ) ( ) ( ) () 1 4 2

1 4 1 ( ) ( ) ( ) ( ) () 1 4 2 7 1995, 2017 7 21 1 2 2 3 3 4 4 6 (1).................................... 6 (2)..................................... 6 (3) t................. 9 5 11 (1)......................................... 11 (2)

More information

数学の世界

数学の世界 東京女子大学文理学部数学の世界 (2002 年度 ) 永島孝 17 6 行列式の基本法則と効率的な計算法 基本法則 三次以上の行列式についても, 二次の場合と同様な法則がなりたつ ここには三次の場合を例示するが, 四次以上でも同様である 1 単位行列の行列式の値は 1 である すなわち 1 0 0 0 1 0 1 0 0 1 2 二つの列を入れ替えると行列式の値は 1 倍になる 例えば a 13 a

More information

+ 1 ( ) I IA i i i 1 n m a 11 a 1j a 1m A = a i1 a ij a im a n1 a nj a nm.....

+   1 ( ) I IA i i i 1 n m a 11 a 1j a 1m A = a i1 a ij a im a n1 a nj a nm..... + http://krishnathphysaitama-uacjp/joe/matrix/matrixpdf 1 ( ) I IA i i i 1 n m a 11 a 1j a 1m A = a i1 a ij a im a n1 a nj a nm (1) n m () (n, m) ( ) n m B = ( ) 3 2 4 1 (2) 2 2 ( ) (2, 2) ( ) C = ( 46

More information

<4D F736F F D E4F8E9F82C982A882AF82E98D7397F1>

<4D F736F F D E4F8E9F82C982A882AF82E98D7397F1> 3 三次における行列 要旨高校では ほとんど 2 2 の正方行列しか扱ってなく 三次の正方行列について考えてみたかったため 数 C で学んだ定理を三次の正方行列に応用して 自分たちで仮説を立てて求めていったら 空間における回転移動を表す行列 三次のケーリー ハミルトンの定理 三次における逆行列を求めたり 仮説をたてることができた. 目的 数 C で学んだ定理を三次の正方行列に応用する 2. 概要目的の到達点として

More information

微分方程式 モデリングとシミュレーション

微分方程式 モデリングとシミュレーション 1 微分方程式モデリングとシミュレーション 2018 年度 2 質点の運動のモデル化 粒子と粒子に働く力 粒子の運動 粒子の位置の時間変化 粒子の位置の変化の割合 速度 速度の変化の割合 加速度 力と加速度の結び付け Newtonの運動方程式 : 微分方程式 解は 時間の関数としての位置 3 Newton の運動方程式 質点の運動は Newton の運動方程式で記述される 加速度は力に比例する 2

More information

Microsoft PowerPoint - kougi2.ppt

Microsoft PowerPoint - kougi2.ppt C プログラミング演習 第 2 回 Microsoft Visual Studio.NET を使ってみよう 説明 例題 1. プログラム実行の体験 コンピュータを役に立つ道具として実感する 次ページのプログラムを使って, Microsoft Visual Studio.NETでの C++ ソースファイル編集, ビルド, テスト実行の一連の過程を体験する 例題 1 のプログラムの機能 計算の繰り返し

More information

,. Black-Scholes u t t, x c u 0 t, x x u t t, x c u t, x x u t t, x + σ x u t, x + rx ut, x rux, t 0 x x,,.,. Step 3, 7,,, Step 6., Step 4,. Step 5,,.

,. Black-Scholes u t t, x c u 0 t, x x u t t, x c u t, x x u t t, x + σ x u t, x + rx ut, x rux, t 0 x x,,.,. Step 3, 7,,, Step 6., Step 4,. Step 5,,. 9 α ν β Ξ ξ Γ γ o δ Π π ε ρ ζ Σ σ η τ Θ θ Υ υ ι Φ φ κ χ Λ λ Ψ ψ µ Ω ω Def, Prop, Th, Lem, Note, Remark, Ex,, Proof, R, N, Q, C [a, b {x R : a x b} : a, b {x R : a < x < b} : [a, b {x R : a x < b} : a,

More information

PowerPoint Presentation

PowerPoint Presentation 工学部 6 7 8 9 10 組 ( 奇数学籍番号 ) 担当 : 長谷川英之 情報処理演習 第 7 回 2010 年 11 月 18 日 1 今回のテーマ 1: ポインタ 変数に値を代入 = 記憶プログラムの記憶領域として使用されるものがメモリ ( パソコンの仕様書における 512 MB RAM などの記述はこのメモリの量 ) RAM は多数のコンデンサの集合体 : 電荷がたまっている (1)/ いない

More information

コンピュータ概論

コンピュータ概論 4.1 For Check Point 1. For 2. 4.1.1 For (For) For = To Step (Next) 4.1.1 Next 4.1.1 4.1.2 1 i 10 For Next Cells(i,1) Cells(1, 1) Cells(2, 1) Cells(10, 1) 4.1.2 50 1. 2 1 10 3. 0 360 10 sin() 4.1.2 For

More information

20 6 4 1 4 1.1 1.................................... 4 1.1.1.................................... 4 1.1.2 1................................ 5 1.2................................... 7 1.2.1....................................

More information

Microsoft PowerPoint - 第3回目.ppt [互換モード]

Microsoft PowerPoint - 第3回目.ppt [互換モード] 第 3 回プログラミング応用 目的ファイル入出力 1. ファイルの概念 2. ファイルの読み込み 3. ファイルの書き込み CPU 演算 判断 ファイルの概念 内部記憶装置 OS 機械語プログラム 入力装置 キーボード 出力装置 ディスプレイ ファイル 外部記憶装置ハードディスク CD-ROM CPU が外部とデータをやり取りするための媒介 printf 関数や scanf 関数でもうすでにファイルのやり取りの基本は学んでいる

More information

NumericalProg09

NumericalProg09 数値解析および プログラミング演習 [08 第 9 回目 ] の解法 - 4. Ruge-Kua( ルンゲ クッタ 法 Ruge-Kua-Gill( ルンゲ クッタ ジル / ギル 法 5. 多段解法 解法の対象 常微分方程式 d( d 初期値条件 (, の変化に応じて変化する の値を求める. ( 0 ( 0 と 0 は,give 0 常微分方程式の初期値問題 と言う. 3 Ruge-Kua 法の導出

More information

USB 0.6 https://duet.doshisha.ac.jp/info/index.jsp 2 ID TA DUET 24:00 DUET XXX -YY.c ( ) XXX -YY.txt() XXX ID 3 YY ID 5 () #define StudentID 231

USB 0.6 https://duet.doshisha.ac.jp/info/index.jsp 2 ID TA DUET 24:00 DUET XXX -YY.c ( ) XXX -YY.txt() XXX ID 3 YY ID 5 () #define StudentID 231 0 0.1 ANSI-C 0.2 web http://www1.doshisha.ac.jp/ kibuki/programming/resume p.html 0.3 2012 1 9/28 0 [ 01] 2 10/5 1 C 2 3 10/12 10 1 2 [ 02] 4 10/19 3 5 10/26 3 [ 03] 6 11/2 3 [ 04] 7 11/9 8 11/16 4 9 11/30

More information

Microsoft PowerPoint - 10.pptx

Microsoft PowerPoint - 10.pptx 0. 固有値とその応用 固有値と固有ベクトル 2 行列による写像から固有ベクトルへ m n A : m n n m 行列によって線形写像 f R R A が表せることを見てきた ここでは 2 次元平面の行列による写像を調べる 2 = 2 A 2 2 とし 写像 まず 単位ベクトルの像を求める u 2 x = v 2 y f : R A R を考える u 2 2 u, 2 2 0 = = v 2 0

More information

N 体問題 長岡技術科学大学電気電子情報工学専攻出川智啓

N 体問題 長岡技術科学大学電気電子情報工学専攻出川智啓 N 体問題 長岡技術科学大学電気電子情報工学専攻出川智啓 今回の内容 天体の運動方程式 天体運動の GPU 実装 最適化による性能変化 #pragma unroll 855 計算の種類 画像処理, 差分法 空間に固定された観測点を配置 観測点 ( 固定 ) 観測点上で物理量がどのように変化するかを追跡 Euler 型 多粒子の運動 観測点を配置せず, 観測点が粒子と共に移動 Lagrange 型 観測点

More information

Laplace2.rtf

Laplace2.rtf =0 ラプラスの方程式は 階の微分方程式で, 一般的に3つの座標変数をもつ. ここでは, 直角座標系, 円筒座標系, 球座標系におけるラプラスの方程式の解き方を説明しよう. 座標変数ごとに方程式を分離し, それを解いていく方法は変数分離法と呼ばれる. 変数分離解と固有関数展開法. 直角座標系における 3 次元の偏微分方程式 = x + y + z =0 (.) を解くために,x, y, z について互いに独立な関数の積で成り立っていると考え,

More information