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

Python sympy.piecewise_fold函数代码示例

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

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



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

示例1: test_piecewise_integrate1c

def test_piecewise_integrate1c():
    for i, g in enumerate([
        Piecewise((1 - x, Interval(0, 1).contains(x)),
            (1 + x, Interval(-1, 0).contains(x)), (0, True)),
        Piecewise((0, Or(x <= -1, x >= 1)), (1 - x, x > 0),
            (1 + x, True))]):
        gy1 = g.integrate((x, y, 1))
        g1y = g.integrate((x, 1, y))
        for yy in (-2, 0, 2):
            assert g.integrate((x, yy, 1)) == gy1.subs(y, yy)
            assert g.integrate((x, 1, yy)) == g1y.subs(y, yy)
        assert piecewise_fold(gy1.rewrite(Piecewise)) == Piecewise(
            (1, y <= -1),
            (-y**2/2 - y + 1/2, y <= 0),
            (y**2/2 - y + 1/2, y < 1),
            (0, True))
        assert piecewise_fold(g1y.rewrite(Piecewise)) == Piecewise(
            (-1, y <= -1),
            (y**2/2 + y - 1/2, y <= 0),
            (-y**2/2 + y - 1/2, y < 1),
            (0, True))
        # g1y and gy1 should simplify if the condition that y < 1
        # is applied, e.g. Min(1, Max(-1, y)) --> Max(-1, y)
        assert gy1 == Piecewise(
            (-Min(1, Max(-1, y))**2/2 - Min(1, Max(-1, y)) +
                Min(1, Max(0, y))**2 + 1/2, y < 1),
            (0, True))
        assert g1y == Piecewise(
            (Min(1, Max(-1, y))**2/2 + Min(1, Max(-1, y)) -
                Min(1, Max(0, y))**2 - 1/2, y < 1),
            (0, True))
开发者ID:aprasanna,项目名称:sympy,代码行数:31,代码来源:test_piecewise.py


示例2: supply

 def supply(self):
     aggregate = sp.Piecewise((0, True))
     for firm, n in self.firms():
         supply = firm.supply()
         if isinstance(supply, sp.relational.Relational):
             aggregate = sp.piecewise_fold(aggregate + firm.supply())
         else:
             aggregate = sp.piecewise_fold(aggregate + n*firm.supply())
     return aggregate
开发者ID:juanre,项目名称:econopy,代码行数:9,代码来源:producer.py


示例3: test_piecewise_fold_expand

def test_piecewise_fold_expand():
    p1 = Piecewise((1,Interval(0,1,False,True)),(0,True))

    p2 = piecewise_fold(expand((1-x)*p1))
    assert p2 == Piecewise((1 - x, Interval(0,1,False,True)), \
        (Piecewise((-x, Interval(0,1,False,True)), (0, True)), True))

    p2 = expand(piecewise_fold((1-x)*p1))
    assert p2 == Piecewise((1 - x, Interval(0,1,False,True)), (0, True))
开发者ID:ALGHeArT,项目名称:sympy,代码行数:9,代码来源:test_piecewise.py


示例4: test_issue_10087

def test_issue_10087():
    a, b = Piecewise((x, x > 1), (2, True)), Piecewise((x, x > 3), (3, True))
    m = a*b
    f = piecewise_fold(m)
    for i in (0, 2, 4):
        assert m.subs(x, i) == f.subs(x, i)
    m = a + b
    f = piecewise_fold(m)
    for i in (0, 2, 4):
        assert m.subs(x, i) == f.subs(x, i)
开发者ID:baoqchau,项目名称:sympy,代码行数:10,代码来源:test_piecewise.py


示例5: test_surplus

 def test_surplus(self):
     """Practice problem 2.2
     """
     sp.var('A x p')
     cons = Consumer(x, p, 2*A * sp.sqrt(x))
     self.assertEqual(sp.piecewise_fold(cons.surplus()),
                      sp.Piecewise((0, p < 0),
                                   (-A**2/p + 2*A*sp.sqrt(A**2/p**2), True)))
     self.assertEqual(sp.piecewise_fold(cons.surplus_at(p*2)),
                      sp.Piecewise((0, 2*p < 0),
                                   (-A**2/(2*p) + A*sp.sqrt(A**2/p**2), True)))
开发者ID:juanre,项目名称:econopy,代码行数:11,代码来源:test_consumer.py


示例6: test_piecewise_fold

