Option Explicit
'四个需要确定的值。
'注意,这四个值也可以使用变量的形式 置入,此处是示例
Const 步进 = 0.0001
'每次测试的变化值
Const 范围1 = 1
'在那个范围内进行测试,不同的范围可能有不同的答案
Const 范围2 = 2
Const 精度 = 0.00001
'达到某个精度认为是所需要的值
'这是最简单的 循环算法,还有 其它算法 ,有些算法 描述比较简单,但写起来比较复杂。
'如,有某个区间,计算二个端点,然后根据精度,决定移动其中一个端点,继续计算,再继续移动,直到接近精度为止。
Private Sub Command1_Click()
'(56.08479352*sin(α))/(0.840416116+sin(α))=(56.08479352-55.9063899*cos(α))/(1-sin(0.572745737-α))
Dim i As Double
Dim j1 As Double, j2 As Double
Dim z1 As Double, ij1 As Double
z1 = 精度
'循环计算,
For i = 范围1 To 范围2 Step 步进
j1 = (56.08479352 * Sin(i)) / (0.840416116 + Sin(i))
j2 = (56.08479352 - 55.9063899 * Cos(i)) / (1 - Sin(0.572745737 - i))
'只保留一个最接近的,也可以输出所有达到精度的值
If Abs(j1 - j2) < z1 Then
z1 = j1 - j2
ij1 = i
End If
Next i
'debug
Print ij1; z1, 精度
'结果
If ij1 = 0 Then
MsgBox "在指定的区间未找到解"
Else
MsgBox "在指定的敬意找到的最接近的解:" & ij1
End If
End Sub
1.57079599995304