# Utilisation de ce document: # enregistrer le document sur votre ordinateur. # exécuter (chemin désigne l'endroit où vous avez enregistré le document) # source("chemin/fonctions_R_f.r") # exemple: source("c:/dat/maths/fonctions_R_f.r") # si vous avez enregistré le document fonctions_R_f.r à l'endroit "c:/dat/maths/") #ensuite on peut utiliser les fonctions décrites ci-dessous: ############################################################### ############################################################### # elimine les zéros komplexes du vector des zéros (résultat de polyroot) # et ordonne les zéros réels qui restent. ReOrder=function(x,tole=1e-6){ solr=Re(x)[abs(Im(x)) < tole] solr[order(solr)] } # exemple: # sol=polyroot(c(0,1,4,-1,0,5)) # ReOrder(sol) ############################################################### ############################################################### # Ordonne les nombres de deux vecteurs OrderC=function(x,y){a=c(x,y) a[order(a)]} #exemple: OrderC(c(1,5,-2,3),c(8,9,12,-8)) ############################################################### ############################################################### #Fonction pour transformer un vecteur de coefficients - ordre croissant - en #une fonction (polynôme correspondant) pour calculer les valeurs de #fonction du polynôme. Peut être utilisé quand on a calculé #les coefficients à l'aide d'un systèmes d'équations. kp= function (v) { n = length(v) b = rep("*x^", n) c = rep(0:(n - 1), 1) d = paste(v[1], b[1], c[1], sep = "") for (i in 2:n) d = paste(d, paste(v[i], b[i], c[i], sep = ""), sep = "+") h = as.function(alist(x = , eval(parse(text = d)))) h } # exemple: les points: (0,7), (3,8), (4,9), (6, 16) # On calcule un polynome du degré 3: # x=c(0,3,4,6); y=c(7,8,9,16); A=cbind(x^0,x,x^2,x^3); sol=solve(A,y);f=kp(sol); # utilisation du résultat: f(5); plot(f,xlim=c(0,1))