def test_piecewise_fold():

    p = Piecewise((x, x < 1), (1, 1 <= x))

    assert piecewise_fold(x*p) == Piecewise((x**2, x < 1), (x, 1 <= x))
    assert piecewise_fold(p+p) == Piecewise((2*x, x < 1), (2, 1 <= x))

    p1 = Piecewise((0, x < 0), (x, x <= 1), (0, True))
    p2 = Piecewise((0, x < 0), (1 - x, x <=1), (0, True))

    p = 4*p1 + 2*p2
    assert integrate(piecewise_fold(p),(x,-oo,oo)) == integrate(2*x + 2, (x, 0, 1))
开发者ID:Praveen-Ramanujam,项目名称:MobRAVE,代码行数:12,代码来源:test_piecewise.py


示例7: test_piecewise_fold

def test_piecewise_fold():
    p = Piecewise((x, x < 1), (1, 1 <= x))

    assert piecewise_fold(x*p) == Piecewise((x**2, x < 1), (x, 1 <= x))
    assert piecewise_fold(p + p) == Piecewise((2*x, x < 1), (2, 1 <= x))
    assert piecewise_fold(Piecewise((1, x < 0), (2, True))
                          + Piecewise((10, x < 0), (-10, True))) == \
        Piecewise((11, x < 0), (-8, True))

    p1 = Piecewise((0, x < 0), (x, x <= 1), (0, True))
    p2 = Piecewise((0, x < 0), (1 - x, x <= 1), (0, True))

    p = 4*p1 + 2*p2
    assert integrate(
        piecewise_fold(p), (x, -oo, oo)) == integrate(2*x + 2, (x, 0, 1))

    assert piecewise_fold(
        Piecewise((1, y <= 0), (-Piecewise((2, y >= 0)), True)
        )) == Piecewise((1, y <= 0), (-2, y >= 0))

    assert piecewise_fold(Piecewise((x, ITE(x > 0, y < 1, y > 1)))
        ) == Piecewise((x, ((x <= 0) | (y < 1)) & ((x > 0) | (y > 1))))

    a, b = (Piecewise((2, Eq(x, 0)), (0, True)),
        Piecewise((x, Eq(-x + y, 0)), (1, Eq(-x + y, 1)), (0, True)))
    assert piecewise_fold(Mul(a, b, evaluate=False)
        ) == piecewise_fold(Mul(b, a, evaluate=False))
开发者ID:cklb,项目名称:sympy,代码行数:27,代码来源:test_piecewise.py


示例8: b_spline

    def b_spline(self, n, k):
        """
        Calculates the B-Spline b and returns it in a symbolic representation
        :param n: n in b^n
        :param k: k in b_k
        :return: kth-b_spline of degree n
        """
        x = sympy.symbols('x')
        spline = None

        if n in self.b_splines and k in self.b_splines[n]:
            return self.b_splines[n][k]

        if n == 0:
            spline = sympy.Piecewise((1, (x < sympy.S(self.knot_list[k + 1])) & (x >= sympy.S(self.knot_list[k]))),
                                     (0, True))
        else:
            gamma_k = (x - sympy.S(self.knot_list[k])) / (sympy.S(self.knot_list[k + n]) - sympy.S(self.knot_list[k]))
            gamma_k_plus_1 = (x - sympy.S(self.knot_list[k + 1])) / (
                sympy.S(self.knot_list[k + 1 + n]) - sympy.S(self.knot_list[k + 1]))
            spline = sympy.piecewise_fold(
                gamma_k * self.b_spline(n - 1, k) + (1 - gamma_k_plus_1) * self.b_spline(
                    n - 1, k + 1))

        self.add_spline(spline, n, k)
        return spline
开发者ID:sz-1011101,项目名称:tinyBSplines,代码行数:26,代码来源:B_Spline_Symbolic.py


示例9: test_issue_14240

def test_issue_14240():
    assert piecewise_fold(
        Piecewise((1, a), (2, b), (4, True)) +
        Piecewise((8, a), (16, True))
        ) == Piecewise((9, a), (18, b), (20, True))
    assert piecewise_fold(
        Piecewise((2, a), (3, b), (5, True)) *
        Piecewise((7, a), (11, True))
        ) == Piecewise((14, a), (33, b), (55, True))
    # these will hang if naive folding is used
    assert piecewise_fold(Add(*[
        Piecewise((i, a), (0, True)) for i in range(40)])
        ) == Piecewise((780, a), (0, True))
    assert piecewise_fold(Mul(*[
        Piecewise((i, a), (0, True)) for i in range(1, 41)])
        ) == Piecewise((factorial(40), a), (0, True))
开发者ID:cklb,项目名称:sympy,代码行数:16,代码来源:test_piecewise.py


