Kernel: Python 3 (Anaconda)
In [1]:
from sympy.abc import x, y, f, j
In [2]:
import sympy as sm sm.init_printing()
In [3]:
sm.var('c1 c2 u0 u1 u2 u3 p0 p1 p2 p3 p11 p22 p33') # This is the easiest way to define c as a standard symbol
(c1,c2,u0,u1,u2,u3,p0,p1,p2,p3,p11,p22,p33)
In [4]:
p0 = 1 p1 = 2 p2 = 0.5 p3 = -1 p11 = 0.1 p22 = 0.2 p33 = -0.05
In [5]:
x = p0*u0 + p1*u1 +p2*u2 +p3*u3 + p1*u1**2 +p2*u2**2 +p3*u3**2 x
u0+2u12+2u1+0.5u22+0.5u2−u32−u3
In [6]:
c1 = 1.2 c2 = -0.8 y = c1*x + c2*f y
−0.8f+1.2u0+2.4u12+2.4u1+0.6u22+0.6u2−1.2u32−1.2u3
In [7]:
members = [u0, u1, u2, u3] u = sm.FiniteSet(*members) u_iterable = iter(u)
In [8]:
u = sm.IndexedBase('u') p = sm.IndexedBase('p') sum1 = sm.Sum(p[j]*u[j], (j, 0, 3)) sum2 = sm.Sum(p[j]*u[j]**2, (j, 1, 3)) x = sum1 + sum2 x
j=0∑3pjuj+j=1∑3pjuj2
In [9]:
#p[0]=1 x.doit().evalf()
p0u0+p1u12+p1u1+p2u22+p2u2+p3u32+p3u3
In [10]:
u0 = 1
In [11]:
interv = [] interv.append( sm.Interval(-5, 10) ) interv.append( sm.Interval(-7, 2) ) interv.append( sm.Interval(2, 13) ) interv
[[−5,10],[−7,2],[2,13]]
In [12]:
lboundaries = [] rboundaries = [] for i in range(3): u1min, u1max = interv[i].boundary lboundaries.append(u1min) rboundaries.append(u1max)
In [13]:
cons1 = interv[0].contains(u1); cons1
u1≥−5∧u1≤10
In [14]:
cons2 = interv[1].contains(u2); cons2
u2≥−7∧u2≤2
In [15]:
cons3 = interv[2].contains(u3); cons3
u3≥2∧u3≤13
In [16]:
f = sm.Function('f') sm.Sum(f(j), (j, 0, 3)).doit()
f(0)+f(1)+f(2)+f(3)
In [17]:
M = sm.Matrix([[1,10,2,13], [1,-5,2,2], [1,10,-7,2], [1,-5,-7,13]]); M
111110−510−522−7−7132213
In [18]:
V = [] for i in range(4): for j in range(4): print(i,j)#if s: V[i,j] = lboundaries[i] else: rboundaries[i]
0 0
0 1
0 2
0 3
1 0
1 1
1 2
1 3
2 0
2 1
2 2
2 3
3 0
3 1
3 2
3 3
In [19]:
[ [lboundaries[i], rboundaries[i]] for i in range(3) ]
[[−5,10],[−7,2],[2,13]]
In [28]:
us = [lboundaries, rboundaries]; aa=[[row[i] for row in us] for i in range(3)] aa
[[−5,10],[−7,2],[2,13]]
In [39]:
VN = [[row[1-(n+i)%2] for i in range(4)] for n, row in enumerate(aa) ] VN.insert(0, [1 for i in range(4)]) VN=[[row[i] for row in VN] for i in range(4)] V1 = sm.Matrix(VN); V1
111110−510−5−72−72132132
In [0]:
V = [[x,y] for x in lboundaries for y in rboundaries if x == y] V1 = sm.Matrix(V); V1
In [0]:
[num for elem in us for num in elem]
In [0]:
u10 = (u1min + u1max)/2 u10.expand(basic=True)
In [0]:
sum( interv1.boundary ) / 2
In [0]:
from sympy.stats import P, E, variance, Normal, density, sample f = Normal('f', 0, 1) sample(f)
In [0]:
variance(f)
In [0]:
density(f)(j)
In [0]:
from sympy.plotting import plot pl1 = plot(density(f)(j), (j, -5, 5)) pl1
Exam
In [0]:
y1=[4.5, 3, 2, 0.5] y2=[5.5, 5.5, 2, 1.5]
In [0]:
x0=[1, 1, 1, 1] x1=[-1, 1, -1, 1] x2=[-1, -1, 1, 1] xs = [x0, x1, x2]
In [0]:
ysr=[] for i in range(0,4): ysr.append( (y1[i]+y2[i])/2) ysr
In [0]:
bj=[] bj = [sum( xs[j][i]*ysr[i] for i in range(4) )/4 for j in range(3)] bj