teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

2021/09/20 02:39

投稿

ab-3
ab-3

スコア5

title CHANGED
@@ -1,1 +1,1 @@
1
- 別配列同士のにてIndexError:list index out of range解決したい
1
+ 別配列同士の足し算を同じforループ内で行えるのか
body CHANGED
File without changes

2

2021/09/20 02:39

投稿

ab-3
ab-3

スコア5

title CHANGED
File without changes
body CHANGED
@@ -1,9 +1,9 @@
1
1
  ・目的
2
2
  Pythonを使って一次元非定常熱伝導方程式を差分法で表したFTCS式で計算し、0℃の試料(深さ方向iの1次元のみ考える)に一定時間レーザー光を照射したときの温度分布をグラフに示したいと思っています。
3
3
  ・問題
4
- コード中の(# レーザー光照射による吸収熱の設定)で得た計算Qの配列を#FTCS式における別のtempという配列に足したいのですが、以下のエラーが表示され計算できませんでした。
4
+ コード中の(#レーザー吸収熱温度 Qの設定)で得た計算Qの配列を#FTCS式における別のtempという配列に足したいのですが、以下のエラーが表示され計算できませんでした。
5
5
  (エラー内容)
6
- #FTCS内のemp_new[i] = Q[i]+temp[i] +・・・式にてIndexError:list index out of rangeのエラー。リストサイズを超えたインデックスの要素を参照たときに発生するとことですが、今回の場合、おそらくQ[i]がエラーの要因かと思われます。Qとtemp別の配列ですが、どのようにすればエラーを解決してtempにQ[i]を足した計算がでますでしょうか?
6
+ #FTCS内のemp_new[i] = Q[i]+temp[i] +・・・式にてIndexError:list index out of rangeのエラー。Q配列とtemp配列を同じ要素iでforループて#FTCS内計算るにはどのように設定るべきでしょうか?
7
7
 
8
8
 
9
9
 

1

文章の訂正

2021/09/20 02:35

投稿

ab-3
ab-3

スコア5

title CHANGED
File without changes
body CHANGED
@@ -10,7 +10,7 @@
10
10
  ・FTCS式について
11
11
  forループのiですが、試料を表面i=0から裏面に向かって深さ方向(一次元)に101等分した要素番号としています。表面i=0と裏面i=nxは境界条件を指定しているためforループに入れていません。FTCS式では、左辺(位置iにおける時間n+1の温度)=右辺(位置iおよびi-1、i+1の時間nの温度)で計算されています。時間については#timeループで時間の要素nについて回しています。
12
12
  FTCS式では右辺は全て一つ前の時間のデータで計算する必要があるため、左辺をtemp_new[i]と別の配列に格納しています。FTCS法のforループが終わると、先程格納した temp_new を temp の配列にコピーして temp を更新します。#updateでforループを回し temp_new の各要素を temp の同じ番号の要素に代入しているような状態です。
13
- 今回はFTCS式の右辺にtempとは別の配列ですが、#レーザー光照射による吸収熱の設定、で与えた位置iにおけるレーザ光吸収熱温度Q[i]を足したいと思っています。
13
+ 今回はFTCS式の右辺にtempとは別の配列ですが、#レーザー光照射による吸収熱の設定、で与えた配列の中で位置iにおけるQ[i]を足したいと思っています。
14
14
 
15
15
 
16
16
  ```import matplotlib.pyplot as plt