• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Python mpmath.mpf函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Python中sympy.mpmath.mpf函数的典型用法代码示例。如果您正苦于以下问题:Python mpf函数的具体用法?Python mpf怎么用?Python mpf使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了mpf函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。

示例1: test_mpmath_lambda

def test_mpmath_lambda():
    mpmath.mp.dps = 50
    sin02 = mpmath.mpf("0.19866933079506121545941262711838975037020672954020")
    f = lambdify(x, sin(x), "mpmath")
    prec = 1e-49  # mpmath precision is around 50 decimal places
    assert -prec < f(mpmath.mpf("0.2")) - sin02 < prec
    raises(TypeError, lambda: f(x))
开发者ID:Soroche,项目名称:sympy,代码行数:7,代码来源:test_lambdify.py


示例2: _optimize_single

def _optimize_single(opt_params):
    '''mapped function for optimization of a single function in a single domain
    
    opt_params is a tuple (expression, subs, bound, use_basinhopping, use_corners)
    returns the interval
    '''

    (e, subs, bound, use_basinhopping, use_corners) = opt_params
    assert not (use_basinhopping and use_corners)

    rv = None
    e = _simplify_eq(e)

    if bound is None:
        rv = _eval_eq_direct(e, subs)
    else:
        under_approx = None

        if use_corners:
            under_approx = _eval_at_corners(e, subs)
        elif use_basinhopping:
            under_approx = _basinhopping(e, subs)
        else:
            under_approx = _eval_at_middle(e, subs)

        # under_approx param should be an array of size 1, since it gets updated
        rv = _eval_eq_bounded(e, subs, bound, [under_approx])

    # convert rv from interval to tuple (for pickling)
    return [float(mpf(rv.a)), float(mpf(rv.b))]
开发者ID:verivital,项目名称:hyst,代码行数:30,代码来源:interval_optimize.py


示例3: daubechis

def daubechis(N):
	# make polynomial
	q_y = [sm.binomial(N-1+k,k) for k in reversed(range(N))]

	# get polynomial roots y[k]
	y = sm.mp.polyroots(q_y, maxsteps=200, extraprec=64)

	z = []
	for yk in y:
		# subustitute y = -1/4z + 1/2 - 1/4/z to factor f(y) = y - y[k]
		f = [sm.mpf('-1/4'), sm.mpf('1/2') - yk, sm.mpf('-1/4')]

		# get polynomial roots z[k]
		z += sm.mp.polyroots(f)

	# make polynomial using the roots within unit circle
	h0z = sm.sqrt('2')
	for zk in z:
		if sm.fabs(zk) < 1:
			h0z *= sympy.sympify('(z-zk)/(1-zk)').subs('zk',zk)

	# adapt vanising moments
	hz = (sympy.sympify('(1+z)/2')**N*h0z).expand()

	# get scaling coefficients
	return [sympy.re(hz.coeff('z',k)) for k in reversed(range(N*2))]
开发者ID:stein2013,项目名称:daubechies_wavelet_coefficients,代码行数:26,代码来源:test.py


示例4: uniform_nodes

def uniform_nodes(n):
  """Return uniform nodes."""

  r = set()
  for i in range(n):
    r.add(mpmath.mpf('-1.0') + i * mpmath.mpf('2.0')/(n-1))

  return map_to_zero_one(r)
开发者ID:dasmy,项目名称:sdcquad,代码行数:8,代码来源:sdcquad.py


示例5: mp_real

def mp_real(x):
    if type(x) == mpc:
        if x.imag == mpf(0):
            return mpf(x.real)
        else:
            raise ValueError
    else:
        return mpf(x)
开发者ID:renatocoutinho,项目名称:bioift,代码行数:8,代码来源:hs_novo.py


示例6: gauss_lobatto

def gauss_lobatto(n):
  """Return Gauss-Lobatto nodes.

  Gauss-Lobatto nodes are roots of P'_{n-1}(x) and -1, 1.
  """

  x = sympy.var('x')
  p = legendre_poly(n-1).diff(x)
  r = find_roots(p)
  r = [mpmath.mpf('-1.0'), mpmath.mpf('1.0')] + r
  return sorted(r)
开发者ID:memmett,项目名称:PyWENO,代码行数:11,代码来源:points.py


示例7: test_mod

def test_mod():
    assert mpf(234) % 1 == 0
    assert mpf(-3) % 256 == 253
    assert mpf(0.25) % 23490.5 == 0.25
    assert mpf(0.25) % -23490.5 == -23490.25
    assert mpf(-0.25) % 23490.5 == 23490.25
    assert mpf(-0.25) % -23490.5 == -0.25
    # Check that these cases are handled efficiently
    assert mpf('1e10000000000') % 1 == 0
    assert mpf('1.23e-1000000000') % 1 == mpf('1.23e-1000000000')
    # test __rmod__
    assert 3 % mpf('1.75') == 1.25
开发者ID:jcockayne,项目名称:sympy-rkern,代码行数:12,代码来源:test_division.py


示例8: gauss_lobatto_nodes

