傾きがわかった関数の軌跡を求める. 変数は二つ以上

Slides:



Advertisements
Similar presentations
Division of Process Control & Process Systems Engineering Department of Chemical Engineering, Kyoto University
Advertisements

22 ・ 3 積分形速度式 ◎ 速度式: 微分方程式 ⇒ 濃度を時間の関数として得るためには積分が必要 # 複雑な速度式 数値積分 (コンピューターシミュ レーション) # 単純な場合 解析的な解(積分形速度式) (a)1 次反応 1次の速度式 の積分形 [A] 0 は A の初濃度 (t = 0 の濃度.
数値解析シラバス C言語環境と数値解析の概要(1 回) C言語環境と数値解析の概要(1 回) 方程式の根(1回) 方程式の根(1回) 連立一次方程式(2回) 連立一次方程式(2回) 補間と近似(2回) 補間と近似(2回) 数値積分(1回) 数値積分(1回) 中間試験(1回) 中間試験(1回) 常微分方程式(1回)
Fortran と有限差分法の 入門の入門の…
・力のモーメント ・角運動量 ・力のモーメントと角運動量の関係
プログラミング論 数値積分
プログラミング論 I 補間
数個、数十個のデータ点から その特徴をつかむ
解析的には解が得られない 方程式を数値的に求める。 例:3次方程式
一次関数のグラフ(式を求めること) 本時の流れ ねらい「グラフや座標など与えられた条件をもとに一次 関数の式を求める。」 ↓
一次関数のグラフ(式を求めること) 本時の流れ ねらい「グラフや座標など与えられた条件をもとに一次 関数の式を求める。」 ↓
連立一次方程式 a11x1+a12x2+a13x3+...+a1nxn= b1
スペクトル法による数値計算の原理 -一次元線形・非線形移流問題の場合-
数楽(微分方程式を使おう!) ~第5章 ラプラス変換と総仕上げ~
原子動力工学特論 課題 3、4 交通電子機械工学専攻   齋藤 泰治.
P129 モンテカルロ シミュレーション 乱数を使ったシミュレーション.
常微分方程式と偏微分方程式 1.常微分方程式 独立変数が一個のもの 振動の運動方程式 2.偏微分方程式 独立変数が二個以上のもの
シミュレーション論Ⅰ 第4回 基礎的なシミュレーション手法.
IT入門B2 ー 連立一次方程式 ー.
第二回 連立1次方程式の解法 内容 目標 連立1次方程式の掃出し法 初期基底を求める 連立1次方程式を掃出し法を用いてExcelで解析する
周期境界条件下に配置されたブラックホールの変形
応用統計学の内容 推測統計学(inferential statistics)   連続型の確率分布   標本分布   統計推定   統計的検定.
4.2 連立非線形方程式 (1)繰返し法による方法
数値解析シラバス C言語環境と数値解析の概要(1回) 方程式の根(1回) 連立一次方程式(2回) 補間と近似(2回) 数値積分(1回)
コンピュータープログラミング (C言語)(11) 1.ファイル入出力(復習) 2.物理現象とプログラミング
数楽(微分方程式を使おう!) ~第4章 他分野への応用(上級編)~
電気回路学Ⅱ エネルギーインテリジェンスコース 5セメ 山田 博仁.
電気回路Ⅱ 演習 特別編(数学) 三角関数 オイラーの公式 微分積分 微分方程式 付録 三角関数関連の公式
誤差の二乗和の一次導関数 偏微分.
演習問題の答え #include #include #define NUM 5 typedef struct { // 構造体の定義 float shincho; // 身長 float taiju; // 体重 } shintai; void hyouji(shintai.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
精密工学科プログラミング基礎Ⅱ 第3回資料 今回の授業で習得してほしいこと: 2次元配列の使い方 (前回の1次元配列の復習もします.)
第7回 条件による繰り返し.
システムモデルと伝達関数 1. インパルス応答と伝達関数 キーワード : 伝達関数、インパルス応答、 ステップ応答、ランプ応答
岩村雅一 知能情報工学演習I 第11回(後半第5回) 岩村雅一
タップ長が一般化された 適応フィルタの統計力学
数値積分.
電界中の電子の運動 シミュレータ作成 精密工学科プログラミング基礎 資料.
プログラミング演習I 行列計算と線形方程式の求解
LU分解を用いた連立一次方程式.
高度プログラミング演習 (03).
知能情報工学演習I 第12回(後半第6回) 課題の回答
第7回 条件による繰り返し.
第10回 FIR回路とIIR回路.
高度プログラミング演習 (05).
2分法のプログラム作成方法 2分法のプログラム(全体構成) プログラム作成要領 2分法のメイン関数(変数宣言)
電機制御工学 定量的制御編 清弘 智昭.
Chapter 26 Steady-State Molecular Diffusion
演習0 func0, func1, func2を作成せよ. main()関数の中で,func0()を呼び出しを実行せよ.
低温物体が得た熱 高温物体が失った熱 = 得熱量=失熱量 これもエネルギー保存の法則.
プログラミング序論演習.
データ解析 静岡大学工学部 安藤和敏
連立一次方程式 a11x1+a12x2+a13x3+...+a1nxn= b1
22・3 積分形速度式 ◎ 速度式: 微分方程式 ⇒ 濃度を時間の関数として得るためには積分が必要
22・3 積分形速度式 ◎ 速度式: 微分方程式 ⇒ 濃度を時間の関数として得るためには積分が必要
電気回路学Ⅱ 通信工学コース 5セメ 山田 博仁.
変数を一度にたくさん宣言するよ! それだけじゃないよ!
2008年6月5日 非線形方程式の近似解 2分法,はさみうち法,Newton-Raphson法)
ニュートン法による 非線型方程式の解.
モデルの微分による非線形モデルの解釈 明治大学 理工学部 応用化学科 データ化学工学研究室 金子 弘昌.
cp-3. 計算 (C プログラミング演習,Visual Studio 2019 対応)
Cプログラミング演習 ニュートン法による方程式の求解.
四則演算,変数 入力文,出力文,代入文, ライブラリ関数
岩村雅一 知能情報工学演習I 第13回(後半第7回) 岩村雅一
プログラミング演習I 補講用課題
第1章 文字の表示と計算 printfと演算子をやります 第1章 文字の表示と計算.
8.2 数値積分 (1)どんなときに数値積分を行うのか?
熱伝導方程式の導出 熱伝導:物質の移動を伴わずに高温側から低温側へ熱が伝わる現象 対流、輻射 フーリエの法則Fourier’s law:
8.数値微分・積分・微分方程式 工学的問題においては 解析的に微分値や積分値を求めたり, 微分方程式を解くことが難しいケースも多い。
Presentation transcript:

