标签: mpmath

如何评估 mpmath 函数内的 numpy 数组?

当我尝试在 mpmath 函数中使用 numpy 数组时出现错误,此示例在到达以下行时失败:

C = (f*L/D) + 2*mp.log(P1/P2)
Run Code Online (Sandbox Code Playgroud)

其中 P1 是一个数组。出现错误:

cannot create mpf from array([**P1_array**])
Run Code Online (Sandbox Code Playgroud)

我知道这个这个步骤是相关的。但我无法让我的代码工作。有人可以帮我纠正这个错误吗?

import numpy as np
import mpmath as mp

mp.mp.dps = 20

# State equation --> pV = nZRT

P1 = np.linspace(101325,10*101325,100)
P2 = 101325
T  = 300
D = 0.0095
A = mp.power(D,2)*mp.pi/4
L = 300
R = 8.31446
f = 0.05
Z1 = 0.9992
Z2 = 0.9999
Zm = 0.5*(Z1+Z2)

C = (f*L/D) + 2*mp.log(P1/P2)
w2 …
Run Code Online (Sandbox Code Playgroud)

python numpy mpmath

4
推荐指数
1
解决办法
1715
查看次数

如何从系数列表中构建多项式lambda函数?

我有一个与多项式表达式对应的系数列表,即:[1,2,0]对应于x^2 + 2x + 0.我想将这些系数的任意长度数组放入lambda函数中.

具体来说,我使用的是mpmath,我有一个用于polyval模块的列表:

polyval(ctx, coeffs, x, derivative=False)
Run Code Online (Sandbox Code Playgroud)

给定系数和数字,polyval()评估多项式.

我需要使用 带有一维函数的findroot模块,即:

findroot(lambda x: x**3 + 2*x + 1, 2)
Run Code Online (Sandbox Code Playgroud)

如何从系数列表中构造lambda函数?

python lambda numpy function mpmath

3
推荐指数
1
解决办法
2753
查看次数

Python中Numpy和MpMath之间的互操作性

我有一个numpy数组A,其mpf元素具有十进制精度100.如果我决定采用A的numpy dot产品,这个精度是否会被抛弃?

如果是这种情况,有没有办法将numpy数组转换为mpmath矩阵,所以我可以保持精度?

python arrays numpy mpmath

3
推荐指数
1
解决办法
2655
查看次数

我怎么知道mpmath是使用gmpy还是gmpy2?

我知道

import mpmath as mp
print mp.libmp.BACKEND
Run Code Online (Sandbox Code Playgroud)

但如果我没弄错的话,我不会说我是用gmpy还是gmpy2.

另外,我每次你使用更新版本的东西时都不会得到它旁边的版本号,但是因为我可以import gmpy而且gmpy2分别让我有点担心我可能会使用旧版本的gmpy.

谢谢

更新:

我也试过以下让我困惑/担心的事情.

import mpmath as mp
import gmpy as gm
import gmpy2 as gm2
print mp.mpf('1') == gm.mpf('1')
# Result is FALSE
print mp.mpf('1') == gm2.mpfr('1')
# Result is FALSE
print gm.mpf('1') == gm2.mpfr('1')
# Result is FALSE
print mp.mpf('1') == 1
# Result is TRUE
print gm.mpf('1') == 1
# Result is TRUE
print gm2.mpfr('1') == 1
# Result is TRUE
Run Code Online (Sandbox Code Playgroud)

有没有搞错?

python mpmath gmpy

2
推荐指数
1
解决办法
836
查看次数

在使用solveset()中的erf()函数时,sympy和mpmath给出"TypeError:无法创建mpf"

我有4个输入变量(浮点数):

  • XMAX
  • XMIN
  • 百分比
  • 模式

我想为s解决以下(相当长的)等式:

> (1/2+1/2*erf((log(Xmax)-(log(mode)+s**2))/(sqrt(2)*s))-(1/2+1/2*erf((log(Xmin)-(log(mode)+s**2))/(sqrt(2)*s))) - percentage == 0
Run Code Online (Sandbox Code Playgroud)

我想用mpmath和sympy来解决这个等式,但它给了我以下错误信息:

TypeError:无法从0.707106781186547*( - s**2 - 0.287682072451781)/ s创建mpf

我的代码如下:

from mpmath import erf, log, sqrt
from sympy import Symbol, solveset, S

percentage = 0.95
mode = 2
Xmin = 1.
Xmax = 1.5
s = Symbol('s')

eqn = (1/2+1/2*erf((log(Xmax)-(log(mode)+s**2))/(sqrt(2)*s))-(1/2+1/2*erf((log(Xmin)-(log(mode)+s**2))/(sqrt(2)*s))) - percentage)

solveset(eqn, s, domain=S.Reals)
Run Code Online (Sandbox Code Playgroud)

mpf是mpmath创建的float类型.

我想我把问题缩小到erf()函数,它返回

EmptySet()
Run Code Online (Sandbox Code Playgroud)

当我跑

solveset(log(Xmax) - (log(mode) + s ** 2), s, domain=S.Reals)
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚下一步该尝试什么,任何帮助将不胜感激!

我最初认为这是数学问题,但是方程式在matlab中成功解决,所以问题可能来自于sympy或者mpmath.

python sympy mpmath

1
推荐指数
1
解决办法
4040
查看次数

Python:AttributeError:'mpc'(或'mpf')对象没有属性'arcsin'

我试图使用来自 的 Jacobi 椭圆函数mpmath,但得到下面给出的简单代码的错误:

import numpy as np
import scipy.integrate as spi
from scipy import special as sp
import matplotlib.pyplot as plt
from math import sqrt, pow, log
from mpmath import ellipfun

sn = ellipfun('sn')
y=sn(0.5,-1)
print y

y1=y.real
print y1, np.arcsin(y), np.arcsin(y1)
Run Code Online (Sandbox Code Playgroud)

即使我只传递函数的实部,我也会收到错误消息sn(0.5,-1)。我不知道我是不是弄错了。请帮忙。提前致谢。

python numpy sympy mpc mpmath

1
推荐指数
1
解决办法
1785
查看次数

标签 统计

mpmath ×6

python ×6

numpy ×4

sympy ×2

arrays ×1

function ×1

gmpy ×1

lambda ×1

mpc ×1