Tableau_type_symbol

Bonjour,

Ma fonction genere_Bik renvoie un tableau qui doit contenir des expressions symboliques (j'utilise sympy). Mais quand je compile le tableau contient seulement des zeros.

Voici mon code :

import sympy as sp
import numpy as np
from matplotlib import pyplot as plt

def w(t,i,j,x):
    if t[i]==t[i+j]:
        return 0
    else:
        return (x-t[i])/(t[i+j]-t[i])
    
    
def inter_vides(t):
    
    ind_vides=[]
    for i in range(len(t)-1):
        if t[i]==t[i+1]:
            ind_vides.append(i) #indices des intervalles vides 
    return ind_vides
        

def genere_Bik(t,K):
    
        
   
    n = len(t)-1
    
    ind_vides=inter_vides(t)

        
        
    c=n-len(ind_vides)
    
    B=np.zeros((n,c))
    
    #initialisation de B avec les Bi0
    
    for i in range(n):
        a=0
        if not(i in ind_vides):
            B[i][a]==1
        a+=1
            
     #generation des Bik       
       
    x = sp.symbols('x') 
    
    for k in range (1,K,1):
        for i in range (n-k):
            B[i]=w(t,i,k,x)*B[i]+w(t,i+1,k,x)*B[i+1]
            
    return B


Pourriez vous m'aider ?
Configuration: Windows / Edge 90.0.818.46

3 réponses

  1. en appelant la fonction j'obtiens un tableau vide alors qu'il est censé contenir des expressions symboliques avec x :
                
    t=[0,1,2,2,3]
    
    
    
    B=genere_Bik(t, 2)
    
    print(B)
    
    1. Contributeur
      examine la ligne 40.
  2. Oula oui merci. Du coup en mettant un egal simple j'ai une erreur liée à la ligne 49 "can't convert expression to float". J'imagine que je dois changer le type de mon tableau mais je ne sais pas lequel et comment...
    1. Contributeur
      je pense que tu as intérêt à laisser tomber numpy, et à utiliser plutôt
      sp.Matrix
      .