def gauss_lobatto_nodes(n):
  """Return Gauss-Lobatto nodes.

  Before mapping to [0,1], the nodes are: roots of :math:`P'_{n-1}(x)`
  and -1, 1.
  """

  x = sympy.var('x')
  p = legendre_poly(n-1).diff(x)
  r = find_roots(p)
  r = [mpmath.mpf('-1.0'), mpmath.mpf('1.0')] + r

  return map_to_zero_one(r)
开发者ID:dasmy,项目名称:sdcquad,代码行数:13,代码来源:sdcquad.py


示例9: as_mpmath

def as_mpmath(x, prec, options):
    x = sympify(x)
    if isinstance(x, C.Zero):
        return mpf(0)
    if isinstance(x, C.Infinity):
        return mpf("inf")
    if isinstance(x, C.NegativeInfinity):
        return mpf("-inf")
    # XXX
    re, im, _, _ = evalf(x, prec, options)
    if im:
        return mpc(re or fzero, im)
    return mpf(re)
开发者ID:smichr,项目名称:sympy,代码行数:13,代码来源:evalf.py


示例10: mc_compute_stationary

def mc_compute_stationary(P, precision=None, tol=None):
    n = P.shape[0]

    if precision is None:
        # Compute eigenvalues and eigenvectors
        eigvals, eigvecs = la.eig(P, left=True, right=False)

        # Find the index for unit eigenvalues
        index = np.where(abs(eigvals - 1.) < 1e-12)[0]

        # Pull out the eigenvectors that correspond to unit eig-vals
        uniteigvecs = eigvecs[:, index]

        stationary_dists = uniteigvecs/np.sum(uniteigvecs, axis=0)

    else:
        # Create a list to store eigvals
        stationary_dists_list = []
        if tol is None:
            # If tolerance isn't specified then use 2*precision
            tol = mp.mpf(2 * 10**(-precision + 1))

        with mp.workdps(precision):
            eigvals, eigvecs = mp.eig(mp.matrix(P), left=True, right=False)

            for ind, el in enumerate(eigvals):
                if el>=(mp.mpf(1)-mp.mpf(tol)) and el<=(mp.mpf(1)+mp.mpf(tol)):
                    stationary_dists_list.append(eigvecs[ind, :])

            stationary_dists = np.asarray(stationary_dists_list).T
            stationary_dists = (stationary_dists/sum(stationary_dists)).astype(np.float)


    # Check to make sure all of the elements of invar_dist are positive
    if np.any(stationary_dists < -1e-16):
        warn("Elements of your invariant distribution were negative; " +
              "Re-trying with additional precision")

        if precision is None:
            stationary_dists = mc_compute_stationary(P, precision=18, tol=tol)

        elif precision is not None:
            raise ValueError("Elements of your stationary distribution were" +
                             "negative.  Try computing with higher precision")

    # Since we will be accessing the columns of this matrix, we
    # might consider adding .astype(np.float, order='F') to make it
    # column major at beginning
    return stationary_dists.squeeze()
开发者ID:CY-Chan,项目名称:quant-econ,代码行数:49,代码来源:mc_tools.py


示例11: test_mpmath_lambda

def test_mpmath_lambda():
    dps = mpmath.mp.dps
    mpmath.mp.dps = 50
    try:
        sin02 = mpmath.mpf("0.19866933079506121545941262711838975037020672954020")
        f = lambdify(x, sin(x), "mpmath")
        prec = 1e-49 # mpmath precision is around 50 decimal places
        assert -prec < f(mpmath.mpf("0.2")) - sin02 < prec
        try:
            f(x) # if this succeeds, it can't be a mpmath function
            assert False
        except TypeError:
            pass
    finally:
        mpmath.mp.dps = dps
开发者ID:minrk,项目名称:sympy,代码行数:15,代码来源:test_lambdify.py


示例12: f

 def f(i, j):
     gamDict = self.__genGammaDict(j, gDict)
     gamDict[-1] = mpf('0')
     def g(n):
         return gamDict[n]
     _g = vectorize(g)
     return _g(i)
开发者ID:agamat,项目名称:rfunction,代码行数:7,代码来源:Rfunc_cnct.py


示例13: test_3250

def test_3250():
    from sympy.mpmath import mpf
    assert str(Float(mpf((1,22,2,22)), '')) == '-88.000'
    assert Float('23.e3', '')._prec == 10
    assert Float('23e3', '')._prec == 20
    assert Float('23000', '')._prec == 20
    assert Float('-23000', '')._prec == 20
开发者ID:amar47shah,项目名称:sympy,代码行数:7,代码来源:test_numbers.py