示例10: _stress

 def _stress(self):
     z = sympy.Symbol('z')
     x = sympy.Symbol('x')
     props = self.laminate.piecewise_cr()
     strain = self.strain
     stress = sympy.piecewise_fold(props * self.strain)
     return stress
开发者ID:tbhartman,项目名称:eng,代码行数:7,代码来源:clpt.py


示例11: test_piecewise_fold_piecewise_in_cond_2

def test_piecewise_fold_piecewise_in_cond_2():
    p1 = Piecewise((cos(x), x < 0), (0, True))
    p2 = Piecewise((0, Eq(p1, 0)), (1 / p1, True))
    p3 = Piecewise(
        (0, (x >= 0) | Eq(cos(x), 0)),
        (1/cos(x), x < 0),
        (zoo, True))  # redundant b/c all x are already covered
    assert(piecewise_fold(p2) == p3)
开发者ID:aprasanna,项目名称:sympy,代码行数:8,代码来源:test_piecewise.py


示例12: test_piecewise_fold_piecewise_in_cond

def test_piecewise_fold_piecewise_in_cond():
    p1 = Piecewise((cos(x), x < 0), (0, True))
    p2 = Piecewise((0, Eq(p1, 0)), (p1 / Abs(p1), True))
    p3 = piecewise_fold(p2)
    assert p2.subs(x, -pi / 2) == 0.0
    assert p2.subs(x, 1) == 0.0
    assert p2.subs(x, -pi / 4) == 1.0
    p4 = Piecewise((0, Eq(p1, 0)), (1, True))
    assert piecewise_fold(p4) == Piecewise((0, Or(And(Eq(cos(x), 0), x < 0), Not(x < 0))), (1, True))

    r1 = 1 < Piecewise((1, x < 1), (3, True))
    assert piecewise_fold(r1) == Not(x < 1)

    p5 = Piecewise((1, x < 0), (3, True))
    p6 = Piecewise((1, x < 1), (3, True))
    p7 = piecewise_fold(Piecewise((1, p5 < p6), (0, True)))
    assert Piecewise((1, And(Not(x < 1), x < 0)), (0, True))
开发者ID:scopatz,项目名称:sympy,代码行数:17,代码来源:test_piecewise.py


示例13: test_piecewise_integrate1ca

def test_piecewise_integrate1ca():
    y = symbols('y', real=True)
    g = Piecewise(
        (1 - x, Interval(0, 1).contains(x)),
        (1 + x, Interval(-1, 0).contains(x)),
        (0, True)
        )
    gy1 = g.integrate((x, y, 1))
    g1y = g.integrate((x, 1, y))

    assert g.integrate((x, -2, 1)) == gy1.subs(y, -2)
    assert g.integrate((x, 1, -2)) == g1y.subs(y, -2)
    assert g.integrate((x, 0, 1)) == gy1.subs(y, 0)
    assert g.integrate((x, 1, 0)) == g1y.subs(y, 0)
    # XXX Make test pass without simplify
    assert g.integrate((x, 2, 1)) == gy1.subs(y, 2).simplify()
    assert g.integrate((x, 1, 2)) == g1y.subs(y, 2).simplify()

    assert piecewise_fold(gy1.rewrite(Piecewise)) == \
        Piecewise(
            (1, y <= -1),
            (-y**2/2 - y + S(1)/2, y <= 0),
            (y**2/2 - y + S(1)/2, y < 1),
            (0, True))
    assert piecewise_fold(g1y.rewrite(Piecewise)) == \
        Piecewise(
            (-1, y <= -1),
            (y**2/2 + y - S(1)/2, y <= 0),
            (-y**2/2 + y - S(1)/2, y < 1),
            (0, True))

    # g1y and gy1 should simplify if the condition that y < 1
    # is applied, e.g. Min(1, Max(-1, y)) --> Max(-1, y)
    # XXX Make test pass without simplify
    assert gy1.simplify() == Piecewise(
        (
            -Min(1, Max(-1, y))**2/2 - Min(1, Max(-1, y)) +
            Min(1, Max(0, y))**2 + S(1)/2, y < 1),
        (0, True)
        )
    assert g1y.simplify() == Piecewise(
        (
            Min(1, Max(-1, y))**2/2 + Min(1, Max(-1, y)) -
            Min(1, Max(0, y))**2 - S(1)/2, y < 1),
        (0, True))
开发者ID:bjodah,项目名称:sympy,代码行数:45,代码来源:test_piecewise.py


示例14: test_stackoverflow_43852159

