Vous êtes sur la page 1sur 5

TRAVAUX PRATIQUES DE MATLAB (TP2)

Noms :dahmani Groupe :A I - Cration de fonction I.1 Crer une fonction f qui retourne sin(x^2)-x+.5 (cf. fin du TP prcdent)

I.2 Crer un script dans le fichier testscript.m contenant juste la ligne x=1. Crer galement une fonction testfonction.m prenant a comme entre et b comme sortie contenant le code suivant : function b=testfonction(a) x=a ; a=5 ; b=x+1 ; Dans le command window taper : x=0 ;b=-5 ; testscript x a=testfonction(x) x a b A partir de cet exemple, expliquer les diffrences entre un script et une fonction. a=2 Un fichier function possde des arguments d'entre et des arguments de sortie. Un fichier script est une suite d'instructions

I.3 Prof Emulator : 1.3.a) Nous avons n tudiants qui sont not sur 3 TP. Gnrer (sur linterface principale) un tableau de n lignes et 3 colonnes de notes alatoires entires comprises entre 0 et 20. (La fonction floor permet de prendre la partie entire) floor(21*rand([n,3]))

1.3.b) Effectuer une fonction qui calcule la moyenne des deux meilleures notes de chaque ligne en utilisant une boucle for function result= moyenne(n) a=floor(21*rand(n,3)) for i=1:n if a(i,1)>= a(i,2) b= a(i,1); if a(i,2)>= a(i,3) c= a(i,2); else c= a(i,3); end else b= a(i,2); if a(i,1)>= a( i,3) c= a(i,1); else c= a(i,3); end result= (b+c)/2 methode de prof (sum(A,2)' -min(A'))/2

1.3.c) Mme question en utilisant cette fois-ci la fonction de trie pour chaque ligne (sans boucle for) R=rand(n,3) a=21*R b=floor(a) Function trie i=sort(b,2) m=i(1:n,2:end) mean(m,2)

I.4 Crer une fonction dichotomie pour rsoudre lquation f(x)=0 (dfinie en I.1) dans lintervalle [1 2]. Le principe de la dichotomie est rappel en annexe.

II - Utilisation de la librairie symbolics II.1 Fonctions de bases La librairie symbolics permet de faire du calcul formel comme sous maple ou mathematica. La plupart dentre vous connait dj lun de ces logiciels, donc nous ne feront quune brve introduction de cette librairie. Taper les commandes suivantes : syms x % x est une variable symbolique f = 3*x^2 - 5*x + 1 % Expression symbolique g = x^2 + 2*x f+g x=5 % x a une valeur numrique f = 3*x^2 - 5*x + 1 syms x f = 3*x^2 - 5*x + 1 ezplot(f, [- 3,2]) subs(f, x, - 2) syms q subs(f, x, q) syms a b c t g = a*t^2 + b*t + c solve(g, t) syms x g = x^2*cos(x)

% Affiche f entre -3 et 2 % Calcul f pour x = -2 % Cre plusieurs variables symbolics % Rsout g(t) = 0 en fonction de a b et c

diff(g, x) diff(g, x,2) diff(x^3-x^2+2, x) syms a diff(x^3 - a*x^2 + 2, x) diff(x^3 - a*x^2 + 2, a) subs( diff(g, x), x , 2.1 ) int(x*sin(x), x) diff(ans, x) int(sin(x^2), x)

% Drive de g par rapport x % 2me Drive de g par rapport x

% Calcul la drive en un point % Intgral % Driv de la sortie de la commande prcdente % fonction de Fresnel % (La primitive nest pas calculable)

Essayer dintgrer sin ( x^5 + x^3 ) double( int(sin(x^5 + x^3), x, 0, pi/2) )

Ecrire une fonction pour rsoudre une quation de type f(x)=0 avec la mthode de newton donne en annexe. La fonction newton prend comme argument dentre la fonction rsoudre et x0. Elle commence par calculer formellement la drive puis applique lalgorithme. Tester cette fonction avec f(x)= sin(x^2)-x+.5 et x0=1.5

Annexe
Annexe 1 : Mthode de dichotomie tant donns deux points a et b et une fonction f continue sur l'intervalle [a, b] telle que f(a) et f(b) soient de signes opposs. Supposons que nous voulons rsoudre lquation f(x) = 0. Nous savons par le thorme des valeurs intermdiaires que f doit avoir au moins un zro dans lintervalle [a, b]. La mthode de dichotomie divise lintervalle en deux en calculant c = (a+b) / 2. Il y a maintenant deux possibilits : soit f(a) et f(c) sont de signes opposs, soit f(c) et f(b) sont de signes opposs. Lalgorithme de dichotomie est alors appliqu au sous-intervalle dans lequel le changement de signe se produit. Nous effectuons cette division tant que lcart entre b et a est suprieur la prcision souhaite. Rsum de lalgorithme : Tantque b-a>epsilon c=(a+b)/2 si f(a) et f(c) sont de signe oppos b=c sinon 4

a=c finSi finTantQue Annexe 2 : Mthode de Newton

Nous rsolvons f(x)=0 en prenant un x0 proche de la solution recherche. Nous calculons alors lintersection entre la tangente la courbe en ce point et la droite y=0 afin dobtenir x1 et nous ritrons cette tape jusqu ce que f(x) soit suffisamment proche de 0. Rsum de lalgorithme : Prendre x=x0 proche de la solution Tant que |f(x)|>Epsilon

FinTantQue

Vous aimerez peut-être aussi