Tag: math

缩放互补错误函数,erfcx(x),避免算术溢出的计算 – VBA / Excel

我需要一个algorithm/近似来计算比例互补误差函数erfcx(x)来双精度浮点数。 我在工作电脑上,所以我只能使用Excel和VBA,而且我不能使用外部库或外接程序:我需要自己编写代码。 Excel只提供erf()和erfc()函数。 关系erfcx(x)= exp(x ^ 2)erfc(x)显然是有用的,但是对于大于26.5的x有算术上/下溢,我需要大于这个。 下面的post讨论了一个python实现 – 但它似乎不能解决这个问题,我可以告诉。 它提供的解决scheme使用其他库或近似值,不足以满足我的需求。 python中是否有缩放互补错误函数? 有什么build议么? 更新: 我使用维基百科上发现的这个Continued Fraction表示 和一个修改版本的algorithm来解决连续分数在这里findhttp://finance4traders.blogspot.nl/2009/07/continued-fractions-and-modified-lentzs.html 下面的代码似乎工作,实际上较大的input参数需要更less的迭代。 Function erfcx(x) As Variant Dim Ai As Double Dim Bi As Double Dim Ci As Double Dim Di As Double Dim Ei As Double Dim Fi As Double Dim X2 As Double Dim i As Long Const […]

向量在三维空间中的交集

我编写了一个Arduino板(使用C和在Excel中进行实验来正确计算)。 我需要一些帮助来计算一个特定范围内的三维目标的位置。 我有一个传感器系统,在每个探测器的距离给一个目标四个探测器在顶部长方形平面A,B,C,D上相隔50毫米示例立方体angular落的坐标是: A: (-25,25,0); B: (25,25,0); C: (-25,25,0); D: (-25,-25,0) [Sensor plane] E: (-25,25,-50); F: (25,25,-50); G: (-25,25,-50); H: (-25,-25,-50) 目标T1停在(2,7,-26) 我计算从(4位小数)A到T1 = 32.4500 ,B到T1 = 29.2060 ,C到T1 = 39.4081和D到T1 = 41.8688 实际上,没有立方体,只有传感器之间已知的距离以及目标距离每个传感器的距离(距离),目标可以在传感器1米内的任何地方,但不能位于传感器平面之上。 任何人都可以让我知道如何从这些固定点以及代数或三angular中的四个距离计算出Target(x,y,z)。 非常感谢,因为我没有太多的空间,所以我需要保持密码。

Excel – 计算假期

棘手的问题。 我需要一种分析员工假期的方法。 确保8月31日之前的40%,12月31日之前的35%,3月31日之前的25%。 这张图片显示了从8月1日到2月1日工作的员工的date,他们有权享受50个小时的假期。 以下显示的是8月底前10小时,8月至12月15天,后半年是5天。 他们还有20个小时的时间来select。 我的目标是得到这样的东西。 但是,这是一个棘手的部分…上面的图像需要考虑他们如果工作一整个纳税年度的时间。 例如,如果这个员工8月1日开始工作,而你做了50个小时的40/35/25%,那么只需要8个月就可以拿到20个小时。 相反,我需要计算他们在一整年内可以拿到的40/35/25%,然后把它用于正确的百分比。 例如。 如果员工从9月1日开始,并于12月31日结束,酒吧将在3月1日至8月31date间展示100%,1月1日至3月31date间展示100%。 请问你是否需要我澄清这些细节。

Excel – 分析以下数据的最佳方法是什么?

我正在寻找分析以下数据的最佳方法。 这是员工每年花费的小时数,剩下的是几小时。 数据栏是他们分配的小时数的百分比,显示在栏K中。上一个是他们离开了多less个小时,而上一个是他们一年中累积的假期。 我需要在每一行显示的相关信息,每一行都是员工的休假历史logging。 不同的员工有不同的时间,我需要一种方式,显示谁是最需要放假时,从最大到最小的过滤。 我发现这个棘手的问题是,如果一个员工有10个小时的分配,而且花了2个小时,那么这个是20%,如果有人有100个小时,而且只需要20个小时,那么这个是相同的。 但是第二名员工放弃一些假期显然更重要。 我正在努力用最好的方式来expression这一点。

计算铺设量等于零(EXCEL)=铺设量(K6)+ x = 0(Q6)

