INV渐开线函数反求需要使用到宏(VBA)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
INV渐开线函数反求需要使用到宏(VBA)。
解法是使用探求法(黄金分割法优化)
具体做法是:
打开EXCEL 菜单—工具—宏—宏—创建—然后在右侧新建一个"模块Module 1"—在模块下输入如下内容
Public Function inv(x As Double)
Dim IP1, OP2, R1, R2, Mate, PN, i As Double
Dim inv01, inv02 As Double
IP1 = x
R1 = 0
R2 = 90
Mate = (R2 - R1) * 0.6180339887498 + R1
For i = 1 To 1000
OP2 = Tan(Mate * 3.1415926535898 / 180) - Mate * 3.1415926535898 / 180 PN = OP2 - IP1
If PN > 0 Then
R2 = Mate
Mate = (R2 - R1) * 0.3819660112502 + R1
Else
R1 = Mate
Mate = (R2 - R1) * 0.6180339887498 + R1
End If
Next
inv = Mate
End Function
保存后关闭
这样你在EXCEL里面就有一个公式INV()了,用法和COS,AVERAGE等公式相同。
比如A1=8.93423000116951E-02 你想知道这个值对应的角度,那么就可以用INV(A1)知道值。
反求INV是没有公式的,一般是依靠查表,但是由于计算机的计算速度快,因此一般使用黄金分割法或者牛顿迭代法来优化求解。