Math 将此数字转换为40的数学算法/函数?
我正在编程一个旋钮,它有一个箭头,它的位置是由一个弧数定义的 我想找到一种方法,把这个弧数转换成一个表示温度的数 最小弧数为1.3,最大弧数为1.7 1.3需要等于40,1.7需要等于99Math 将此数字转换为40的数学算法/函数?,math,Math,我正在编程一个旋钮,它有一个箭头,它的位置是由一个弧数定义的 我想找到一种方法,把这个弧数转换成一个表示温度的数 最小弧数为1.3,最大弧数为1.7 1.3需要等于40,1.7需要等于99 这是可能的吗?(n-1.3)*147.5+40(n-1.3)*147.5+40当然,只要在上面加一行就行了 在这种情况下,output=147.5*input-151.75当然,只需在其上添加一行即可 在这种情况下,output=147.5*input-151.75这里简单介绍一下线性代数 这两个变量是旋钮位
这是可能的吗?
(n-1.3)*147.5+40
(n-1.3)*147.5+40
当然,只要在上面加一行就行了
在这种情况下,
output=147.5*input-151.75
当然,只需在其上添加一行即可
在这种情况下,
output=147.5*input-151.75
这里简单介绍一下线性代数
这两个变量是旋钮位置(x)和一些常数(p)
这两个方程是
1.3x + p = 40
1.7x + p = 99
用x解p的第一个方程得到:
p = 40 - 1.3x
如果我们将p的新定义放入第二个方程中,我们可以简化为:
1.7x + 40 - 1.3x = 99
.4x = 59
x = 147.5
然后你可以从任意一个方程中求出p。使用第一个方程式:
p = 40 -1.3*147.5 = -151.75
所以,从旋钮位置得到温度的最终方程式应该是
temp = 147.5*knobPosition - 151.75
这里是线性代数的简单演示 这两个变量是旋钮位置(x)和一些常数(p) 这两个方程是
1.3x + p = 40
1.7x + p = 99
用x解p的第一个方程得到:
p = 40 - 1.3x
如果我们将p的新定义放入第二个方程中,我们可以简化为:
1.7x + 40 - 1.3x = 99
.4x = 59
x = 147.5
然后你可以从任意一个方程中求出p。使用第一个方程式:
p = 40 -1.3*147.5 = -151.75
所以,从旋钮位置得到温度的最终方程式应该是
temp = 147.5*knobPosition - 151.75
如果它是线性的,您可以使用以下公式来考虑任何最小值和最大值:
from_min = -1.3
from_max = 1.7
to_min = 40
to_max = 99
from = <whatever value you want to convert>
to = (from - from_min) * (to_max - to_min) / (from_max - from_min) + to_min
然后使用-1.3作为下限,如您的评论中所述:
(-1.3..1.7) -> (40..99)
to = (from - from_min) * (to_max - to_min) / (from_max - from_min) + to_min
= (from - -1.3) * 59 / 3 + 40
= (from + 1.3) * 19.67 + 40
这个答案(当然还有迄今为止的所有其他答案)假设它是一个线性函数。根据你在问题中使用的“弧”和“旋钮”等词,这一点并不清楚。如果线性不够,您可能需要一些三角学(正弦、余弦等)。如果是线性的,您可以使用以下公式来考虑任何最小值和最大值:
from_min = -1.3
from_max = 1.7
to_min = 40
to_max = 99
from = <whatever value you want to convert>
to = (from - from_min) * (to_max - to_min) / (from_max - from_min) + to_min
然后使用-1.3作为下限,如您的评论中所述:
(-1.3..1.7) -> (40..99)
to = (from - from_min) * (to_max - to_min) / (from_max - from_min) + to_min
= (from - -1.3) * 59 / 3 + 40
= (from + 1.3) * 19.67 + 40
这个答案(当然还有迄今为止的所有其他答案)假设它是一个线性函数。根据你在问题中使用的“弧”和“旋钮”等词,这一点并不清楚。如果线性不够,你可能需要一些三角学(正弦、余弦等)。这确实是一个简单的代数问题,不需要线性代数
def scale_knob( knob_input ):
knob_low = -1.3
knob_high = 1.7
knob_range = knob_high - knob_low # 1.7 - -1.3 = 3.0.
out_low = 40.0
out_high = 99.0
out_range = out_high - out_low # 99.0 - 40.0 = 59.0
return ( knob_input - knob_low ) * ( out_range / knob_range ) + out_low
# scaled = ( input - (-1.3) ) * ( 59 / 3.0 ) + 40.0
这确实是一个简单的代数问题,不需要线性代数
def scale_knob( knob_input ):
knob_low = -1.3
knob_high = 1.7
knob_range = knob_high - knob_low # 1.7 - -1.3 = 3.0.
out_low = 40.0
out_high = 99.0
out_range = out_high - out_low # 99.0 - 40.0 = 59.0
return ( knob_input - knob_low ) * ( out_range / knob_range ) + out_low
# scaled = ( input - (-1.3) ) * ( 59 / 3.0 ) + 40.0
因为我错过了简单的解决方案,这里是另一种思考方法:
let delta(q) denote the rate of change of some quantity q.
那么你的相关价格是多少
delta(output)/delta(input) = (99 - 40) / (1.7 - 1.3) = 59/0.4 = 147.5
因此
假设此功能是连续的(意味着您可以对旋钮进行任意微小的调整,而不是离散的咔哒声),我们可以整合两侧,给出:
output = 147.5 * input + some_constant
因为我们知道,当输入是1.3,那么输出是40,我们有
40 = 147.5 * (1.3) + some_constant
因此
因此,你想要的方程式是
output = 147.5 * input - 151.75
因为我错过了简单的解决方案,这里是另一种思考方法:
let delta(q) denote the rate of change of some quantity q.
那么你的相关价格是多少
delta(output)/delta(input) = (99 - 40) / (1.7 - 1.3) = 59/0.4 = 147.5
因此
假设此功能是连续的(意味着您可以对旋钮进行任意微小的调整,而不是离散的咔哒声),我们可以整合两侧,给出:
output = 147.5 * input + some_constant
因为我们知道,当输入是1.3,那么输出是40,我们有
40 = 147.5 * (1.3) + some_constant
因此
因此,你想要的方程式是
output = 147.5 * input - 151.75
这两个答案都是正确的,但这一个使用较少的运算得到结果。如果最小值为-1.3,函数会发生什么变化?我忘了加负数。两个答案都是正确的,但这一个使用较少的运算得到结果。如果最小值为-1.3,函数会如何变化?我忘了加负数。非常感谢,我需要回到高中,重新学习代数/非常感谢,我需要回到高中,重新学习代数/这就是人们通常所说的“代数”,而不是“线性代数”。你可能会说它是线性函数的代数,有时用f(x)=mx+b的形式表示,但它不是线性代数。这就是人们通常所说的“代数”,而不是“线性代数”。你可以说它是一个线性函数的代数,有时用f(x)=mx+b的形式表示,但它不是线性代数。