我在Excel中创build了一个简单的下注计算器来计算未知量,以便Q6中的值等于0。 所以5美元的赔率是58.82352941 [Lay amount =Backbet * ( (Back odds-1) * (1-back commission) + 1 ) / (lay odds-lay commission) ] 所以,如果我在交易所和博彩公司下注,我需要下注$ 5.88 …. 我的问题是如何计算我的下注,使博彩公司等于零,然后计算出新的利润。 反之亦然,与博彩公司交换。 如何计算非专业人员的数量,以便博彩交易所的利润等于零,而不仅仅是做标准的匹配赌注,而不是摆弄数字,所以它等于零。 我曾经想过要干什么 [![= K6 + x to equal zero (Q6) Where x is the amount needed to make Q6 = Zero.][1]][1] 但是,Excel似乎并不支持这样的事情。 Q6 is =V6+W6 w6 =K6[Lay bet]*(1-L6[lay odds]) and […]

实现悬链线和相关曲线

你好,首先我只想说我不喜欢这个答案,我只想知道做这种方程式的方法,因为我被要求把这个实现成一个excel的macros,而且很难理解他们。 一个例子是s = 12 / x + x 任何帮助将不胜感激。

Excel – 最陡峭和最陡峭的线条

有没有什么办法在Excel中,我可以得到最陡峭的线和最不陡峭的线,给定一个线性图? 如果不可能得到这些线,有没有办法(使用Excel)计算给定一个线的梯度。 下面是我正在使用的图表。

将曲线转换为线性

如何将蓝色曲线值转换为线性(红色曲线)? 我在Excel中做了一些testing,但基本上我有一个3D应用程序内的蓝色线值,我想用Python操作,所以我可以使这些值线性。 有没有我失踪的math方法? x轴从0到90,y轴从0到1。 例如:在graphics的中间,蓝线给我一个值“0,70711”,我知道线性的是“0,5”。 我想知道是否有一个简单的公式将所有传入的非线性值转换为线性。 我不知道是什么“公式”创造了非线性的蓝线,也忽略了黄线,因为我只是试图“反向工程”,看看是否会导致我的结论。 谢谢

从函数中派生3个未知variables

我有一个excel数据表,有4列。 每列是一个数字,第一个是依赖于其他三个看起来像这样的函数 first = (a*second) + (b*third) + (c*fourth) 理论上我只需要3套(第一,第二,第三,第四),但是我有> 100套。 variablesa,b和c不会被完美定义,但我会对某种类似的aproximation感到满意。 有什么办法可以在Excel中做到这一点,或者你可能会build议一些不同的math工具来find这些variables的最佳aproximation? 谢谢

仿真Excel数字精度C#.NET

Excel精确系统 Excel具有数字精度的IEEE 754规范的修改版本。 有关Excel如何计算的更多信息可以在这里find。 总结: 数字只存储在15个主要数字中。 在任何计算之前,Excel试图将该数字表示为2的幂(因为它是二进制表示) 如果数不是2的简单幂,则它使用几何级数来找出最接近的二进制数。 如果这个数字真的很小,Excel表示它是一个简单的2的幂。 问题 其他语言,在我的情况下, C#.NET ,以不同的方式实现数字精度。 所以,当你试图模拟一个电子表格,你最终会得到一些精度不匹配。 例 打开Excel并在任何单元格中插入此公式: =1+1/9000-1. 那么你会注意到结果与下面公式得到的结果不一样: =1/9000 我不想改变Excel的这种行为,我只是想模仿它。 现在在C#中创build一个简单的程序,并使用Decimal数进行相同的计算。 我使用小数来表示数字。 但它可能是我们Float的两倍,结果是一样的。 decimal result = 1.0M + 1.0M / 9000.0M – 1.0M; Console.WriteLine(result.ToString("N30")); 题 有没有什么办法可以模拟Excel的数字精度。 这样我可以得到与Excel相同的结果? 编辑 正如@DStanley所提到的,使用double可以解决上面的例子,但是对于其他情况仍然不起作用,例如: Excel中: =1+0.000000000000001665280326829110-1 0.000000000000000000000000000000 C#: double result = 1.0 + 0.000000000000001665280326829110 – 1.0; Console.WriteLine(result.ToString("N30")); 0.000000000000001554312234475220