[Matlab] Spline et Tangente

Tout ce qui concerne notamment les outils de calcul numérique, de calcul formel ou de géométrie.
[participation réservée aux membres inscrits]
Règles du forum
Merci de soigner la rédaction de vos messages et de consulter ce sujet avant de poster. Pensez également à utiliser la fonction recherche du forum.
Arthur

[Matlab] Spline et Tangente

Message non lu par Arthur »

Bonjour a ous,

C'est mon premier message ici, j'espere que je serai clair...

Voila mon probleme, je travaille sur des splines, et j'aimerais recuperer la tangente en un point de cette spline....
Je pensais que je pourrais faire ca en utilisant la fonction ppval, c'est a dire en derivant les coefficients de chaque section de ma spline et ensuite en utilisant ppval pour recuperer la valeur de la derivée en un point donné.
Seulement voila, en utilisant la fonction ppval, je n'arrive pas a recuperer de valeurs cohérentes, c'est a dire que je rentre en parametres de ppval
- ma spline;
- le point de la section de ma spline (elle comporte 15 breaks, et du coup je me repere dessus en tapant un reel compris entre 1 et 15).
Donc finalement je pense que le probleme peut venir du fait que j'utilise un nombre entre 1 et 15 alors que je pourrais utiliser les valeurs de x en abscisse pour recuperer la valeur de l'ordonnée...
Enfin voila mon probleme, les coefficients de la derivée sont bons, c'est juste pour ce qui est de recuperer les coordonnées d'un point de la dérivée que j'ai un probleme......
Je peux poster des plots de mon travail si ce message n'est pas clair.
Merci par avance pour votre aide.

Arthur
nirosis
Administrateur
Administrateur
Messages : 1803
Inscription : samedi 28 mai 2005, 14:48
Localisation : Orsay, France

Message non lu par nirosis »

Moi j'utiliserai un code de ce style :

Code : Tout sélectionner

 

x = a:t:b; 
y = TonSignal; 

pp = spline(x,y); % interpolation par spline, donne une structure exploitable par ppval

MaFonction = @(t) ppval(pp,t); % ppval donne la valeur du spline au temps t, t quelconque. On a rendu continue la fonction en fait...

Après MaFonction(t) renvoie la valeur de la courbe en t... Tu peux dériver classiquement en discrétisant aussi précisément que tu veux

ps: j'ai pas bien compris : "récupérer un point de la dérivée", le point tangent avec la courbe ?
Arthur

Message non lu par Arthur »

Merci pour votre aide, j'ai reussi a faire ce que je voulais....

Maintenant j'ai un autre probleme, qui est toujours lié au splines et a l'utilisation de la fonction ppval :
La fonction ppval permet, pour une valeur d'abscisse donnée, de récuperer l'ordonnée correspondante.
J'aimerais savoir si il y a un moyen de récupérer toutes les valeurs d'abscisses pour une ordonnée donnée.... C'est a dire que j'ai une spline qui trace l'evolution d'un angle en fonction de x, et j'aimerais trouver pour quels x, on a un angle de pi/2....
Est ce que ppval permet de faire quelque chose comme ca ?

Ou bien est ce qu'il y a un moyen de récuperer un spline qui ait les angle en abscisse et les x en ordonnée ? Le probleme etant qu'en faisant spline(y,x), a la place de spline(x,y), on ne recupere pas du tout la meme allure........ Il faudrait arriver a inverser les fonctions caracterisant la spline afin de recuperer les coefficients de la symetrique par rapport a la droite y=x..... Je dois plus etre tres clair la, mais j'espere que vous aurez l'idee....
Merci par avance

Arthur
nirosis
Administrateur
Administrateur
Messages : 1803
Inscription : samedi 28 mai 2005, 14:48
Localisation : Orsay, France

Message non lu par nirosis »

Pourquoi n'utiliserais-tu pas une fonction matlab pour résoudre les équations du type f(x)=0 ?

Il me semble que c'est fsolve non ? et au lieu de f tu mets TaFonction-pi/2 .
Je ferais ça à ta place.

Prendre le spline inverse est une bonne idée et c'est normal que tu n'es pas du tout la même allure. Mais c'est risqué car ce n'est peut-être plus une fonction du coup... alors je ne sais pas ce qui se passe, par exemple si ton spline (x,y) passe plusieurs fois par pi/2, comme ce n'est plus bijectif, il risque d'y avoir des problèmes...