回答編集履歴

3

訂正

2021/07/08 14:18

投稿

kyokio
kyokio

スコア560

test CHANGED
@@ -1 +1,101 @@
1
+ そこそこ計算重いみたいですね。
2
+
3
+ 実行したらjが100で30秒でした。
4
+
5
+
6
+
7
+ 何してるのかわからないのでいいのかわからないですが、
8
+
1
- 計算量的問題なく終わるす。
9
+ 初期化のところを外出す結構早す。
10
+
11
+
12
+
13
+ j=10までは特に値は変わらずに動いてます。
14
+
15
+ ```
16
+
17
+ import sympy as sp
18
+
19
+ import math
20
+
21
+ import cv2
22
+
23
+ import numpy as np
24
+
25
+ import matplotlib.pyplot as plt
26
+
27
+ import csv
28
+
29
+ import os
30
+
31
+ import glob
32
+
33
+ import pandas as pd
34
+
35
+
36
+
37
+ options = {}
38
+
39
+ options['strings_to_formulas'] = False
40
+
41
+ options['strings_to_urls'] = False
42
+
43
+
44
+
45
+ with pd.ExcelWriter('eq.xlsx', mode='w') as writer:
46
+
47
+ for i in range(1):
48
+
49
+ Vr = i*0.5 + 0.5
50
+
51
+ π = math.pi
52
+
53
+ m = 0.0156
54
+
55
+ Cn = 6.83879
56
+
57
+ D = 0.016
58
+
59
+ H = 0.04
60
+
61
+ L = 0.3
62
+
63
+ ρ = 1.18
64
+
65
+ M = (m/(ρ*H*D*L))*(D/H)
66
+
67
+ CL = 0.5
68
+
69
+
70
+
71
+ lists = []
72
+
73
+ sp.init_printing()
74
+
75
+ sp.var('t')
76
+
77
+ y = sp.Function('y')(t) # xはtの関数(Function)
78
+
79
+ C = (4*π*Cn)/Vr
80
+
81
+ F = CL/(2*M)
82
+
83
+ eq2 = sp.Eq(sp.diff(y, t, 2)+C*sp.diff(y, t, 1), F)
84
+
85
+ yre = sp.dsolve(eq2, ics={y.subs(t, 0): 0})
86
+
87
+ for j in range(1, 16384):
88
+
89
+ lists.append(yre.subs(t, j*0.0005))
90
+
91
+ print(yre.subs(t, j*0.0005))
92
+
93
+
94
+
95
+ df = pd.DataFrame(lists)
96
+
97
+ print(df)
98
+
99
+ df.to_excel(writer)
100
+
101
+ ```

2

変更

2021/07/08 14:18

投稿

kyokio
kyokio

スコア560

test CHANGED
@@ -1,7 +1 @@
1
1
  計算量的に問題なく終わると思います。
2
-
3
-
4
-
5
- `y = sp.Function('y')(t) #xはtの関数(Function)`ここのtはどこから出てきたんでしょうか?
6
-
7
- もしかして`'t'`だったりします?

1

追記

2021/07/08 14:02

投稿

kyokio
kyokio

スコア560

test CHANGED
@@ -3,3 +3,5 @@
3
3
 
4
4
 
5
5
  `y = sp.Function('y')(t) #xはtの関数(Function)`ここのtはどこから出てきたんでしょうか?
6
+
7
+ もしかして`'t'`だったりします?