Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download

Jupyter notebook enAttente.ipynb

45 views
Kernel: SageMath 7.3

La notion de fonction symbolique

# La notion de fonction symbolique g=function("g") f(x)=g(2*x) diff(f(x))

Polynômes de Bernstein et de Riesenfeld

# Bernstein # \newcommand{\Bold}[1]{\mathbf{#1}}t^{i} {\left(-t + 1\right)}^{-i + n} {n \choose i} var("n i t") B(i,n,t)=binomial(n, i)*t^i*(1-t)^(n-i) show(B(i,n,t))
for n in srange(10): print "n =", n for i in range(n+1): print n, i, B(i,n,t).expand() print '-----'
# Polynôme de Riesenfeld var("i j n t") riesenfeld(i, n, t)=(n+1)*sum((-1)^j*(t+n-i-j)^n/(factorial(j)*factorial(n-j+1)),j,0,n-i) r=riesenfeld(4, 5) print r print r.expand_sum()

La méthode expand_sum

Elle sert à forcer l'évaluation dans certaines sommes :

s(j, n)=sum((i+j)^n, i, j, 2*j) v=s(5, 2) print v print v.expand_sum()

Identité k=0n(kn)2=(2nn)\sum_{k=0}^n {k \choose n}^2 = {2n \choose n}

var("n k") d(n)=sum(binomial(n,k)^2, k, 0,n)-binomial(2*n, n) for n in srange(10): print d(n)
var("n k") bool(sum(binomial(n,k)^2, k, 0,n)==binomial(2*n, n))
var("h P0") P(h, P0)=(6400/(6400+h))^2*P0
P0=70 plot(P(h, P0), (0,40000), ymin=-1)+plot(P0/2, (0,10000), ymin=-1, color='red')

Une fonction de poids

s=solve(P(h,P0)==P0/2, h) print s
print RR(s[0].rhs()) print RR(s[1].rhs())
s=solve(P(h,P0)==2.5, h) print s
print RR(s[0].rhs()) print RR(s[1].rhs())

Distance de freinage

var('v') d(v)=v^2/150+v/5 print RR(d(80))
plot(d(v), (0,200))
s=solve(d(v)<=50, v) print s
RR(s[0][1].rhs())

Optimiser son temps

t(x)=sqrt(9+x^2)/4+(14-x)/5 plot(t(x), (0,14))

Des formules pour en trouver d'autres

f(x)=cos(x-pi)-sin(-pi-x)+cos(pi+x)-sin(-x) f(x).simplify_full()
f(x)=(cos(x)+sin(x))^2-(cos(x)-sin(x))^2 f(x).simplify_full()
a=cos(pi/9)*cos(2*pi/9)*cos(4*pi/9) a.canonicalize_radical()
import sympy a=cos(pi/9)*cos(2*pi/9)*cos(4*pi/9) sympy.simplify(a)
a=8*sin(x)*cos(x)*cos(2*x)*cos(4*x) sympy.simplify(a)
a=cos(x)+cos(x+2*pi/3)+cos(x+4*pi/3) a.simplify_trig()
a=cos(x)^4+sin(x)^4+1/2*sin(2*x)^2-1 a.simplify_trig()
# Somme de courbes sum([plot(x^2), plot(x^3)])

Les fameuses équations trigonométriques

solve(sin(2*x)==-sqrt(3)/2, x)
plot([sin(2*x),-sqrt(3)/2], (x, -2*pi, 2*pi))+point((-pi/6, -sqrt(3)/2), color='red')
solve(cos(x)^2==sin(pi/7)^2, x)
def graphic_solve(f, g, A=5): (plot(f(x), (x, -A, A))+plot(g(x), (x, -A, A), color='red')).show()
f(x)=cos(x)^2 g(x)=sin(pi/7)^2 graphic_solve(f, g)
(Output Hidden)

Etude d'une équation trigonométrique

On pose f(x)=cos(3xπ4)f(x)= \cos(3x-\frac \pi 4).

  1. Tracer la graphe C\mathcal{C} de ff.

  2. Montrer que p=2π3p=\frac{2\pi}3 est une période de ff.

2)a) Déterminer un point qq tel que ff atteigne son maximum en qq (on recherchera avec la fonction solve une racine de la dérivée de ff).