傾きがわかった関数の軌跡を求める. 変数は二つ以上 偏微分方程式 傾きがわかった関数の軌跡を求める. 変数は二つ以上

微分方程式の種類 d2x dx m + c + kt = 0 dt2 dt ∂T ∂2T cr = l ∂t ∂x2 常微分方程式→独立変数が一個 単振動 m:mass, c:dash pot, k:spring, t:time, x:axis 偏微分方程式→独立変数が2個以上                    一次元熱伝達 T:temperature, t:time, x:axis 二階の常微分方程式 d2x dx m + c + kt = 0 dt2 dt 二階の偏微分方程式 ∂T ∂2T cr = l ∂t ∂x2

微分方程式を解くという意味 dy dx わかっている 各点の傾きが既知 y 初期値 この線を求める 初期値 x

変数が2個の場合 ∂u ∂x ,    わかっている ∂y u 初期値 y 傾きが分っている この面を求める x

変数が2個の場合 ∂u ∂x ,    わかっている ∂y u 初期値 y Dx 次の点を 求める方法 x

変数が2個の場合 ∂u u ui - ui-1 = Δx ∂x x = xi x = xi-1 y yj-2 yj-1 yj yj+1 次の点 x = xi x = xi-1 前の点 y yj-2 yj-1 yj yj+1 yj+2 yj+3

二つの変数の例 (偏微分方程式の前に) h1, h2, h3, h4, h5の変化? 初めは,すべて h1~h5 = 1.0 時間に対する 高さの変化? h1 h2 h3 h4 h5 高さh 単位時間 当たりの流量 F = h1 – h2 F = h1 – h2

二つの変数の例 (偏微分方程式の前に) 前の点 h1 h2 h3 h4 h5 高さh 次の点

二つの変数の例 (偏微分方程式の前に) h1, h2, h3, h4, h5の変化? 初めは,すべて h1~h5 = 1.0 時間に対する 高さの変化? h1 h2 h3 h4 h5 高さh Dt 時間の増加量 Dt (h2-h3)- Dt (h3-h4) 断面積 A = 0.5 単位時間 当たりの流量 F = h1 – h2 F = h1 – h2

