teaching:progappchim:polynomes-bonus

Polynômes : bonus

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
"""
décomposition d'un polynôme en deux polynômes, respectivement pair et impair,
qui par sommation rendent le polynôme intial
 
 
"""
def polyadd(a,b):
    """
    Addition de deux polynômes de coefficients a et b
    """
    r = a[:]      # on travaille sur une copie de a pour ne pas le modifier
    t = b[:]      # idem pour b	
    g = []        # polynôme somme
    n1 = len(r)   # ordre du premier polynôme
    n2 = len(t)   # ordre du second polynôme
    if n1 > n2:   # premier polynôme de plus haut degré que le second
        for i in range(n1-n2):
            t.append(0)
    elif n1 < n2: # second polynôme de plus haut degré que le premier
         for i in range(n2-n1):
             r.append(0)
    # r et t ont à présent la même longueur
    for i in range(len(r)):
        g.append(r[i] + t[i])
    return g  # on retourne les coefficients additionnés dans la liste g
 
def dpi(a):
    """
    décomposition d'un polynôme en deux polynômes, respectivement pair et impair,
    qui par sommation rendent le polynôme intial
 
 
    """
    p = [] # sortie polynôme pair
    i = [] # sortie polynôme impair
    n = len(a)-1
    for j in range(n+1):
        if j%2 == 0:
            p.append(a[j])
            i.append(0.)
        else:
            i.append(a[j])
            p.append(0.)      
    # autre idée :
    #p = a[0::2] # il faut ajouter des 0 ...
    #i = a[1::2] # il faut ajouter des 0 ...
    return p,i
 
#po = [1., 2., 3., 4., 5., 6., 7., 8., 9.]
po = [1.]
print(po)
p1, p2 = dpi(po)
print(p1)
print(p2)
a = polyadd(p1, p2)
print(a)
Ce site web utilise des cookies. En utilisant le site Web, vous acceptez le stockage de cookies sur votre ordinateur. Vous reconnaissez également que vous avez lu et compris notre politique de confidentialité. Si vous n'êtes pas d'accord, quittez le site.En savoir plus
  • teaching/progappchim/polynomes-bonus.txt
  • Dernière modification: 2022/03/01 14:36
  • de villersd