693びぼーろく; 部分積分を使わないで積分したい時

被積分関数の形によっては一時的に複素数にすると便利だったりするかも。例えば以下のような場合。 $\displaystyle \int_0^L dx e^{-kx}\sin \frac{\pi x}{L} $ 正統的な方法としては部分積分だろうなと思うけど、一時的に複素数にすることで次のように計算できる。 $\displaystyle \int_0^L dx e^{-kx}\sin \frac{\pi x}{L}=\text{Re}\int_0^L dx e^{-kx}e^{i\frac{\pi x}{L}}=\text{Re}\frac{1}{-k+i\frac{\pi}{L}}\left[-e^{-kL}-1\right]=-\frac{k}{k^2+\frac{\pi^2}{L^2}}\left[1+e^{-kL}\right]$

563びぼーろく; pythonでファイルの書き込み

 をやった。正直どこにでも載ってると思うけど自分用まとめ。

 R,M1,M2 を計算してファイルkekka.txtに書き込みたいときは以下でできる。
(本当はファイルの存在確認とかそのあたり必要かもしれないけど、そんな人はこんなところ見ないだろう)

数値を書き込むときはstrで文字列にしないと怒られることに注意。もしくはfromatでそのまま埋め込むこともできる(らしい)。
with openはファイルを開く。こうするとcloseしなくて良いらしい。mode='a'は書き込みで追記。mode='w'にすると上書きするので注意が必要。(これとっても大事。)

さて、文字列は+で結合できるので長くならないように適当に改行。
(下の例は特に意味はない)


R = 1
M = 2
M = 3 
with open ('kekka.txt',mode='a') as file:
    line1 = '\n ======結果: R=' + str(R) + ','
    line1 += 'M1=' + str(M1) + ',M2=' + format(M2)
    line2 ='終わり\n'
    file.write(line1)
    file.write(line2)
 
 

こんな感じ。また一歩理解が進んだ。もし文字列中で'を使う場合はエスケープが必要。(' -> \') 

リストを文字列に帰る場合はjoin()を使う。書式は'区切り文字'.join(map(str,list)) でできるらしい。


param = [1,2,3]
with open ('kekka.txt',mode='a') as file:
    line1 =  ','.join(map(str,param))
    line2 ='終わり\n'
    file.write(line1)
    file.write(line2)
 
 

コメント

このブログの人気の投稿

471びぼーろく; ffmpegの音・映像ずれ修正

329びぼーろく; latexでヤング図を書く

531びぼーろく; python上でのヤコビ楕円関数