def test_stackoverflow_43852159():
    f = lambda x: Piecewise((1 , (x >= -1) & (x <= 1)) , (0, True))
    Conv = lambda x: integrate(f(x - y)*f(y), (y, -oo, +oo))
    cx = Conv(x)
    assert cx.subs(x, -1.5) == cx.subs(x, 1.5)
    assert cx.subs(x, 3) == 0
    assert piecewise_fold(f(x - y)*f(y)) == Piecewise(
        (1, (y >= -1) & (y <= 1) & (x - y >= -1) & (x - y <= 1)),
        (0, True))
开发者ID:aprasanna,项目名称:sympy,代码行数:9,代码来源:test_piecewise.py


示例15: test_piecewise_fold

def test_piecewise_fold():
    p = Piecewise((x, x < 1), (1, 1 <= x))

    assert piecewise_fold(x*p) == Piecewise((x**2, x < 1), (x, 1 <= x))
    assert piecewise_fold(p + p) == Piecewise((2*x, x < 1), (2, 1 <= x))
    assert piecewise_fold(Piecewise((1, x < 0), (2, True))
                          + Piecewise((10, x < 0), (-10, True))) == \
        Piecewise((11, x < 0), (-8, True))

    p1 = Piecewise((0, x < 0), (x, x <= 1), (0, True))
    p2 = Piecewise((0, x < 0), (1 - x, x <= 1), (0, True))

    p = 4*p1 + 2*p2
    assert integrate(
        piecewise_fold(p), (x, -oo, oo)) == integrate(2*x + 2, (x, 0, 1))

    assert piecewise_fold(
        Piecewise((1, y <= 0), (-Piecewise((2, y >= 0)), True)
        )) == Piecewise((1, y <= 0), (-2, y >= 0))
开发者ID:baoqchau,项目名称:sympy,代码行数:19,代码来源:test_piecewise.py


示例16: test_piecewise_integrate1cb

def test_piecewise_integrate1cb():
    y = symbols('y', real=True)
    g = Piecewise(
        (0, Or(x <= -1, x >= 1)),
        (1 - x, x > 0),
        (1 + x, True)
        )
    gy1 = g.integrate((x, y, 1))
    g1y = g.integrate((x, 1, y))

    assert g.integrate((x, -2, 1)) == gy1.subs(y, -2)
    assert g.integrate((x, 1, -2)) == g1y.subs(y, -2)
    assert g.integrate((x, 0, 1)) == gy1.subs(y, 0)
    assert g.integrate((x, 1, 0)) == g1y.subs(y, 0)
    assert g.integrate((x, 2, 1)) == gy1.subs(y, 2)
    assert g.integrate((x, 1, 2)) == g1y.subs(y, 2)

    assert piecewise_fold(gy1.rewrite(Piecewise)) == \
        Piecewise(
            (1, y <= -1),
            (-y**2/2 - y + S(1)/2, y <= 0),
            (y**2/2 - y + S(1)/2, y < 1),
            (0, True))
    assert piecewise_fold(g1y.rewrite(Piecewise)) == \
        Piecewise(
            (-1, y <= -1),
            (y**2/2 + y - S(1)/2, y <= 0),
            (-y**2/2 + y - S(1)/2, y < 1),
            (0, True))

    # g1y and gy1 should simplify if the condition that y < 1
    # is applied, e.g. Min(1, Max(-1, y)) --> Max(-1, y)
    assert gy1 == Piecewise(
        (
            -Min(1, Max(-1, y))**2/2 - Min(1, Max(-1, y)) +
            Min(1, Max(0, y))**2 + S(1)/2, y < 1),
        (0, True)
        )
    assert g1y == Piecewise(
        (
            Min(1, Max(-1, y))**2/2 + Min(1, Max(-1, y)) -
            Min(1, Max(0, y))**2 - S(1)/2, y < 1),
        (0, True))
开发者ID:bjodah,项目名称:sympy,代码行数:43,代码来源:test_piecewise.py


示例17: test_piecewise_fold_piecewise_in_cond

def test_piecewise_fold_piecewise_in_cond():
    p1 = Piecewise((cos(x), x < 0), (0, True))
    p2 = Piecewise((0, Eq(p1, 0)), (p1 / Abs(p1), True))
    p3 = piecewise_fold(p2)
    assert(p2.subs(x, -pi/2) == 0.0)
    assert(p2.subs(x, 1) == 0.0)
    assert(p2.subs(x, -pi/4) == 1.0)
    p4 = Piecewise((0, Eq(p1, 0)), (1,True))
    ans = piecewise_fold(p4)
    for i in range(-1, 1):
        assert ans.subs(x, i) == p4.subs(x, i)

    r1 = 1 < Piecewise((1, x < 1), (3, True))
    ans = piecewise_fold(r1)
    for i in range(2):
        assert ans.subs(x, i) == r1.subs(x, i)

    p5 = Piecewise((1, x < 0), (3, True))
    p6 = Piecewise((1, x < 1), (3, True))
    p7 = Piecewise((1, p5 < p6), (0, True))
    ans = piecewise_fold(p7)
    for i in range(-1, 2):
        assert ans.subs(x, i) == p7.subs(x, i)