示例14: log

    def log(self):
        """
        Logaritmo de un intervalo: 'self.log()'

        NOTA: Si el intervalo contiene al 0, pero no es estrictamente negativo,
        se calcula el logaritmo de la intersecci\'on  del intervalo con el dominio
        natural del logaritmo, i.e., [0,+inf].
        """
        
        if 0 in self:

            domainNatural = Intervalo( 0, mpf('inf') )
            intervalRestricted = self.intersection( domainNatural )

            txt_warning = "\nWARNING: Interval {} contains 0 or negative numbers.\n".format(self)
            print txt_warning
            
            txt_warning = "Restricting to the intersection "\
                "with the natural domain of log(x), i.e. {}\n".format(intervalRestricted)
            print txt_warning
            
            return Intervalo( mp.log(intervalRestricted.lo), mp.log(intervalRestricted.hi) )

        elif 0 > self.hi:
            txt_error = 'Interval {} < 0\nlog(x) cannot be computed '\
                'for negative numbers.'.format(self)
            raise ValueError( txt_error )

        else:
            return Intervalo( mp.log(self.lo), mp.log(self.hi) )
开发者ID:dpsanders,项目名称:interval_arithmetic,代码行数:30,代码来源:intervalo.py


示例15: __genGammaDict

 def __genGammaDict(self, j, gDict):
     if self.isZeroT:
         return dict((k, self.scaledVolt[j]**k /gDict[k]) for k in self.wijnTerms)
     else:
         fg = fgamma(self.scaledVolt[j])
         return dict((k, fgamma(self.scaledVolt[j] + mpf(str(k))) / \
                             (fg*gDict[k])) for k in self.wijnTerms)
开发者ID:agamat,项目名称:rfunction,代码行数:7,代码来源:Rfunc_cnct.py


示例16: test_math_lambda

def test_math_lambda():
    mpmath.mp.dps = 50
    sin02 = mpmath.mpf("0.19866933079506121545941262711838975037020672954020")
    f = lambdify(x, sin(x), "math")
    prec = 1e-15
    assert -prec < f(0.2) - sin02 < prec
    raises(ValueError,"f(x)") # if this succeeds, it can't be a python math function
开发者ID:ALGHeArT,项目名称:sympy,代码行数:7,代码来源:test_lambdify.py


示例17: __init__

 def __init__(self, parameters, maxParameter, 
              g, V, prefac, gtot,
              scaledVolt, T, Vq):
     self.Vq = Vq
     self.parameters = parameters
     self.V = V
     self.T = T
     self.isZeroT = mp.almosteq(self.T, mpf(0))
     self.scaledVolt = scaledVolt
     self.g = g
     self.maxParameter = maxParameter
     self.prefac = prefac
     self.gtot = gtot
     ### input check ###            
     if len(self.maxParameter.shape) == 1:
         self.maxParameter = self.maxParameter[newaxis,:]
     if len(self.prefac.shape) == 1:
         self.prefac = self.prefac[newaxis,:]
     if self.g.shape != self.parameters.shape or \
                 self.V.shape != self.scaledVolt.shape or \
                 self.maxParameter.shape[1] != self.parameters.shape[0]:
         
         raise ValueError
     if len(self.g.shape) == 1:
         self.g = self.g[:, newaxis]
         self.parameters = self.parameters[:, newaxis]
     self.prefac = self.prefac * np.power(self.maxParameter, 
                               -self.scaledVolt[...,newaxis])
开发者ID:agamat,项目名称:rfunction,代码行数:28,代码来源:Rfunc_series.py


示例18: genScaledVoltage

 def genScaledVoltage(self):
     if self.isZeroT:
         self.Vq = self.Q*ELEC*self.V / HBAR
         self.scaledVolt = -1j*self.Vq
     else:
         self.Vq = self.Q*ELEC*self.V/(2*pi*BLTZMN*self.T)        
         self.scaledVolt = fmpc(self.gtot /mpf(2), - self.Vq )
开发者ID:agamat,项目名称:rfunction,代码行数:7,代码来源:InputParameters.py


示例19: _f

 def _f(i, j):
     ldaDICT = dict((k, self.lda[k][j])  for k in self.wijnTerms)
     ldaDICT[-1] = mpf(0)
     def g(n): 
         return ldaDICT[n]
     _g = np.vectorize(g)
     return _g(i)
开发者ID:agamat,项目名称:rfunction,代码行数:7,代码来源:Rfunc_cnct.py


示例20: _eval_evalf

    def _eval_evalf(self, prec):
        """Evaluate this complex root to the given precision. """
        _prec, mp.prec = mp.prec, prec

        try:
            func = lambdify(self.poly.gen, self.expr)

            interval = self._get_interval()
            refined =  False

            while True:
                if self.is_real:
                    x0 = mpf(str(interval.center))
                else:
                    x0 = mpc(*map(str, interval.center))

                try:
                    root = findroot(func, x0)
                except ValueError:
                    interval = interval.refine()
                    refined = True
                    continue
                else:
                    if refined:
                        self._set_interval(interval)

                    break
        finally:
            mp.prec = _prec

        return Float._new(root.real._mpf_, prec) + I*Float._new(root.imag._mpf_, prec)
开发者ID:ALGHeArT,项目名称:sympy,代码行数:31,代码来源:rootoftools.py



注:本文中的sympy.mpmath.mpf函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Python mpmath.mpi函数代码示例发布时间:2022-05-27
下一篇:
Python mpmath.mpc函数代码示例发布时间:2022-05-27
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap