1
2つの1軌道の重なり軌道を計算するスクリプトを作成する必要があります。積分はSwiftの積分結果を計算する
によって与えられ、私は、この使用してコードを計算してみましたが、私の答えはS=(1+R+R^2/3)exp(-R)
の解析結果の近くにどこにもありません。誰かが私がどこに間違っていたかを教えてくれるでしょうか?
コード:
import Foundation
var sum: Double = 0.0 //The integral result
var step_size: Double = 0.0000025
var a: Double = 0.0
var R: Double = 5.0
var next_point: Double = 0.0
var midpoint: Double = 0.0
var height: Double = 0.0
var r_val: Double = 0.0
func psi_func(r_val: Double) -> Double {
return exp(-r_val)
}
//Integration
while next_point < R {
next_point = a + step_size
midpoint = a + step_size/2
height = psi_func(r_val: midpoint)
sum += psi_func(r_val: midpoint)*step_size
a = a + step_size
}
print("S = ", 2*3.14159*3.14159*sum) // This is a 3-D orbital, so I multiply by 2*pi*pi
R = 5.0
のためには、私の答えは:19.61は
分析の答え:0.097
あなた自身の定数を定義するのではなく、静的プロパティ 'Double.pi'を使うことができます。 – MathewS
良いヒント@MathewS、ありがとう。 – loltospoon
'psi'と' r'と 'R'と' V'は関数定義に何が記述できるのでしょうか?これは、コードのデバッグに役立ちます – Alistra