Mathlab

Réponses à toutes vos questions après le Bac (Fac, Prépa, etc.)
george154
Membre Naturel
Messages: 57
Enregistré le: 24 Nov 2020, 12:35

Mathlab

par george154 » 03 Jan 2021, 17:08

Bonsoir,
Pourriez vous m'expliquer ce que je dois faire ici avec mathlab. Les cours étant toujours en visio, c'est compliqué pour apprendre.
Merci pour votre aide.

Énoncé de l'ex 1 :
Concrètement, on souhaite écrire une fonction :
s = interpol(f,m,n,z)
où f est une fonction, m et n sont des entiers et z un vecteur contenant les points en lesquels on souhaite évaluer
la fonction polynomiale par morceaux interpolant f.
On introduit a = min(z) et b = max(z) et on se place sur l’intervalle [a, b]. On découpe [a, b] en m sous-
intervalles de même longueur et sur chacun de ces sous-intervalles on fait une interpolation polynomiale avec n
points équidistants en utilisant la fonction eval_L(x,y,z) de l’exercice 2 (attention, il faut choisir les extrémités
des intervalles dans les points d’interpolation. Que se passe-t-il sinon ?).
Choisissez une fonction f, tracer son graphe ainsi que son polynôme d’interpolation par morceaux. Discuter de la
qualité de l’interpolation composée en faisant varier les valeurs des entiers m et n. Observe-t-on des phénomènes
de Runge ?

Merci pour votre aide.



issoram
Membre Relatif
Messages: 100
Enregistré le: 01 Déc 2020, 18:18

Re: Mathlab

par issoram » 03 Jan 2021, 18:26

Bonsoir,

Qu'est-ce que vous ne comprenez pas? L'énoncé? Le code Matlab à produire?
Dans un premier temps avez vous bien compris ce que faisait
Code: Tout sélectionner
 eval_L(x,y,z)
?

En gros, on veut vous faire interpoler la fonction grâce à une interpolation par morceaux.

george154
Membre Naturel
Messages: 57
Enregistré le: 24 Nov 2020, 12:35

Re: Mathlab

par george154 » 03 Jan 2021, 18:32

A vrai dire je ne comprends rien du tout car j'ai beaucoup de mal avec les cours à distance. J'aurais bien voulu avoir une explication détaillée pour je puisse bien comprendre. C'est un des exercices pour s'entrainer.

issoram
Membre Relatif
Messages: 100
Enregistré le: 01 Déc 2020, 18:18

Re: Mathlab

par issoram » 03 Jan 2021, 18:37

Dans ce cas, est ce que vous pourriez poster l'énoncé de l'exercice 2 qu'on vous demande d'utiliser?

george154
Membre Naturel
Messages: 57
Enregistré le: 24 Nov 2020, 12:35

Re: Mathlab

par george154 » 03 Jan 2021, 18:41

Vous voulez l'exercice 2 ?

issoram
Membre Relatif
Messages: 100
Enregistré le: 01 Déc 2020, 18:18

Re: Mathlab

par issoram » 03 Jan 2021, 18:49

On vous demande d'utiliser une fonction Matlab de l'exercice 2. Si vous n'avez rien compris, il me semble préférable de commencer par là...
Au moins, il faudrait le code Matlab de la fonction qu'on vous propose d'utiliser.
Je vous conseille aussi de relire votre cours...
Un préalable pour savoir de quoi on vous parle: https://fr.wikipedia.org/wiki/Interpola ... C3%A9rique

george154
Membre Naturel
Messages: 57
Enregistré le: 24 Nov 2020, 12:35

Re: Mathlab

par george154 » 03 Jan 2021, 18:56

On rappelle que le polynôme d’interpolation de Lagrange s’écrit dans la base de Newton :
Lf(x) = A0 + A1(x − x1) + A2(x − x1)(x − x2) + . . . + An−1(x − x1)(x − x2). . .(x − xn−1),
avec A0 = f[x1] et Ak = f[x1, . . . , xk+1] pour k = 0, . . . , n. On souhaite écrire une fonction :
s = eval_L(x,y,z)
où x est un vecteur ligne de longueur n contenant les points d’interpolation, y un vecteur (ligne) de même
longueur contenant les valeurs de f aux points d’interpolation et z un vecteur (ligne) de longueur quelconque
contenant les points en lesquels on veut évaluer le polynôme Lf. La variable de sortie s (vecteur de même
longueur que z) contient les valeurs de Lf aux points donnés par le vecteur z.
On note N = length(z) (la longueur de z) et on remplit s avec des zéros s = zeros(N,1) (vecteur colonne).
On pose ensuite :
X = repmat(x,N,1);
Z = repmat(z.’,1,n);
M = Z-X;
Quelle est la taille de la matrice M ? Que contient-elle ?
On peut ensuite appeler la fonction diff_div(x,y) et évaluer Lf aux points d’interpolation en utilisant l’al-
gorithme de Horner qui consiste à “factoriser” le polynôme Lf(x) sous la forme :
Lf(x) = A0 + (x − x1)[A1 + (x − x2)[A2 + (x − x3)[A3 + (x − x4)[. . .(x − xn−2)[An−2 + An−1(x − xn−1)]]]].
L’algorithme s’écrit ainsi :
s ← An−1(x − xn−1)
Puis, pour k variant de 2 à n − 1 :
s ← (s + An−k)(x − xn−k)
Et enfin : s ← s + A0.

issoram
Membre Relatif
Messages: 100
Enregistré le: 01 Déc 2020, 18:18

Re: Mathlab

par issoram » 03 Jan 2021, 19:06

Et pour cette question, vous avez une correction? Vous avez compris?

george154
Membre Naturel
Messages: 57
Enregistré le: 24 Nov 2020, 12:35

Re: Mathlab

par george154 » 03 Jan 2021, 19:51

Non mais le prof a dit qu'il ferait une correction après demain

issoram
Membre Relatif
Messages: 100
Enregistré le: 01 Déc 2020, 18:18

Re: Mathlab

par issoram » 03 Jan 2021, 21:05

Bon ben déjà, si le cours vous semble obscur vous pouvez commencer par là pour dégrossir:

- https://www.youtube.com/watch?v=kY_xA4qw5l8 vidéos 26 et 27 (un peu de théorie pour fixer les idées)
- https://www.youtube.com/watch?v=-uz_fJ6WCf0 (méthode d'interpolation de Lagrange sur Matlab)

Pour l'exercice 2:
- théorie: https://fr.wikipedia.org/wiki/Interpolation_newtonienne
-pratique: https://www.youtube.com/watch?v=yoYhuDrjvo4 (méthode d'interpolation de Newton sur Matlab)

Pour en revenir à votre problème, on veut (pour tenter d'améliorer l'interpolation) interpoler la fonction par morceaux (au lieu de l'interpoler directement sur l'intervalle [a;b]). Sur chaque morceaux on interpole la fonction grâce aux polynômes de Lagrange (sous leur forme de Newton). Ce n'est pas la partie la plus compliquée, car on répète juste l'opération d'interpolation sur des sous-intervalles, en s'assurant de la continuité à leurs bornes. Mais il est fondamental que vous ayez compris l'interpolation de Lagrange avant.

Bon courage.

Retourner vers ✯✎ Supérieur

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 61 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite