前提・実現したいこと
出力がほしいものとはことなっていました.
1_1-7701_history.csvは本来7701行+ヘッダーの1行目,7201列あります.
しかし,下記の計算をして得られる最初の値は
-0.166846583になってほしいのですが,微妙にずれて-0.166741725
というような値になります.
何かコードのミスがあるのでしょうか.
ぼくのコードでは最初の1行目のtimestepと書かれた行は読まれない認識で大丈夫ですか?
本来やりたい計算は
y=y(i,j)+(2500/24)*((y(i+1,j)-2y(i,j)+y(i-1,j)/2500 + (y(i,j+1)-2y(i,j)+y(i,j-1)/2500))なのですが,コードは間違っていますか?
decimalを使用すればよいとのことなのですが,
私の書いたコードではエラーが出るのですが
これは何がいけないのでしょうか?
素人のためあまりわかっていません.すいません.勉強中です.
##作成したコード
import numpy as np import pandas as pd from decimal import Decimal data = pd.read_csv("1_23104-30804_history.csv").values.tolist() decimaldata = Decimal("data") list = [] filterrange = Decimal("8.0") deltax = Decimal("2.0") deltay = Decimal("2.0") a = filterrange*filterrange/Decimal("24.0") for j in range(7201): for i in range(7597): x = data[i+52][j] + a*(((data[i+53][j] - 2*data[i+52][j] + data[i+51][j])/(deltax*deltax)) + ((data[i+103][j] - 2*data[52][j] +data[i+1][j])/(deltay*deltay))) list.append(x) np.savetxt('deimal test_200_23104-30804_history.csv', list, delimiter=',') ## 1_23104-30804_history.csv
timestep
-0.84728
-0.95114
-0.79644
-0.77996
-0.67011
-0.82191
-0.74084
-1.5601
-0.76074
-0.98542
-1.3009
-0.5609
-0.64079
-0.92658
-0.70318
-0.85883
-0.82323
-0.63173
-0.61962
-1.1397
-1.2825
-0.64368
-0.64733
-0.58441
-0.68703
-0.73336
-1.1853
-0.47988
-1.0905
-1.0431
-1.2478
-1.0764
-1.2152
-1.211
-0.65762
-0.52679
-0.50093
-0.64618
-0.52306
-0.33061
-0.48963
-0.41828
-1.0891
-0.39603
-1.0711
-0.52733
-0.37916
-0.52217
-0.14342
-1.0873
-1.0399
-0.88322
-0.10131
-0.08455
-0.10721
0.028953
-0.12311
-0.065425
-0.20617
-0.082956
-0.032831
-0.056293
-0.04874
-0.014266
-0.045869
-0.12502
-0.012356
0.019462
0.034668
0.030992
0.036706
0.065337
0.09325
0.074081
0.12033
0.00088224
0.068295
0.12823
0.092159
0.062422
0.17616
0.15121
0.17839
0.1971
0.20163
0.21746
0.25111
0.23748
0.31161
0.27771
0.26351
0.33324
0.32294
0.29546
0.28425
0.33134
0.36748
0.49872
0.42924
0.45518
0.37397
-0.87739
-0.63376
-0.059208
0.088382
0.12132
0.15218
0.19531
回答2件
あなたの回答
tips
プレビュー