计算Swift

时间:2017-02-12 01:52:28

标签: swift swift3 physics

我需要创建一个脚本来计算两个1轨道的重叠轨道。

给出了积分

Integral

我尝试使用代码进行计算,但我的答案远不及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

1 个答案:

答案 0 :(得分:0)

我可以看到两个问题:

  1. 我看到一个wave函数,而不是代码中两个的乘积
  2. 只做一个1d积分并最后乘以2pi ^ 2是不正确的
  3. 尝试使用正确的被积函数进行正确的3d积分。