二つの変数の例 (偏微分方程式の前に) h1 h2 h3 h4 h5 高さh 単位時間 当たりの流量 F = h4 – h5

二つの変数の例 (偏微分方程式の前に) h1 h2 h3 h4 h5 高さh 単位時間 当たりの流量 F = h4 – h5

二つの変数の例 (偏微分方程式の前に) h1 h2 h3 h4 h5 高さh 単位時間 当たりの流量 F = h4 – h5

二つの変数の例 (偏微分方程式の前に) h1 h2 h3 h4 h5 高さh 単位時間 当たりの流量 F = h4 – h5

二つの変数の例 (偏微分方程式の前に) h1 h2 h3 h4 h5 高さh 単位時間 当たりの流量 F = h4 – h5

二つの変数の例 (偏微分方程式の前に) h1 h2 h3 h4 h5 高さh 単位時間 当たりの流量 F = h4 – h5

二つの変数の例 (偏微分方程式の前に) h1, h2, h3, h4, h5の変化? 初めは,すべて h1~h5 = 1.0 時間に対する 高さの変化? h1 h2 h3 h4 h5 高さh Dt 時間の増加量 Dt (h2-h3)- Dt (h3-h4) 断面積 A = 0.5 単位時間 当たりの流量 F = h1 – h2 F = h1 – h2

Excelで計算 初期値 時間刻みDt A B C D E F 1 T h1 h2 h3 h4 h5 2 3 0.01 = B2 - 3 0.01 = B2 - = D2 – + 4 0.02 5 0.03 6 0.04 7 0.05 初期値 流出量/断面積 流入量/A 流出量/A 時間刻みDt

Excelで確認 F = h1 – h2 Dt Dt A A B C 1 T h1 h2 2 3 0.01 3 0.01 =B2 - 0.01 *SQRT(B2 - C2) / 0.5 4 0.02 5 0.03 6 0.04 7 0.05 8 0.06 Dt Dt A 前の値 ー 流出 前の値 ー 流出 + 流入

Excelで確認 F = h1 – h2 Dt Dt A A B C 1 T h1 h2 2 3 0.01 =B2 - 0.01 3 0.01 =B2 - 0.01 *SQRT(B2 - C2) / 0.5 =C2 - 0.01*SQRT(C2 - D2) / 0.5 +0.01*SQRT(B2 – C2) / 0.5 4 0.02 5 0.03 6 0.04 Dt Dt A 前の値 ー流出 前の値 ー流出+流入

計算結果 1秒後 2秒後

二つの変数の例 (偏微分方程式の前に) 一秒間に 1m3 h1, h2, h3, h4, h5の変化? 初めは,すべて 十分時間が たったときの h1~h5 ? h1 h2 h3 h4 h5 高さh 断面積 A = 0.5 単位時間 当たりの流量 F = h1 – h2

Excelで計算 初期値 A B C D E F 1 T h1 h2 h3 h4 h5 2 3 0.01 =B2 - 0.01 3 0.01 =B2 - 0.01 *SQRT(B2 - C2) / 0.5 + 4 0.02 5 0.03 6 0.04 7 0.05 初期値 時間刻み当たりの流入高さ 前回と同じ

Excelで計算 初期値 無限 A B C D E F 1 T h1 h2 h3 h4 h5 2 3 0.01 =B2 - 0.01 3 0.01 =B2 - 0.01 *SQRT(B2 - C2) / 0.5 + 4 0.02 5 0.03 6 0.04 7 0.05 無限 H1? H2? H3? H4? H5? 初期値 時間刻み当たりの流入高さ 今日の課題 前回と同じ

Excelで計算 初期値 A B C D 1 T h1 h2 h3 2 3 0.01 =B2 - 0.01 3 0.01 =B2 - 0.01 *SQRT(B2 - C2) / 0.5 +0.01*1/0.5 =C2 - 0.01*SQRT(C2 - D2) / 0.5 +0.01*SQRT(B2 – C2) / 0.5 4 0.02 5 0.03 6 0.04 7 0.05 時間刻み 当たりの 流出量/断面積 前回と同じ

Excelで計算 答え A B C D E F 1 T h1 h2 h3 h4 h5 2 3 0.01 0.02 - 10 3.432258 3 0.01 0.02 - 10 3.432258 2.571056 1.826114 1.169101 0.57019 100 4.999046 3.999123 2.999272 1.999479 0.999729 無限 5 4 答え

