Re: [算表] 用y值求x值

楼主: j2708180 (JaJa)   2020-08-10 13:21:42
: 有数值 x,a,b,c
: 复杂的公式 f(x,a,b,c)=y
: 如果a,b,c都是固定的,要如何用y值去求x值?
: 我知道 资料-模拟分析-目标搜寻
: 可是这个一次只能一个,要如何一次跑十个用y求x?
解法1.
Sub XAnswer()
Dim i As Integer
For i = 1 To 10
Range("A" & i).GoalSeek Range("B" & i), Range("C" & i)
'A、B、C 依序是 f(x)、y、x
Next
End Sub
缺点是笔数一多,旧电脑很容易当,而且计算到小数点后第15位,实在没必要
如果范围是0到100,而x是65.4
goalseek逻辑似乎是0、1、2、64、65、65.1、65.2这样跑?
而人的做法应该是50、70、60、65、66、65.5、65.4
我就想到解法2.
Function XAnswer()
Dim a, b, c As Integer
For a = 1 To 10
If f(a * 10) > y Then
Exit For
End If
Next a
For b = 1 To 10
If f((a - 1) * 10 + b * 1) > y Then
Exit For
End If
Next b
For c = 1 To 10
If f((a - 1) * 10 + (b - 1) * 1 + c * 0.1) > y Then
Exit For
End If
Next c
f(X) = (a - 1) * 10 + (b - 1) * 1 + (c - 1) * 0.1
End Function
我有一个x的范围是0.0000~99.9999,我就写abcdef六个
解法2.算很快,不会有多余的小数位数,而且可以直接在excel打公式
还有没有别的解法?

Links booklink

Contact Us: admin [ a t ] ucptt.com