- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想有效地求解 k 中的 7 次多项式。
例如,使用以下 7 个无条件概率集,
p <- c(0.0496772, 0.04584501, 0.04210299, 0.04026439, 0.03844668, 0.03487194, 0.03137491)
总体事件概率约为 25% :
> 1 - prod(1 - p)
[1] 0.2506676
如果我想近似一个常数
k
按比例更改
p
的所有元素以便整体事件概率现在约为 30%,我可以使用方程求解器(例如 Wolfram Alpha)来实现,它可以使用牛顿法或二分法来近似
k
在:
k
大约是
1.23
:
> 1 - prod(1 - 1.23*p)
[1] 0.3000173
但是如果我想针对许多不同的整体事件概率解决这个问题,我如何在 R 中有效地做到这一点?
SMfzero
包裹内
NLRoot
,但我仍然不清楚如何实现它。
p
以上:
Unit: nanoseconds
expr min lq mean median uq max neval
approximation_fun 800 1700 3306.7 3100 4400 39500 1000
polynom_fun 1583800 1748600 2067028.6 1846300 2036300 16332600 1000
polyroot_fun 596800 658300 863454.2 716250 792100 44709000 1000
bsoln_fun 48800 59800 87029.6 85100 102350 613300 1000
find_k_fun 48500 60700 86657.4 85250 103050 262600 1000
注意,我不确定比较
approximation_fun
是否公平与其他人,但我确实要求了一个近似的解决方案,因此它确实符合简要要求。
Unit: microseconds
expr min lq mean median uq max neval
approximation_fun 1.9 3.20 7.8745 5.50 14.50 55.5 1000
polynom_fun 10177.2 10965.20 12542.4195 11268.45 12149.95 80230.9 1000
bsoln_fun 52.3 60.95 91.4209 71.80 117.75 295.6 1000
find_k_fun 55.0 62.80 90.1710 73.10 118.40 358.2 1000
最佳答案
这可以通过 polynom
解决图书馆。
library(polynom)
library(purrr)
p <- runif(3, 0, 1)
p
#> [1] 0.1072518 0.5781922 0.3877427
# Overall probability
1 - prod(1 - p)
#> [1] 0.7694434
# Target overall probability
target_op <- 0.3
# calculate polynomial to solve for k
poly_list <- p %>%
map(~polynomial(c(1, -.))) %>%
as.polylist()
# List of linear polynomials to be multiplied:
poly_list
#> [[1]]
#> 1 - 0.1072518*x
#>
#> [[2]]
#> 1 - 0.5781922*x
#>
#> [[3]]
#> 1 - 0.3877427*x
# we want to solve this polynomial
poly <- 1 - prod(poly_list) - target_op
poly
#> -0.3 + 1.073187*x - 0.3277881*x^2 + 0.02404476*x^3
roots <- solve(poly)
good_roots <-
roots %>%
# keep only real values
keep(~Im(.) == 0) %>%
Re() %>%
# only positive
keep(~.>0)
good_roots
#> [1] 0.1448852
k <- good_roots[[1]]
1 - prod(1 - k*p)
#> [1] 0.3
创建于 2021-04-28 由
reprex package (v1.0.0)
关于r - 多项式函数的有效逼近实数解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67301660/
我现在脑子里有这个迫切的问题:在现代 Fortran 中声明 double 实数的“可接受”方式是什么?从最旧到最新,故事似乎是这样的:DOUBLE PRECISION ,然后 REAL(kind=8
我编写了一个程序,允许将中缀表达式转换为后缀表达式,但它仅适用于一位数字[A-Z][a-z][0-9]。我怎样才能使实数(正数和负数)成为可能? Example: (50 + 3.75) + 50 -
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 7 年前。 Improve this ques
使用 z3/python Web 界面,如果我问: x = Real ('x') solve(x * x == 2, show=True) 我很好地理解: Problem: [x·x = 2] Sol
我写了一个正则表达式来匹配任何数字: 正面和负面 十进制 实数 下面的正则表达式很好,但有一个缺点 ([\+\-]{1}){0,1}?[\d]*(\.{1})?[\\d]* 对于 + 或 - 等输入也
为什么当我在 SQL Server 中将 40.54 的值保存到 Real 类型的列时,它返回给我的值更像是 40.53999878999 而不是 40.54?我已经见过几次这种情况,但一直不明白为什
很震惊地学习这个,我肯定在犯错误...... 如果我 DECLARE 一个实数(或十进制)局部变量,我不能分配 (SET) 表达式的值?我必须先设置一个值,然后逐步执行表达式。如果我尝试一次“计算”所
我正在用 Python 为 Fortran 库编写前端。 Python 模块应该可以在 32 位和 64 位机器上运行;适用于 Windows、Linux 和 Mac。 我想了解一些数据类型的字节宽度
在 C++ 中,想要对较长的 (2^20) 实数 vector 进行排序,显然 sort() 可以解决问题。在我习惯了漂亮的 order() 函数之前使用过 R,该函数产生导致排序 vector 的排
给定一个真实值,我们能否检查 float 数据类型是否足以存储数字,或者是否需要 double? 我知道精度因架构而异。是否有任何 C/C++ 函数可以确定正确的数据类型? 最佳答案 有关背景,请参阅
我有一个 data.table , DT其中包含一列 C具有满足不等式的实值条目 0 (i-1)/N & x (i - 1)/10 & x (i - 1)/10 & x (i - 1)/10 &
需要帮助:如何使用 Excel 公式或 VBA 获取字符串中的十进制(实数)数字?我在“A 列”中有一个字符串,上面只有一个十进制数。我只想提取十进制(实数)数字,但它正在提取字符串上的第一个数字。详
我有一个维度为 (Nx, Ny, Nz) 的 3D 数组。 我想使用 FFTW3 库沿 z 轴应用真正的 FFT 和 IFFT。 这里,'z' 是变化最快的索引。 我已经使用 python 编写了相同
目前,我正在考虑拍摄图像及其光谱。现在 Parceval 的定理说两者应该具有相等的能量。然而,当我尝试在某些图像上对此进行测试时,numpy 真实 FFT 函数似乎并非如此。 这是我用于测试的代码:
用于将数值/实数/ double 转换为字符变化/文本。 select (12.0/100)::Double Precision;# 0.12 select (12.0/100)::Double Pr
我正在验证一个函数来计算我实验室中某个标准的通过率。这背后的数学原理非常简单:给定一些通过或失败的测试,通过的百分比是多少。 数据将作为一列值提供,即 P1 (第一次测试通过),F1 (第一次测试失败
我是一名优秀的程序员,十分优秀!