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
[Matlab] Spline et Tangente
-
- Modérateur honoraire
- Messages : 1803
- Inscription : samedi 28 mai 2005, 14:48
- Localisation : Orsay, France
Moi j'utiliserai un code de ce style :
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 ?
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...
ps: j'ai pas bien compris : "récupérer un point de la dérivée", le point tangent avec la courbe ?
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
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
-
- Modérateur honoraire
- Messages : 1803
- Inscription : samedi 28 mai 2005, 14:48
- Localisation : Orsay, France
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...
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...
nirosis
Lisez le tutoriel sur LaTeX
Lisez le tutoriel sur LaTeX