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