开发者ID:baoqchau,项目名称:sympy,代码行数:23,代码来源:test_piecewise.py


示例18: test_issue_10258

def test_issue_10258():
    assert Piecewise((0, x < 1), (1, True)).is_zero is None
    assert Piecewise((-1, x < 1), (1, True)).is_zero is False
    a = Symbol('a', zero=True)
    assert Piecewise((0, x < 1), (a, True)).is_zero
    assert Piecewise((1, x < 1), (a, x < 3)).is_zero is None
    a = Symbol('a')
    assert Piecewise((0, x < 1), (a, True)).is_zero is None
    assert Piecewise((0, x < 1), (1, True)).is_nonzero is None
    assert Piecewise((1, x < 1), (2, True)).is_nonzero
    assert Piecewise((0, x < 1), (oo, True)).is_finite is None
    assert Piecewise((0, x < 1), (1, True)).is_finite
    b = Basic()
    assert Piecewise((b, x < 1)).is_finite is None

    # 10258
    c = Piecewise((1, x < 0), (2, True)) < 3
    assert c != True
    assert piecewise_fold(c) == True
开发者ID:baoqchau,项目名称:sympy,代码行数:19,代码来源:test_piecewise.py


示例19: test_piecewise_complex

def test_piecewise_complex():
    p1 = Piecewise((2, x < 0), (1, 0 <= x))
    p2 = Piecewise((2*I, x < 0), (I, 0 <= x))
    p3 = Piecewise((I*x, x > 1), (1 + I, True))
    p4 = Piecewise((-I*conjugate(x), x > 1), (1 - I, True))

    assert conjugate(p1) == p1
    assert conjugate(p2) == piecewise_fold(-p2)
    assert conjugate(p3) == p4

    assert p1.is_imaginary is False
    assert p1.is_real is True
    assert p2.is_imaginary is True
    assert p2.is_real is False
    assert p3.is_imaginary is None
    assert p3.is_real is None

    assert p1.as_real_imag() == (p1, 0)
    assert p2.as_real_imag() == (0, -I*p2)
开发者ID:HuibinLin,项目名称:sympy,代码行数:19,代码来源:test_piecewise.py


示例20: equilibrium

    def equilibrium(self, rational=True):
        """
        >>> sp.var('x p', positive=True)
        (x, p)
        >>> consumer = Consumer(x, p, 20*sp.sqrt(x), W=100)
        >>> cons_aggregate = ConsumerAggregate((consumer, 100))
        >>> cons_aggregate.demand()
        Piecewise((0, p < 0), (10000/p**2, 0 < p), (0, True))
        >>> firm = Firm(x, p, 1/2. * x**2, SFC=0, FC=0)
        >>> firm_aggregate = ProducerAggregate((firm, 10))
        >>> firm_aggregate.supply()
        Piecewise((0, p < 0), (10*p, And(0 <= p, p >= 0)))
        >>> mkt = Market(x, p,
        ...              cons_aggregate.demand(),
        ...              firm_aggregate.supply())
        >>> mkt.equilibrium()
        (10, 100)
        >>> mkt = Market(x, p,
        ...              demand=1000-p,
        ...              supply=sp.Eq(p, 100))
        >>> mkt.equilibrium()
        (100, 900)
        """
        demand = self.demand
        if not rational:
            demand = self.deluded_demand
        eq = sp.solve((et.implicit(self.q, demand),
                       et.implicit(self.q, self.supply)),
                      self.p, self.q, dict=True)
        if eq:
            eq = eq[-1]
            return eq[self.p], eq[self.q] #self.supply.subs(self.p, peq)

        peq = sp.solve(sp.piecewise_fold(demand - self.supply), self.p)
        if peq:
            peq = peq[-1]
            return peq, self.supply.subs(self.p, peq)
        return None, None
开发者ID:juanre,项目名称:econopy,代码行数:38,代码来源:market.py



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


鲜花

握手

雷人

路过

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

请发表评论

全部评论

专题导读
上一篇:
Python sympy.polar_lift函数代码示例发布时间:2022-05-27
下一篇:
Python sympy.periodic_argument函数代码示例发布时间: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