Math 如何找到10个指数分布的值,它们的总和为x

Math 如何找到10个指数分布的值,它们的总和为x,math,language-agnostic,Math,Language Agnostic,我有一个值,例如2.8。我想找到10个指数曲线上的数字,和这个值相加 也就是说,我想得到10个数字,它们的总和为2.8,当绘制出来时,看起来像指数衰减下的曲线。这10个数字应沿曲线等距分布-即,值之间的“x步”应为常数 这个2.8的值将由用户输入,因此我计算它的方法需要某种算法,我可以编程,因此在Math.SE上提问 我根本不知道从哪里开始——有什么想法吗?你想让10个x值平均分布,即x_k=a+k*b。他们应满足sumexp-x_k=v,v为您的目标值2.8。这意味着exp-a*sumexp-

我有一个值,例如2.8。我想找到10个指数曲线上的数字,和这个值相加

也就是说,我想得到10个数字,它们的总和为2.8,当绘制出来时,看起来像指数衰减下的曲线。这10个数字应沿曲线等距分布-即,值之间的“x步”应为常数

这个2.8的值将由用户输入,因此我计算它的方法需要某种算法,我可以编程,因此在Math.SE上提问


我根本不知道从哪里开始——有什么想法吗?

你想让10个x值平均分布,即x_k=a+k*b。他们应满足sumexp-x_k=v,v为您的目标值2.8。这意味着exp-a*sumexp-b^k=v

显然,如果v是正的,那么b的每一个选择都有一个解。将b设置为任意值,然后从中计算a

例如,对于v=2.8和b=0.1,得到a=-logv/sumexp-b^k=-log2.8/sum0.90484^k=-log2.8/6.6425=-log0.421526=0.86387

因此,对于本例,x值为0.86387、0.96387、…、1.76387,y值为0.421526、0.381412、0.345116、0.312274、0.282557、0.255668、0.231338、0.209324、0.189404、0.171380

更新:

正如已经澄清的那样,曲线可以任意缩放,xs优选为1、2、3。。。这要简单得多

假设曲线函数是r*exp-x,那么10个值将是r*exp-1。。。r*exp-9。它们的总和是r*sumexp-x=r*0.58190489。因此,要达到某个值2.8,只需相应地调整r:

r=2.8/sumexp-x=4.81178294


然后得到10个值:1.770156,0.651204,0.239565,0.088131,0.032422,0.011927,0.004388,0.001614,0.000594。

你想让10个值均匀分布,即x_k=a+k*b。他们应满足sumexp-x_k=v,v为您的目标值2.8。这意味着exp-a*sumexp-b^k=v

显然,如果v是正的,那么b的每一个选择都有一个解。将b设置为任意值,然后从中计算a

例如,对于v=2.8和b=0.1,得到a=-logv/sumexp-b^k=-log2.8/sum0.90484^k=-log2.8/6.6425=-log0.421526=0.86387

因此,对于本例,x值为0.86387、0.96387、…、1.76387,y值为0.421526、0.381412、0.345116、0.312274、0.282557、0.255668、0.231338、0.209324、0.189404、0.171380

更新:

正如已经澄清的那样,曲线可以任意缩放,xs优选为1、2、3。。。这要简单得多

假设曲线函数是r*exp-x,那么10个值将是r*exp-1。。。r*exp-9。它们的总和是r*sumexp-x=r*0.58190489。因此,要达到某个值2.8,只需相应地调整r:

r=2.8/sumexp-x=4.81178294


得到10个值:1.770156,0.651204,0.239565,0.088131,0.032422,0.011927,0.004388,0.001614,0.000594。

如果我正确理解你的问题,那么你想找到解方程的x

这可以通过以下方式解决:

只是和数作几何级数

RootOf下的方程总是有1个实平方,与2.8或任何其他正数的1不同。您可以使用某种算法来解决它,1始终是根,但它不会解决原始任务。对于常数a,你可以选择任何你喜欢的数字


计算完x后,你可以很容易地计算出10个数字。

如果我正确理解了你的问题,那么你想找到解方程的x

这可以通过以下方式解决:

只是和数作几何级数

RootOf下的方程总是有1个实平方,与2.8或任何其他正数的1不同。您可以使用某种算法来解决它,1始终是根,但它不会解决原始任务。对于常数a,你可以选择任何你喜欢的数字


在计算完x之后,你可以很容易地计算出10个数字。

我将进行推广,并假设你想要N个数字和V相加

因为你们的数字在指数上是等距的,所以你们可以把你们的和写成

a + a*x + a*x^2 + ... + a*x^(N-1) = V
其中,第一个点的值为a,第二个点的值为a*x,以此类推

你可以取a的一个因子,得到:

如果我们可以自由选择x,那么我们就可以很容易地解出a

a = V / ( 1 + x + x^2 + .. x^(N-1) ) 
  = V*(x+1)/(x^N-1)
将其替换为

a, a*x, a*x^2, ..., a*x^(N-1) 

给出了所需的序列,我将进行推广,并假设您希望N个数字求和为V

因为你们的数字在指数上是等距的,所以你们可以把你们的和写成

a + a*x + a*x^2 + ... + a*x^(N-1) = V
其中,第一个点的值为a,第二个点的值为a*x,以此类推

你可以取a的一个因子,得到:

如果我们可以自由选择x,那么我们就可以很容易地解出a

a = V / ( 1 + x + x^2 + .. x^(N-1) ) 
  = V*(x+1)/(x^N-1)
将其替换为

a, a*x, a*x^2, ..., a*x^(N-1) 

给出所需的顺序

如何在图形上绘制数字?一个图形由成对的数字组成,而不仅仅是麻木的数字
呃。你的y值是10个数字,但是x值是什么?理想情况下,我想用1到10的x值来做这个。这有帮助吗?@robintw:对于给定的x值,y值已经固定了e^-1,e^-2,…,没有?或者你能缩放曲线吗?在这种情况下,你的问题将是微不足道的。@undur_gongor-如果有帮助的话,我可以缩放曲线。你如何在图形上绘制数字?图形由数对组成,而不仅仅是数。你的y值是10个数字,但是x值是什么?理想情况下,我想用1到10的x值来做这个。这有帮助吗?@robintw:对于给定的x值,y值已经固定了e^-1,e^-2,…,没有?或者你能缩放曲线吗?在这种情况下,您的问题将是微不足道的。@undur_gongor-如果有帮助的话,我可以缩放曲线。