File tree Expand file tree Collapse file tree 2 files changed +42
-0
lines changed
contents/forward_euler_method Expand file tree Collapse file tree 2 files changed +42
-0
lines changed Original file line number Diff line number Diff line change
1
+ import Foundation
2
+
3
+ func solveEuler( timeStep: Double , n: Int ) -> [ Double ] {
4
+ var result : [ Double ] = [ 1 ]
5
+
6
+ for i in 1 ... n {
7
+ result. append ( result [ i - 1 ] - 3 * result[ i - 1 ] * timeStep)
8
+ }
9
+ return result
10
+ }
11
+
12
+ func checkResult( result: [ Double ] , threshold: Double , timeStep: Double ) -> Bool {
13
+ var isApprox = true
14
+
15
+ for i in 0 ..< result. count {
16
+ let solution = exp ( - 3 * Double( i) * timeStep)
17
+ if abs ( result [ i] - solution) > threshold {
18
+ print ( result [ i] , solution)
19
+ isApprox = false
20
+ }
21
+ }
22
+ return isApprox
23
+ }
24
+
25
+ func main( ) {
26
+ let timeStep = 0.01
27
+ let n = 100
28
+ let threshold = 0.01
29
+
30
+ let result = solveEuler ( timeStep: timeStep, n: n)
31
+ let isApprox = checkResult ( result: result, threshold: threshold, timeStep: timeStep)
32
+
33
+ if isApprox {
34
+ print ( " All values within threshold " )
35
+ } else {
36
+ print ( " Value(s) not in threshold " )
37
+ }
38
+ }
39
+
40
+ main ( )
Original file line number Diff line number Diff line change @@ -119,6 +119,8 @@ Full code for the visualization follows:
119
119
[ import, lang:"haskell"] ( code/haskell/euler.hs )
120
120
{% sample lang="m" %}
121
121
[ import, lang:"matlab"] ( code/matlab/euler.m )
122
+ {% sample lang="swift" %}
123
+ [ import, lang:"swift"] ( code/swift/euler.swift )
122
124
{% endmethod %}
123
125
124
126
<script >
You can’t perform that action at this time.
0 commit comments