我有一个等式,如下:
R - ((1.0 - np.exp(-tau))/(1.0 - np.exp(-a*tau))) = 0
.
我想tau
用numpy中可用的数值解算器在这个等式中求解.最好的方法是什么?
对于该公式的不同实现,该等式中的值R
和a
该等式的值不同,但是当要针对tau求解时,将其固定在特定值.
我正在解决简单的优化问题.该数据集有26列,超过3000行.源代码看起来像
Means <- colMeans(Returns)
Sigma <- cov(Returns)
invSigma1 <- solve(Sigma)
Run Code Online (Sandbox Code Playgroud)
一切都很完美 - 但是我想在更短的时间内(只有261行)做同样的事情,而solve函数会写出以下错误:
solve(Sigma)
Error in solve.default(Sigma) :
Lapack routine dgesv: system is exactly singular
Run Code Online (Sandbox Code Playgroud)
它很奇怪,因为当我用一些随机数做同样的事情时:
Returns<-matrix(runif(6786,-1,1), nrow=261)
Means <- colMeans(Returns)
Sigma <- cov(Returns)
invSigma <- solve(Sigma)
Run Code Online (Sandbox Code Playgroud)
完全没有错误.有人可以解释我哪里可能是问题以及如何对待它.非常感谢,Alex
我还没有使用诗歌来运行项目,所以请原谅缺乏理解。
\n我成功安装了诗歌Python库管理器,使用:
\ncurl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python3\n
Run Code Online (Sandbox Code Playgroud)\n下一步poetry install
最初返回此错误:
me@LAPTOP-G1DAPU88:~/.ssh/workers-python/workers$ poetry install\n\n RuntimeError\n\n Poetry could not find a pyproject.toml file in /home/me/.ssh/workers-python/workers or its parents\n\n at ~/.poetry/lib/poetry/_vendor/py3.8/poetry/core/factory.py:369 in locate\n 365\xe2\x94\x82 if poetry_file.exists():\n 366\xe2\x94\x82 return poetry_file\n 367\xe2\x94\x82\n 368\xe2\x94\x82 else:\n \xe2\x86\x92 369\xe2\x94\x82 raise RuntimeError(\n 370\xe2\x94\x82 "Poetry could not find a pyproject.toml file in {} or its parents".format(\n 371\xe2\x94\x82 cwd\n 372\xe2\x94\x82 )\n 373\xe2\x94\x82 )\n
Run Code Online (Sandbox Code Playgroud)\n我很快意识到我需要自己制作的pyproject.toml
文件。poetry install
再次运行得到:
$ poetry install\n\n TOMLError\n\n Invalid …
Run Code Online (Sandbox Code Playgroud) 最近我看到一篇关于使用SAT解决难题的Reddit文章[1].这让我对这个"SAT"的事情非常好奇.我阅读了维基百科的文章,但我想请你们中的某些人以更多的外行术语为我解释.
什么是SAT,它有什么用?它可以用于遍历树结构吗?用于解析文本?换线[2]?对于垃圾箱包装[3]?这是一种优化技术吗?
在相关的说明中,我读到NP与P是关于选择哪个数字的集合为零而不是检查某些数字是否总和为零 - SAT是否与此相关?
[1] http://www.reddit.com/r/programming/comments/pxpzd/solving_hexiom_really_fast_with_a_sat_solver/
是否有一个JavaScript库或函数可以解决变量的方程式?
如9 = 3 + x
x和解决.但它也应该解决更高级的方程,包括正弦,余弦和正切.
假设您想要找到T
满足以下等式的λ演算程序:
(T (? f x . x)) = (? a t . a)
(T (? f x . (f x))) = (? a t . (t a))
(T (? f x . (f (f x)))) = (? a b t . (t a b))
(T (? f x . (f (f (f x)))) = (? a b c t . (t a b c))
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我手动找到了这个解决方案:
T = (? t . (t (? b c d . (b (? …
Run Code Online (Sandbox Code Playgroud) haskell functional-programming equation lambda-calculus solver
我正在使用ublas :: Compressed Matrix来处理稀疏线性求解器UMFPACK.由于我正在进行模拟,所以每次线性系统的构造都略有不同,可能涉及扩大/缩小系数矩阵和一些稀疏矩阵乘法.线性系统的规模约为25k.
即使有一个绑定补丁用于增强与UMFPACK一起工作,我仍然需要不时更改矩阵,有时甚至计算非零值的数量将是耗时的(理想情况下,我必须给出数字当我初始化矩阵时的非零值).另外,我使用ublas :: range动态追加列/行.
所以我的问题是:有没有有效的方法来做到这一点?现在对我来说太慢了.转换尺寸为15k的矩阵成本接近6s并且附加大约12k行是很快的(因为我猜它是行主矩阵),但是向矩阵添加相同数量的列可能花费多达20s(我想同样的如上所述,所以即使我使用了列主矩阵,所需的总时间也是相同的).
有点在这里绝望.任何建议都是受欢迎的.
干杯.
我有约束的非线性优化问题.它可以使用Solver加载项在Microsoft Excel中解决,但我无法在C#中复制它.
我的问题显示在以下电子表格中.我正在解决经典的A x = b问题,但需要注意的是x的所有分量都必须是非负的.因此,不使用标准线性代数,而是使用具有非负约束的Solver,最小化平方差的总和,并获得合理的解.我试图使用Microsoft Solver Foundation或Solver SDK在C#中复制它.然而,我似乎无法与他们在任何地方,因为有了MSF,我无法弄清楚如何定义目标和使用Solver SDK我总是回到状态"最佳"和所有0的解决方案,这绝对不是一个本地最小.
这是我的Solver SDK代码:
static double[][] A = new double[][] { new double[] { 1, 0, 0, 0, 0 }, new double[] { 0.760652602, 1, 0, 0, 0 }, new double[] { 0.373419404, 0.760537565, 1, 0, 0 }, new double[] { 0.136996731, 0.373331934, 0.760422587, 1, 0 }, new double[] { 0.040625222, 0.136953801, 0.373244464, 0.76030755, 1 } };
static double[][] b = new …
Run Code Online (Sandbox Code Playgroud) 使用SymPy,是否可以将符号/变量的可能值限制在一定范围内?我现在可以在定义符号时设置一些属性,比如positive=True
,但是我需要更多的控制,即我需要将它设置为区间[0,1].然后应该使用这个假设来解决,简化等.
我在Windows 10上使用R 3.3.1(64位).我有一个xy数据集,我适合二阶多项式.我想在y = 4处求解x的最佳拟合多项式,并绘制从y = 4到x轴的下拉线.
这将在数据帧v1中生成数据:
v1 <- structure(list(x = c(-5.2549, -3.4893, -3.5909, -2.5546, -3.7247,
-5.1733, -3.3451, -2.8993, -2.6835, -3.9495, -4.9649, -2.8438,
-4.6926, -3.4768, -3.1221, -4.8175, -4.5641, -3.549, -3.08, -2.4153,
-2.9882, -3.4045, -4.6394, -3.3404, -2.6728, -3.3517, -2.6098,
-3.7733, -4.051, -2.9385, -4.5024, -4.59, -4.5617, -4.0658, -2.4986,
-3.7559, -4.245, -4.8045, -4.6615, -4.0696, -4.6638, -4.6505,
-3.7978, -4.5649, -5.7669, -4.519, -3.8561, -3.779, -3.0549,
-3.1241, -2.1423, -3.2759, -4.224, -4.028, -3.3412, -2.8832,
-3.3866, -0.1852, -3.3763, -4.317, -5.3607, -3.3398, -1.9087,
-4.431, -3.7535, -3.2545, -0.806, -3.1419, …
Run Code Online (Sandbox Code Playgroud)