b) Montrer que la droite d'équation x=qx=q est axe de symétrie de la courbe y=f(x)y=f(x).

  1. Soit l'équation (E):cos(3xπ4)=12(E):\quad \cos\left(3x-\frac \pi 4\right)=-\frac{1}2

a) Trouver une solution de l'équation en utilisant la fonction solve.

b) En utilisant l'axe de symétrie de C\mathcal{C}, trouver une autre solution de (E)(E).

c) Faire apparaître avec des points de taille 25 tous les solutions x[2π,2π]x\in[-2\pi, 2\pi] de l'équation (E)(E).

f(x)=cos(3*x-pi/4) plot(f(x), (-2*pi, 2*pi))
(Output Hidden)
p=2*pi/3 print (f(x+p)-f(x)).simplify_trig()
(Output Hidden)
s=solve(diff(f(x),x), x) print s
(Output Hidden)
q=s[0].rhs() q
(Output Hidden)
(f(q+x)-f(q-x)).simplify_trig()
(Output Hidden)
s=solve(f(x)==-1/2,x)
r=s[0].rhs() r
(Output Hidden)
s=solve((x+r)/2==q,x)
rr=s[0].rhs() rr, r+p
(Output Hidden)
A=10 B=2*pi Z=[r+k*p for k in range(-A,A) if -2*pi<= r+k*p<= 2*pi]+[rr+k*p for k in range(-A,A) if -2*pi<= rr+k*p<= 2*pi] P=points([(z, f(z)) for z in Z], size=30, color='red') pf=plot(f(x), (-B, B)) pg=plot(-1/2, (-B, B), color='red') (pf+pg+P).show()
(Output Hidden)

Une fonction en morceaux, continue ou pas

plot(1-x, (-5,1))+plot(x^2+x-2, (1,2))+plot(-4*x-2, (2,5))
point?

Résolution de systèmes linéaires

var("x y z") eq=[x+y-z==1, 2*x-y+z==2, 3*x+2*y-3*z==2] solve(eq, x, y, z)
(Output Hidden)
var("x y z") eq=[y-3*z==-1, 1*x+0*y+z==-2, 2*x-2*y+5*z==-5] solve(eq, x, y, z)
(Output Hidden)
var("x1 x2 x3 x4") eq=[1*x1+2*x2+-1*x3+1*x4==6,2*x1+0*x2+1*x3+-2*x4==-3, 1*x1+-1*x2+-1*x3+4*x4==3, -1*x1+3*x2+2*x3+-2*x4==2] solve(eq, x1, x2, x3, x4)
(Output Hidden)
var("x y z t") eq=[z+t==1, z+y==2,x+y==3] solve(eq, x, y, z, t)
(Output Hidden)

Système 2x2 avec un paramètre

Résoudre et discuter des solutions en fonction du paramètre réel mm le système linéaire : (S):{mx+y=1x+my=1(S):\quad \begin{cases} mx+y&=&1\\ x+my&=&1 % \end{cases}

var("x y m") eq(m)=[m*x+y==1, x+m*y==1] print eq(m) solve(list(eq(m)), x, y)
(Output Hidden)
solve(list(eq(-1)), x, y)
(Output Hidden)

Système 3x3 avec trois paramètres

Soit le système (S):{x+2yz=a2x2y+3z=bx+y2z=c(S):\quad \begin{cases} x+2y-z&=&a\\ -2x-2y+3z&=&b\\ % % x+y-2z&=&c\end{cases} aa, bb et cc désignent des paramètres réels. On cherche des conditions nécessaires et suffisantes portant sur aa, bb et cc pour que (S)(S) admette une solution.

  1. Essayez de résoudre le système avec solve.

  2. Essayer de résoudre (S)(S) comme un système ayant 6 inconnues.

3)a) Résoudre le système, d'inconnues xx et yy, formé des deux premières équations.

b) Remplacer les solutions obtenues dans la 3ème équation.

c) Résoudre le système.

