C 平方反比方程

C 平方反比方程,c,math,exponential,inverse,C,Math,Exponential,Inverse,我有一个光传感器,它可以读取从0到4095的光强度。我努力用光的平方反比定律来写一个方程,这样当光最低时(比如说最低环境光为50),它返回1,如果最高时(4095),它返回26,但至关重要的是,从1到26的增量要求光以指数方式增加,即: 123 4 5 6 7 8 9 10 ...27 light intensity -> 对等式有什么建议吗?我似乎不明白。语言是C。你想把4095

我有一个光传感器,它可以读取从0到4095的光强度。我努力用光的平方反比定律来写一个方程,这样当光最低时(比如说最低环境光为50),它返回1,如果最高时(4095),它返回26,但至关重要的是,从1到26的增量要求光以指数方式增加,即:

123 4 5  6   7      8         9              10                          ...27
light intensity ->

对等式有什么建议吗?我似乎不明白。语言是C。

你想把4095到50的音程分成25个相等的段(26-1)。这意味着每个“强度段”的宽度为:

因此,如果变量
x
的范围为1到26,则距离的方程式为:

D = sqrt( 1 / (4095 - (x * 161.8)) )
这是因为将
Intensity\u value=1/D^2
作为比例(我说的是“Intensity value”,因为如果它是真实强度,它不包括比例常数-我们在处理这个问题的任意单位)

换句话说,如果在一条线上绘制
x
,并且每个
x
值都是距离原点的距离
D
,则会得到显示
1
26
的结果。我假设,从你的图表来看,当你向右走的时候,强度在减小


您应该能够将其推广到不同的强度范围和相应的
x

的不同范围,如果您的目的是在域[14095]上找到某个指数函数,其值在范围[1,26]内,那么这将满足以下条件:

f(x)=exp[(x-50)*ln(26)/(4095-50)
]

若你们的目的是要找到满足平方反比定律的函数,那个么既然

这将有助于:

(f( x))^2 = ( 1 / ( 4095 - ( x * ( 4095 - 50) / 25)) )
f(x) = sqrt( 1 / ( 4095 - ( x * ( 4095 - 50) / 25)) )

试试I=a.R^2+b的倒数,a=4090/676,b=-1,其中I是强度


通过假设上述函数,插入值对1、50和264095,并求解a和b,我得到了这一点。

我对物理学一无所知,但从你的解释来看,我相信你在寻找对数插值;这可以按如下方式进行

y = ln(x-50) * (26 - 1 / ln(4095-50) ) + 1

这里50、26和1用作参数,以拉伸和移动函数,将50映射到1,将4095映射到26;我希望这有帮助。

请写下参数值和函数值,很少有例子不使用平方反比定律可以接受吗?我无法想象在这种情况下它有什么可能的用途;也许你可以澄清一下这个问题?你想在域[14095]上找到一些指数函数,其值为[1,26]?它适用于跟随灯光的机器人的嵌入式硬件。当光线强度较低时(即机器人远离光线),机器人车轮电机应全速运行,并在机器人接近光线时减速。电机的值从1到26,其中1是最快的,26是最慢的。lizusek是的,这就是我要找的。谢谢,这就是我要找的。不幸的是,我缺乏雄辩地提问的经验。强度遵循平方反比定律。它不涉及自然原木。也许我误解了这个问题;强度是指数增长还是二次增长?问题是指数增长。:)是的。我认为这可能是用词不当,所以我要求OP澄清。
y = ln(x-50) * (26 - 1 / ln(4095-50) ) + 1