python
1import numpy as np 2import matplotlib.pyplot as plt 3 4pi = np.pi 5 6def f1_1(tau,fai21:float): 7 return fai21 8 9def f2_1(tau,fai11,fai21:float): 10 return ((i/2)-np.sin(fai11)-fai21+i_a-j) / BC 11 12def f1_2(tau,fai22:float): 13 return fai22 14 15def f2_2(tau,fai12,fai22:float): 16 return ((i/2)-np.sin(fai12)-fai22+i_b+j) / BC 17 18BC = 4 19BL = 0.2 20 21a = 0 22b = 100 23N = 20000 24h = (b-a)/N 25 26j = 0.0 27i_a = 0.0 28i_b = 0.0 29fai11 = 0.0 30fai21 = 0.0 31fai12 = 0.0 32fai22 = 0.0 33#fai_a = 0.0 34s = float() 35v = float() 36 37with open("sample.txt", 'a') as f: 38 39 for fai_a in np.arange(0, 2, 0.05): 40 41 for i in np.arange(0, 4, 0.02): 42 43 for k in range(0, N, 1): 44 tau = k * h 45 k1_1 = h * f1_1(tau,fai21) 46 d1_1 = h * f2_1(tau,fai11, fai21) 47 k2_1 = h * f1_1(tau,fai21 + d1_1/2) 48 d2_1 = h * f2_1(tau,fai11 + k1_1/2, fai21 + d1_1/2) 49 k3_1 = h * f1_1(tau,fai21 + d2_1/2) 50 d3_1 = h * f2_1(tau,fai11 + k2_1/2 , fai21 +d2_1/2) 51 k4_1 = h * f1_1(tau,fai21 + d3_1) 52 d4_1 = h * f2_1(tau,fai11 + k3_1 , fai21 + d3_1) 53 fai11 += 1/6 * (k1_1 + 2 * k2_1 + 2 * k3_1 + k4_1) 54 fai21 += 1/6 * (d1_1 + 2 * d2_1 + 2 * d3_1 + d4_1) 55 56 k1_2 = h * f1_2(tau,fai22) 57 d1_2 = h * f2_2(tau,fai12, fai22) 58 k2_2 = h * f1_2(tau,fai22 + d1_2/2) 59 d2_2 = h * f2_2(tau,fai12 + k1_2/2, fai22 + d1_2/2) 60 k3_2 = h * f1_2(tau,fai22 + d2_2/2) 61 d3_2 = h * f2_2(tau,fai12 + k2_2/2, fai22 + d2_2/2) 62 k4_2 = h * f1_2(tau,fai22 + d3_2) 63 d4_2 = h * f2_2(tau,fai12 + k3_2, fai22 + d3_2) 64 fai12 += 1/6 * (k1_2 + 2 * k2_2 + 2 * k3_2 + k4_2) 65 fai22 += 1/6 * (d1_2 + 2 * d2_2 + 2 * d3_2 + d4_2) 66 67 j = (fai11-fai12-2*pi*fai_a) / (BL*pi) 68 69 if k > 6000: 70 s += fai21 71 72 v = s / 14000 73 print("{:.2f} {:.10f} {:.2f}".format(fai_a, v, i),file=f) 74 75 s = 0 76 77 78 for fai_a in np.arange(2, 0, -0.05): 79 80 print(fai_a) 81 82 for i in np.arange(4, 0, -0.02): 83 84 for k in range(0, N, 1): 85 tau = k * h 86 k1_1 = h * f1_1(tau,fai21) 87 d1_1 = h * f2_1(tau,fai11 , fai21) 88 k2_1 = h * f1_1(tau,fai21 + d1_1/2) 89 d2_1 = h * f2_1(tau,fai11 + k1_1/2, fai21 + d1_1/2) 90 k3_1 = h * f1_1(tau,fai21 + d2_1/2) 91 d3_1 = h * f2_1(tau,fai11 + k2_1/2 , fai21 +d2_1/2) 92 k4_1 = h * f1_1(tau,fai21 + d3_1) 93 d4_1 = h * f2_1(tau,fai11 + k3_1 , fai21 + d3_1 ) 94 fai11 += 1/6 * (k1_1 + 2 * k2_1 + 2 * k3_1 + k4_1) 95 fai21 += 1/6 * (d1_1 + 2 * d2_1 + 2 * d3_1 + d4_1) 96 97 k1_2 = h * f1_2(tau,fai22) 98 d1_2 = h * f2_2(tau,fai12 , fai22) 99 k2_2 = h * f1_2(tau,fai22 + d1_2/2) 100 d2_2 = h * f2_2(tau,fai12 + k1_2/2, fai22 + d1_2/2) 101 k3_2 = h * f1_2(tau,fai22 + d2_2/2) 102 d3_2 = h * f2_2(tau,fai12 + k2_2/2 , fai22 +d2_2/2) 103 k4_2 = h * f1_2(tau,fai22 + d3_2) 104 d4_2 = h * f2_2(tau,fai12 + k3_2 , fai22 + d3_2 ) 105 fai12 += 1/6 * (k1_2 + 2 * k2_2 + 2 * k3_2 + k4_2) 106 fai22 += 1/6 * (d1_2 + 2 * d2_2 + 2 * d3_2 + d4_2) 107 108 j = (fai11-fai12-2*pi*fai_a) / (BL*pi) 109 110 if k > 6000: 111 s += fai22 112 113 v = s / 14000 114 115 print("{:.2f} {:.10f} {:.2f}".format(fai_a, v, i), file=f) 116 117 s = 0 118 119```このコードをファイルに保存せずに実行すると、 120```python 1210.00 0.0000000000 0.00 1220.00 -0.0000004735 0.02 1230.00 -0.0000004695 0.04 1240.00 -0.0000004629 0.06 1250.00 -0.0000004537 0.08 1260.00 -0.0000004417 0.10 1270.00 -0.0000004271 0.12 1280.00 -0.0000004097 0.14 1290.00 -0.0000003896 0.16 1300.00 -0.0000003667 0.18 131 . 132 . 133 134 135```のように正しく回るのですが、上のコードのように、ファイルに保存するコードを入力して実行するとピクリとも動かなくなってしまいます。sampleファイルをのぞいてみても、何も保存されていませんでした。どこを修正すれば保存できるようになるでしょうか。
回答5件
あなたの回答
tips
プレビュー