8
Problèmes aux limites Généralités Les problèmes aux limites sont des problèmes différentiels sur des parties de R d pour lesquelles les valeurs de la fonction inconnue sont fixés sur les limites (les bords) de ces parties. Ces valeurs sont appelées valeurs aux limites. Ce chapitre est restreint aux problèmes de dimension d=1 * . Il s’agit donc d’EDO mais ce ne sont pas des problèmes de Cauchy. Un exemple est l’équation suivante (y est la fonction inconnue, f est donnée): La résolution de tels problèmes se réalise par approximation i) par différences finies ou, ii)par éléments finis (méthode étudiée au Semestre 6). Dans ce chapitre nous verrons la méthode par différences finies dite du « shooting ».

Problèmes aux limites Généralités Les problèmes aux limites sont des problèmes différentiels sur des parties de R d pour lesquelles les valeurs de la fonction

Embed Size (px)

Citation preview

Page 1: Problèmes aux limites Généralités Les problèmes aux limites sont des problèmes différentiels sur des parties de R d pour lesquelles les valeurs de la fonction

Problèmes aux limites Généralités

Les problèmes aux limites sont des problèmes différentiels sur des parties de Rd pour lesquelles les valeurs de la fonction inconnue sont fixés sur les limites (les bords) de ces parties. Ces valeurs sont appelées valeurs aux limites. Ce chapitre est restreint aux problèmes de dimension d=1*. Il s’agit donc d’EDO mais ce ne sont pas des problèmes de Cauchy. Un exemple est l’équation suivante (y est la fonction inconnue, f est donnée):

La résolution de tels problèmes se réalise par approximation i) par différences finies ou,ii) par éléments finis (méthode étudiée au Semestre 6).

Dans ce chapitre nous verrons la méthode par différences finies dite du « shooting ».

*Les problèmes avec d>1 sont appelés équations aux dérivées partielles.

Page 2: Problèmes aux limites Généralités Les problèmes aux limites sont des problèmes différentiels sur des parties de R d pour lesquelles les valeurs de la fonction

Problèmes aux limites Méthode du « shooting »

La méthode du shooting cherche à résoudre le problème comme un problème à conditions initiales en faisant varier ces dernières jusqu’à ce que les conditions aux limites (CL) soient remplies. Exemple:

Soit us(t) la solution numérique trouvée en utilisant la condition initiale s. On cherche la valeur s qui minimise la « distance » appelée résidu: r(s) = |us(5)-40|.

CL à t=5: y(5)=40

r(50)

Page 3: Problèmes aux limites Généralités Les problèmes aux limites sont des problèmes différentiels sur des parties de R d pour lesquelles les valeurs de la fonction

Problèmes aux limites Méthode du « shooting »: exemple

On pose w1=y et w2=y’ qui donne le système: w’1=w2; w’2=-w1 pour lequel il faut 2 conditions initiales : w1(0)=0.5 et w2(0)=s. Cette dernière devra être ajustée pour satisfaire le problème aux limites.On programme:

>> f=@(t,w) [w(2); -w(1)];>> s=0;>> [tsol, wsol]=ode45(f, [0, 10], [0.5, s]);>> plot(tsol, wsol(:, 1))

On essaie s=-1…

>> s=-1;>> [tsol, wsol]=ode45(f, [0, 10], [0.5, s]);>> plot(tsol, wsol(:, 1))

…pour ajuster le tir

0 2 4 6 8 10-0.5

0

0.5

0 2 4 6 8 10-1.5

-1

-0.5

0

0.5

1

1.5

résidu

résidu

Page 4: Problèmes aux limites Généralités Les problèmes aux limites sont des problèmes différentiels sur des parties de R d pour lesquelles les valeurs de la fonction

Problèmes aux limites Types de fonctions, portée des variables

Afin d’automatiser la recherche de la condition initiale « optimale » il faut utiliser des fonctions « d’optimisation » fournie par Matlab. On utilisera fminsearch. Définissons tout d’abord quelques propriétés des fonctions et la portée de leurs variables.• fonctions principales:

• fonction principale (FP) et sous-fonctions (SF):

function y=fp(x)…. % - Elle présente en général des commentaires expliquant les détails nécessaire à sa maintenancez= …* x +… % - Elle n’accède qu’aux paramètres d’entrée (ici x) et aux variables prédéfinie dans Matlab …. % telles que pi, inf, eps, …y = … % - Elle peut posséder des variables « locales » (ici z) qui restent inconnues à l’extérieur de la fonction…. % - Elle calcule les paramètres de sortie (ici y)end % - Elle peut faire appel à des fonctions extérieures et leur passer des paramètres