熱伝導に応用 T1 T2 T3 T4 T5 高さh 温度T h Q = l A(T4 – T5)/h x l:熱伝導率 c:比熱 r:密度 単位時間 当たりの熱の流れ Q = l A(T4 – T5)/h

一区間の温度上昇 T1 T2 T3 T4 T5 T4’=T4+ T ÷ρcAh h h 熱容量:=ρcAh +l A(T3 – T4)/h x 熱容量:=ρcAh T1 T2 T3 T4 T5 T4’=T4+ +l A(T3 – T4)/h T -l A(T4 – T5)/h ÷ρcAh h h l:熱伝導率 c:比熱 r:密度 A:断面積 Q = l A(T4 – T5)/h Q = l A(T3 – T4)/h

1 T4’=T4+ w1 w2 w3 w4 w5 u1 u2 u3 u4 u5 ÷ρcAh T w[i]=u[i]+ h h +l A(T3 – T4)/h -l A(T4 – T5)/h u1 u2 u3 u4 u5 ÷ρcAh T w[i]=u[i]+ +(u[i-1]–u[i])/h2 h h -(u[i]-u[I+1])/h2 Q = l A(u3 – u4)/h Q = l A(u4 – u5)/h

#include <stdio.h> #define N 20 int main( ) { double u[N+1], w[N+1]; double k=0.001; double h, r, s; int i, j; h = 1.0/(double)N; r = k/(h*h); s = 1.0 - 2.0*r; 今の温度 次の温度 時間刻み w[j] w, u t = ti u[j] u[j+1] xの区間 t = ti-1 u[j-1] x xj-2 xj-1 xj xj+1 xj+2 xj+3

