La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

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

Présentations similaires


Présentation au sujet: "Problèmes aux limites Généralités"— Transcription de la présentation:

1 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 par différences finies ou, 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. \left\{\begin{matrix} y''=f(t,y,y') & pour \; t \in[a,\;b ] \\ y(a )=\alpha & y(b )=\beta\end{matrix}\right.

2 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|. r(50) \left\{\begin{matrix} y''=f(t,y,y') & pour \; t \in[a,\;b ] \\ y(a )=\alpha & y'(a )=s\end{matrix}\right. CL à t=5: y(5)=40

3 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: >> [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; …pour ajuster le tir résidu résidu

4 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 maintenance z= …* 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 y end function z=sf1(x) ….z=… % Les SF ne peuvent être appelées que de la FP ou d’autres SF end % 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=…

5 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ératif x: la valeur pour laquelle f(x) est minimale Un 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 FP end

6 Problèmes aux limites Exercice: shooting Résoudre, si possible, les problèmes suivants. Les CL devront être remplies à 0.1 prés. \left\{\begin{matrix} y''=-sin(y) & pour \; t \in[2,\;8 ] \\ y(2 )=0.5 & y(8 )=0\end{matrix}\right.

7 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; >> myfun(p, x); >> ezplot(f, [-10,10]) >> xmin=fminsearch(f, 5) >> hold on >> p=1; Pourquoi avoir créé une fonction anonyme f à chaque fois ? function y=myfun(p, x) y=-(1-x.^2).*sin(1-p*x); end

8 Problèmes aux limites Exercice: shooting 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. function [tsol, wsol, s]=shooting tspan=[0,10]; alpha=0; beta=4; [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 = [tsol,wsol]=ode45(f,tspan,[alpha;s]);


Télécharger ppt "Problèmes aux limites Généralités"

Présentations similaires


Annonces Google