var("x y z a b c") print solve([1*x+2*y+-1*z==a,-2*x+-3*y+3*z==b,1*x+1*y+-2*z==c], x, y, z) print solve([1*x+2*y+-1*z==a,-2*x+-3*y+3*z==b,1*x+1*y+-2*z==c], a, b,c, x, y, z)
(Output Hidden)
sol=solve([1*x+2*y+-1*z==a,-2*x+-3*y+3*z==b], x, y) print sol
(Output Hidden)
# extraction de x et de y xy=[expr.rhs() for expr in sol[0]] print xy
(Output Hidden)
eq3=1*x+1*y+-2*z eq3.subs(x=xy[0], y=xy[1])
(Output Hidden)

Système 3x3 avec un paramètre

Résoudre et discuter des solutions en fonction du paramètre réel mm le système linéaire : (S):{mx+y+z=mx+y+mz=mx+my+z=m(S):\quad \begin{cases} mx+y+z&=&m\\ x+y+mz&=&m\\ % % x+my+z&=&m\end{cases}

var("x y z m") eqns(m)=[m*x+1*y+1*z==m,1*x+1*y+m*z==m,1*x+m*y+1*z==m] print solve(list(eqns(m)), x, y, z)
(Output Hidden)
print solve(list(eqns(-2)), x, y, z)
(Output Hidden)
var("x y z m") eqns(m)=[m*x+1*y+1*z==m,1*x+1*y+m*z==m,1*x+m*y+1*z==m] eq=eqns(-2) eq
(Output Hidden)
s=solve(list(eq[:2]), x, y) print s
(Output Hidden)
xy=[egal.rhs() for egal in s[0]] print xy
(Output Hidden)
eq3=eq[-1]
eq3
(Output Hidden)
eq3.lhs().subs(x=xy[0], y=xy[1])
(Output Hidden)

Système 4x3 avec un paramètre

Résoudre et discuter des solutions en fonction du paramètre réel aa le système linéaire : (S):{3x+4y+z+2t=36x+8y+2z+5t=79x+12y+3z+10t=a(S):\quad \begin{cases} 3x+4y+z+2t&=&3\\ 6x+8y+2z+5t&=&7\\ 9x+12y+3z+10t&=&a \end{cases}

On résoudra le système formé des deux premières équations.

var("x y z t a") eqns(a)=[3*x+4*y+1*z+2*t==3,6*x+8*y+2*z+5*t==7,9*x+12*y+3*z+10*t==a] eqns(a) sol=solve(list(eqns[:2]), x, y, z, t) print sol
(Output Hidden)
# récupération des deux variables libres s=set() for tt in [expr.args() for expr in sol[0]]: s|=set(tt) param=list(s-set([x, y, z,t])) print param
(Output Hidden)
# réécriture des solutions en fonction de variables déclarées u et v var("u v") xyzt=[expr.subs({param[0]:u, param[1]:v}) for expr in sol[0]] print xyzt
(Output Hidden)
# remplacement dans la dernière équation eqns(a)[2].subs(x=xyzt[0].rhs(),y=xyzt[1].rhs(),z=xyzt[2].rhs(),t=xyzt[3].rhs())
(Output Hidden)
# cas particulier a=13 sol=solve([3*x+4*y+1*z+2*t==3,6*x+8*y+2*z+5*t==7,9*x+12*y+3*z+10*t==13], x, y, z, t) print sol
(Output Hidden)

Parabole passant par trois points

A=(-2,3) B=(-5, 60) C=(3,28) var("a b c") P(x)=a*x^2+b*x+c sol=solve([P(u)==v for (u,v) in [A, B, C]], a, b, c) print sol
(Output Hidden)
abc=[expr.rhs() for expr in sol[0]] a, b, c = abc print a, b, c, P(1)
(Output Hidden)
P(x)=P(x).subs(a=a, b=b, c=c)
p=plot(P(x), (-6,4)) nodes=point([A, B, C], color="red", size=25) show(p+nodes)
(Output Hidden)

Les fonctions hyperboliques

(cosh(x)^2-sinh(x)^2).simplify_full()
(Output Hidden)
diff(tanh(x),x)
(Output Hidden)
A=5 B=5 pcos=plot(cosh, (-A,A)) psin=plot(sinh, (-A,A), color='red') ptan=plot(tanh, (-A,A), color='orange') pasympt=plot([-1,1], (-A,A), color='green') show(pcos+psin+ptan+pasympt, ymax=B, ymin=-B)
(Output Hidden)
(sinh(x)-tanh(x)).factor()
(Output Hidden)