l ui+1 – 2ui + ui-1 cr wi = ui + Dt h2 for(i=0;i< N;i++) u[i]=1.0; for(i=0;i<=N;i++) w[i]=0.0; u[0] = 0.0; u[N] = 0.0; for(j=1;j<=200;j++){ if((j%10)==0){ printf("%5.3lf ", (double)j*k); for(i=0;i<=N;i+=2) printf("%5.3lf ", u[i]); printf("\n"); } for(i=1;i<N;i++) w[i] = r*(u[i+1]+u[i-1]) + s*u[i]; for(i=1;i<=N;i++) u[i] = w[i]; return 0; 初期条件 温度=1(両端以外) 温度=0(両端) 剰余演算子 10で割ったあまり 出力 r = k/(h*h); s = 1.0 - 2.0*r; 1 wi = ui + Dt ui+1 – 2ui + ui-1 h2 l cr

for(i=1;i<N;i++) w[i] = r*(u[i+1]+u[i-1]) + s*u[i]; for(i=1;i<=N;i++) u[i] = w[i]; h = 1.0/N r = k/(h*h) s = 1.0 - 2.0*r = 1 - 2*k/h2 ui+1 – 2ui + ui-1 h2 wi = ui + Dt

熱伝導の基礎 ∂T ∂x 温度T x ∂T ∂x x Q = - l A l:熱伝導率 A:断面積 伝わる熱量は温度勾配に比例

熱伝導 ∂T ∂x ∂T ∂x Q’ = - l A + (- l A) Dx ∂ Q = - l A x + Δx Q - Q’ = l ADx = cr ADx ∂2T ∂x2 ∂T ∂t l:熱伝導率 c:比熱 r:密度 A:断面積 体積 = ∂2T ∂x2 ∂T ∂t l cr xに関する二階微分

の式 T t = ti t = ti-1 h x ∂2T ∂x2 Tj+1 - Tj Tj - Tj-1 - h h h xj-2 xj-1 x+Δx T t = ti t = ti-1 前の点 ここの2階微分 Tj+1 - Tj Tj - Tj-1 - h h h h x xj-2 xj-1 xj xj+1 xj+2 xj+3 iは時間変化 jは座標変化 ∂2T ∂x2 Tj+1 - 2Tj + Tj-1 = h2

Tiの式 ∂T ∂t Ti - Ti-1 = Dt = ∂2T ∂x2 ∂T ∂t l cr ∂2T ∂x2 Tj+1 - 2Tj + Tj-1 = h2 Ti = Ti-1 + Dt Tj+1 - 2Tj + Tj-1 h2 l cr

Tiの式 Ti T t = ti t = ti-1 Ti-1 x Ti = Ti-1 + Dt Tj+1 - 2Tj + Tj-1 h2 l cr Ti T t = ti t = ti-1 Ti-1 前の点 x xj-2 xj-1 xj xj+1 xj+2 xj+3

テキスト問題 t = 0 1 温度u w 1 l:熱伝導率 A:断面積 l cr = 1 両端の温度は常にゼロ

#include <stdio.h> #define N 20 int main( ) { double u[N+1], w[N+1]; double k=0.001; double h, r, s; int i, j; h = 1.0/(double)N; r = k/(h*h); s = 1.0 - 2.0*r; 今の温度 次の温度 時間刻み w[j] w, u t = ti u[j] u[j+1] xの区間 t = ti-1 u[j-1] x xj-2 xj-1 xj xj+1 xj+2 xj+3

l Tj+1 - 2Tj + Tj-1 cr Ti = Ti-1 + Dt h2 for(i=0;i< N;i++) u[i]=1.0; for(i=0;i<=N;i++) w[i]=0.0; u[0] = 0.0; u[N] = 0.0; for(j=1;j<=200;j++){ if((j%10)==0){ printf("%5.3lf ", (double)j*k); for(i=0;i<=N;i+=2) printf("%5.3lf ", u[i]); printf("\n"); } for(i=1;i<N;i++) w[i] = r*(u[i+1]+u[i-1]) + s*u[i]; for(i=1;i<=N;i++) u[i] = w[i]; return 0; 初期条件 温度=1(両端以外) 温度=0(両端) 剰余演算子 10で割ったあまり 出力 r = k/(h*h); s = 1.0 - 2.0*r; 1 Ti = Ti-1 + Dt Tj+1 - 2Tj + Tj-1 h2 l cr

for(i=1;i<N;i++) w[i] = r*(u[i+1]+u[i-1]) + s*u[i]; for(i=1;i<=N;i++) u[i] = w[i]; h = 1.0/N r = k/(h*h) s = 1.0 - 2.0*r = 1 - 2*k/h2 Tj+1 - 2Tj + Tj-1 h2 Ti = Ti-1 + Dt

微分方程式を考えない方法 t = 0 1 温度u w 1 l:熱伝導率 A:断面積 l cr = 1 両端の温度は常にゼロ

微分方程式を考えない方法 t = 0 1 1 (u[i] - u[i-1])/h 温度u l:熱伝導率 A:断面積 r:密度 c:比熱 h 分割する h h w 1 u[i-1] u[i] u[i+1] (u[i] - u[i-1])/h 温度勾配? w[i] A B C D E ・・・・・ V 1 時刻 x0 x1 x3 x4 x20 2 3 0.001

熱伝導の基礎 ∂T ∂x 温度T x ∂T ∂x x Q = - l A l:熱伝導率 A:断面積 伝わる熱量は温度勾配に比例 温度勾配

微分方程式を考えない方法 t = 0 1 1 温度u l:熱伝導率 A:断面積 r:密度 c:比熱 k:時間刻み h h w u[i-1] 分割する h h w 1 u[i-1] u[i] u[i+1] w[i] Q = - (u[i] - u[i-1])/h*lAk Q’ = - (u[i+1] - u[i])/h*lAk w[i] = u[i] +(Q-Q’)/(hArc) = u[i] +(u[i+1]-2u[i]+u[i-1])lk/rch2

エクセルでトライ! A B C D E ・・・・・ V 1 時刻 x0 x1 x3 x4 x20 2 3 0.001 4 0.002 5 3 0.001 4 0.002 5 0.003 6 時間刻み B2,C2,D3 から導出

エクセルでトライ! w[i] = u[i] +(u[i+1]-2u[i]+u[i-1])lk/rch2 A B C D E ・・・・・ V 1 時刻 x0 x1 x3 x4 x20 2 3 0.001 4 0.002 5 0.003 6 時間刻み B2,C2,D2 から導出 w[i] = u[i] +(u[i+1]-2u[i]+u[i-1])lk/rch2 lk/rch2=k*(l/rc)/h2=0.001*1/0.05^2=0.4

今日の課題 演習問題6.1 次の放物型偏微分方程式 を下記の条件で解け.      今日の課題 演習問題6.1 次の放物型偏微分方程式           を下記の条件で解け. ∂u ∂2u      = ∂t ∂x2 次回P74 初期条件:t=0, 0<x<1で,u=1 境界条件:t>0, x=0, 1で,u=0 ただし,刻みはh = 1/4, k = 1/32を用いよ.