function y=fp(x) % Ces 3 fonctions sont sauvées dans un même fichier « fp.m »…. z=sf1(x) % La FP peut appeler une de ses SF…y=… % La FP peut être appelée de l’extérieur qui pourra récupérer yendfunction z=sf1(x)….z=… % Les SF ne peuvent être appelées que de la FP ou d’autres SFend % Les SF ne connaissent que les variables passées (ici x) et les prédéfinies: pi, inf, …function u=sf2(x) % L’intérêt des SF est de ne sauver qu’un seul fichier qui peut contenir de nombreuse SF….u=…end

Page 5: Problèmes aux limites Généralités Les problèmes aux limites sont des problèmes différentiels sur des parties de R d pour lesquelles les valeurs de la fonction

Problèmes aux limites Fonctions nichées, fminsearch

• fonction principale (FP) et fonctions nichées (FN):

La fonction fminsearch possède 2 entrées et une sortie: x = fminsearch(fun, x0) avec :fun: la poignée de la fonction dont on cherche l’abscisse pour laquelle fun présente un minimum. ATTENTION la fonction dont fun est la poignée ne peut avoir qu’un seul argument d’entrée et un seul de sortie: elle doit donc être de la forme y=f(x).x0: une valeur initiale d’une méthode du type itératifx: la valeur pour laquelle f(x) est minimaleUn troisième paramètre d’entrée peut être utilisé en conjonction avec optimset comme pour fzero, il s’agit des options.

Pour notre méthode de « shooting » il nous faut minimiser le résidu…

function y=fp(x) % cette fonction est sauvée dans un fichier « fp.m »…. z=fn(x)….a=…

function z=fn(x) % - Cette fonction est « nichée » dans fp. Elle accède aux variables qu’on lui….z=…+a +u… % passe (ici x) ET aux variables locales de fp (ici a, z, u, …)end % -L’intérêt des FN est justement qu’elle accède à des variables sans qu’il soit

….u=… % nécessaire de les lui passer en paramètres d’entrée…y=… % - La FN ne peut pas être appelée de l’extérieur de la FPend

Page 6: Problèmes aux limites Généralités Les problèmes aux limites sont des problèmes différentiels sur des parties de R d pour lesquelles les valeurs de la fonction

Problèmes aux limites Exercice: shooting

Résoudre, si possible, les problèmes suivants. Les CL devront être remplies à 0.1 prés.

Page 7: Problèmes aux limites Généralités Les problèmes aux limites sont des problèmes différentiels sur des parties de R d pour lesquelles les valeurs de la fonction

Problèmes aux limites Exercice: fminsearch

1/ Représenter y= (1-x.^2).*sin(1-x) dans le domaine [-10, 10]. Chercher les abscisses des minimas de y en utilisant fminsearch avec différentes valeurs initiales. fminsearch trouve t’elle l’abscisse du minimum absolu dans tous les cas ?

2/ Soit la fonction paramétrée « myfun »:

Que font les lignes de code suivantes:

>> p=0;>> f=@(x) myfun(p, x);>> ezplot(f, [-10,10])>> xmin=fminsearch(f, 5)>> hold on>> p=1;>> f=@(x) myfun(p, x);>> ezplot(f, [-10,10])>> xmin=fminsearch(f, 5)

Pourquoi avoir créé une fonction anonyme f à chaque fois ?

function y=myfun(p, x)y=-(1-x.^2).*sin(1-p*x);end

Page 8: Problèmes aux limites Généralités Les problèmes aux limites sont des problèmes différentiels sur des parties de R d pour lesquelles les valeurs de la fonction

function [tsol, wsol, s]=shooting tspan=[0,10];alpha=0;beta=4; f=@(t,w) [w(2); sqrt(t)-0.1*w(1).^2-0.2*w(2)]; function residu=distance(ci) [t, w]=ode45(f, tspan, [alpha;ci]); residu=abs(beta-w(end,1)); end s = fminsearch(@distance,-1.5);[tsol,wsol]=ode45(f,tspan,[alpha;s]);end

Problèmes aux limites

Les lignes de code ci-dessous résolvent un problème aux limites par la méthode du shooting. Commenter ce programme. Proposer une amélioration pour par exemple résoudre les problèmes de la diapo précédente.

Exercice: shooting