Cours Matlab et Calcul Numérique ENSA Safi
Cours Matlab et Calcul Numérique ENSA Safi
1
Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022
2
Objectifs du cours
Ces deux types de logiciel répondent à deux besoins différents (parfois complémentaires).
➢ Les premiers vont permettre de calculer symboliquement une dérivée, une intégrale (si elle est
calculable) et plus généralement de manipuler des valeurs exactes.
➢ Les secondes vont permettre de calculer rapidement de manière numérique (et donc approchée)
Remarques
Il n’y a pas de logiciel meilleur qu’un autre, les deux catégories sont complémentaires et
dépendent de l’application visée.
Les logiciels de calculs numériques sont très répandus dans l’industrie et la recherche, car ils
permettent de faire du prototypage rapide, c’est à dire de pouvoir développer une
application très rapidement afin de l’évaluer, avant de lancer un processus industriel.
❑ L'objet de cette section est de mettre en évidence les principales difficultés liées à la
pratique des calculs numériques sur ordinateur.
𝑲𝒎𝒂𝒙
𝒙𝒌
∀𝒙∈𝑹 𝐞𝐱𝐩 𝒙 =
𝒌!
𝒌=𝟎
❑ Pour le calcul de l’exponentielle, on commet donc une erreur
❑ Erreur de mesure générée par la différence entre la valeur exacte x et la valeur mesurée
𝑥.
Elle vaut :
∆𝒙 = 𝒙 − 𝒙
ෝ
∆𝒙 = 𝒙 − 𝒙
Exemple : soit un objet valant 100 DH, son vrai prix en dollars est donc de
𝟏𝟎𝟎
𝒙 = 𝟗,𝟑𝟏𝟓𝟓 ≈ 𝟏𝟎. 𝟕𝟑𝟒𝟕𝟗𝟔𝟖𝟒𝟑𝟗𝟔𝟗𝟕𝟐𝟕𝒅𝒐𝒍𝒍𝒂𝒓𝒔
Mais on le trouvera uniquement au prix de 𝑥=10,73
dollars, l’erreur commise est
donc de : ∆𝒙 = 𝟒, 𝟕𝟗𝟔𝟖𝟒𝟑𝟗𝟔𝟗𝟕𝟐𝟕 × 𝟏𝟎−𝟑 𝒅𝒐𝒍𝒍𝒂𝒓𝒔
❑ Erreur de troncature
Exemple: dans le calcul numérique de l’exponentiel, l’erreur de troncature vaut
+∞
𝒙𝒌
𝑻 = 𝒛 − 𝒛 = 𝒌!
𝒌=𝑲+𝟏
❑ Erreur absolue
∆𝒙 = 𝒙 − 𝒙
❑ Erreur relative
Si 𝒙 ≠ 𝟎, l’erreur relative est
𝒙−𝒙
𝜹𝒙 =
𝒙
MAT (Matrix) LAB (Laboratory) est un logiciel puissant doté à la fois d'un langage de
programmation haut niveau et d'outils dédiés au calcul numérique et à la visualisation
numérique. Développé en C par la société Mathworks, Matlab était initialement destiné à faire
simplement du calcul matriciel. Actuellement, Matlab recouvre d'autres domaines d'applications
de l'informatique scientifique :
➢ visualisation graphique 2D et 3D
➢ optimisation
➢ traitement du signal
➢ traitement de l'image
➢ etc …
Matlab est un outil puissant qui permet la résolution de nombreux problèmes en beaucoup moins
de temps qu'il n'en faudrait pour les formuler en C ou en Pascal.
C'est un langage interprété, c'est-à-dire que les instructions sont exécutées immédiatement après
avoir été introduites. Il n'est pas nécessaire de compiler un programme avant de l'exécuter et toute
commande introduite dans la fenêtre de commande est immédiatement exécutée. C'est dans cette
fenêtre que l'on peut écrire les instructions Matlab (à la suite des chevrons >>).
La réponse est affichée et stockée dans la variable ans (answer en anglais est la réponse).
La plupart des fonctions mathématiques usuelles sont définies dans Matlab, et ceci sous une forme
naturelle (sin, cos, exp, ...). de même que certaines constantes (pi ...).
Lorsque vous démarrez Matlab, vous vous retrouvez par défaut avec une console, un espace de travail et un
historique des commandes. Un éditeur est également disponible à l'aide d'une simple commande d'édition.
Créer un
nouveau fichier Accédez au
dossier souhaité
Espace de travail
Répertoire (Mémoire)
courant Fenêtre de
commande
Historique des
commandes
(Remarque : ans est remplacé par le résultat de chaque expression qui n'est pas déjà affectée à une
variable.)
La précision d'affichage par défaut de MATLAB est de 4 décimales mais les nombres sont stockés en
mémoire avec une précision bien supérieure (double précision, 64 bits/17 chiffres significatifs).
Le nom de cette
variable ainsi que le
résultat sont affichés
Un point virgule à la fin de la ligne permet de ne pas afficher ce résultat. On peut taper plusieurs
commandes par ligne, séparées par un point virgule.
Il existe un certain nombre de variables prédéfinies : pi | inf | i | realmin | realmax | eps | ans
Naturellement si vous redéfinissez la variable i ou j avec une autre valeur elle n'aura plus la même
signification.
Les fonctions usuelles de manipulation des nombres complexes sont prédéfinies dans Matlab :
real | imag | abs | angle (en radian) | conj.
❑ Les éléments d'une matrice peuvent être n'importe quelle expression de Matlab :
❑ On peut aussi créer des matrices avec les fonctions zeros, ones, rand et eye, ces fonctions créent des
matrices de la taille précisée, respectivement remplies de zéros, de un, et de un sur la diagonale et
des zéros ailleurs (eye = prononciation anglaise de I comme identité).
❑ On peut avoir des informations sur la taille d'une matrice avec les fonction size et lenght
❑ On peut ajouter des lignes et des colonnes à des matrices déjà existantes.
❑ mais aussi des retournements horizontaux (flipud : Up/Down), verticaux (fliplr : Left/Right), ou des
rotations de matrices :
❑ On peut également remettre en forme des matrices et vecteurs sur un nombre de lignes et de
colonnes donnés (à condition que le nombre total d'éléments corresponde) :
❑ L'opérateur " : ", sous Matlab, peut être considéré comme l'opérateur d'énumération.
Sa syntaxe usuelle est : deb:pas:fin.
Il construit un vecteur dont le premier élément est deb puis deb+pas, deb+2*pas... jusqu'à deb+n*pas tel
que deb+n*pas < fin < deb+(n+1)*pas.
❑ On peut aussi utiliser le " : " pour sélectionner des éléments d'une matrice :
Le tableau suivant montre quelques opérations MATLAB souvent utilisées sur les matrices.
❑ Les opérations numériques suivantes sont effectuées sur chaque élément de la matrice : puissance
(.^), racine carrée, logarithme, exposant, sinus, cosinus.
Le tableau suivant contient une liste de fonctions MATLAB qui opèrent sur des matrices.
Commander Retourner Commander Retourner
A’ Transposée de A Une matrice où la matrice A est répétée
repmat(A,m,n)
find(A) Indices de tous les éléments non nuls de A. en m lignes et n colonnes
Matrice a reformée en m lignes et n
fliplr(A) Matrice A, retournée horizontalement reshape(A,m,n)
colonnes.
flipud(A) Matrice A, retournée verticalement.
size(A) La taille de A (#lignes, #colonnes, ...)
inv(A) Inverse de A
sort(A) Vecteur A trié par ordre croissant. †
min(A) Élément de valeur minimale de A. †
sum(A) Somme des éléments de A. †
max(A) Élément de valeur maximale de A. †
La liste des éléments uniques de A dans
numel(A) Le nombre d'éléments de A unique(A)
l'ordre croissant.
† Pour une matrice, l'opération sera effectuée séparément sur chaque colonne.
Pour un vecteur (ligne ou colonne), l'opération sera effectuée sur le vecteur.
❑ Créez un vecteur colonne 4 × 1, qui contient toutes les valeurs de votre choix.
❑ Utilisez une commande MATLAB pour évaluer le sinus de 𝟑𝟎° ; 𝟒𝟓° ; 𝟔𝟎° et 𝟏𝟐𝟎°. Ensuite, évaluez
le cosinus, la tangente et la cotangente des mêmes angles.
❑ Trouver la somme des nombres entiers de 1 à 100
❑ Créez un exemple pour démontrer que la multiplication matricielle n'est pas commutative.
𝑻
❑ Créez un exemple pour démontrer que l'équation suivante est valable : 𝑨𝑩𝑪 = 𝑪𝑻 𝑩𝑻 𝑨𝑻 , où 𝑨, 𝑩
et 𝑪 sont des matrices de tailles différentes, et le produit 𝑨𝑩𝑪 est réalisable.
❑ Créez un vecteur V (1 × 6) contenant les valeurs entières de 20 à 25. Ensuite, créez un vecteur (1 ×
6) dont les valeurs sont égales à 5 fois les valeurs de V.
❑ Créez un vecteur qui va à pas égaux de -2 à +2 contenant 50 composants.
Pour tout logiciel de tracée de courbes, une courbe 2D est représenté par une série d'abscisses et une
série d'ordonnées. Ensuite, le logiciel trace généralement des segments entre ces points. MATLAB
n'échappe pas à la règle. La fonction s'appelle plot. L'utilisation la plus simple de l'instruction plot est
la suivante :
plot ( vecteur d'abscisses, vecteur d'ordonnées )
❑ Les vecteurs peuvent être ligne ou colonne, pourvu qu'ils soient tous deux de même type.
Exemple: si on veut tracer sin(x) sur l'intervalle [0; 2], on commence par définir une série de valeurs
équidistantes sur cet intervalle :
Pour tout logiciel de tracée de courbes, une courbe 2D est représenté par une série d'abscisses et une
série d'ordonnées. Ensuite, le logiciel trace généralement des segments entre ces points. MATLAB
n'échappe pas à la règle. La fonction s'appelle plot. L'utilisation la plus simple de l'instruction plot est
la suivante :
plot ( vecteur d'abscisses, vecteur d'ordonnées )
❑ Les vecteurs peuvent être ligne ou colonne, pourvu qu'ils soient tous deux de même type.
❑ Les abscisses peuvent donc être une fonction de x plutôt que x lui même. En d'autres termes, il est
donc possible de tracer des courbes paramétrées
Exemple:
Les deux courbes étant en réalité dans des couleurs différentes. Cette
méthode fonctionne même si les abscisses des deux courbes ne sont pas
les mêmes.
Dans le cas plus fréquent où les abscisses sont les mêmes, il existe un autre moyen de superposer les
courbes. On a toujours le vecteur des abscisses, commun aux deux courbes, et on a autant de vecteurs
d'ordonnées qu'il y a de courbes. Tous ces vecteurs d'ordonnées sont regroupés dans un même
tableau, chaque ligne du tableau représentant un vecteur d'ordonnées :
plot ( vecteur d'abscisses, tableau d'ordonnées )
Lorsque l'on écrit une expression arithmétique dans les arguments de plot, il faut utiliser systématiquement les
opérateurs terme à terme .* ./ et .^ au lieu de * / et ^
Vous aurez remarqué que MATLAB attribue des couleurs par défaut aux courbes. Il est possible de
modifier la couleur, le style du trait et celui des points, en spécifiant après chaque couple (abscisse,
ordonnée) une chaîne de caractères pouvant contenir les codes suivants (obtenus par help plot) :
Exemple:
(1) Haltère (2) Zigzag (3) Flash (4) Arbre de Christmas (5) visage de l'ours
La commande fill permet de remplir une région donnée avec une couleur donnée. La syntaxe
est la suivante :
fill ( vecteur d'abscisses, tableau d'ordonnées, couleur )
❑ Il est indispensable de travailler dans votre propre répertoire et non dans le répertoire de Matlab.
Ainsi dans votre répertoire, vous pouvez organiser vos fichiers dans des sous répertoires.
❑ Pour que vos fonctions et scripts soient accessibles à partir de la ligne de commande Matlab il faut
s’assurer que vos répertoires de travail soient déclarés. Ceci se fait à l'aide de la commande editpath
qui permet de rajouter aux chemins déjà existants le chemin des répertoires contenant vos
programmes. Sinon, il faut aussi se placer dans votre répertoire de travail.
❑ En fait lorsqu'on travaille souvent sous Matlab avec des fichiers de fonctions et des scripts
organisés dans une arborescence sur le disque de travail, il est possible et préférable de réaliser un
fichier startup.m qui sera exécuté immédiatement en lançant Matlab. Dans ce fichier on peut définir
le path (addpath), charger d'éventuelles variables, se placer dans le répertoire désiré
❑ Si le nom des variables est omis, tous l'espace de travail est sauvé; si l'extension du fichier est omise
elle sera automatiquement .mat, si de plus, le nom du fichier est omis, la sauvegarde se fera dans le
fichier matlab.mat.
❑ MATLAB est souvent utilisé comme logiciel d'exploitation de résultats. Exemple classique : on a un
programme FORTRAN qui calcule des séries de valeurs, et on souhaite tracer une série en fonction
de l'autre. Le moyen le plus simple est que votre programme écrive un fichier texte organisé sous
forme de m colonnes, séparées par des blancs, contenant chacune n lignes :
Cette structure est obligatoire pour que la méthode simple exposée ici
fonctionne correctement. Ce fichier doit porter une extension, qui peut être
quelconque, mais différente de .m ou .mat.
Admettons qu'il s'appelle data.txt, tapez dans MATLAB :
Ce faisant, vous créez un nouveau tableau MATLAB, qui porte le nom du fichier sans
extension, soit data. Vous pouvez maintenant extraire les colonnes de ce tableau, et les
mettre dans des vecteurs, par exemple :
et vous n'avez plus qu'à tracer l'un de ces vecteurs en fonction d'un autre.
❑ Il est parfois (souvent) souhaitable, pour ne pas avoir à taper plusieurs fois une même séquence
d'instructions, de la stocker dans un fichier. Ainsi on pourra réutiliser cette séquence dans une
autre session de travail. Un tel fichier est dénommé script.
❑ Il suffit d'ouvrir un fichier avec le menu HOME, New Script, de taper la séquence de commande et
de sauver le fichier avec une extension " .m " (nom-fich.m). En tapant le nom du fichier sous
Matlab, la suite d'instructions s'exécute.
❑ Les variables définies dans l'espace de travail sont accessibles pour le script. De même les variables
définies (ou modifiées) dans le script sont accessibles dans l'espace de travail.
❑ On peut (doit) mettre des commentaires à l'aide du caractère pour-cent " % ". Toute commande
située après " % " n'est pas prise en compte par Matlab, jusqu'à la ligne suivante. De plus Matlab
ne voit pas les espaces blancs (lorsqu'il n'y a pas d'ambiguïté), ce qui permet de bien indenter ses
fichiers.
bloc d'instruction …
…
❑ Le nom de la fonction doit impérativement être le même que le nom du fichier dans lequel elle est
stockée (sinon Matlab ne prendra pas en compte ce nom mais uniquement celui du fichier).
❑ Les nombres d'arguments en entrée et en sortie ne sont pas fixes et peuvent être récupérés par
nargin et nargout. Cela nous permet donc de faire des fonctions Matlab pouvant dépendre d'un
nombre variable de paramètres.
❑ Les variables de l'espace de travail ne sont pas accessibles à la fonction sauf si elles sont entrées
comme variable d'entrée. De même les variables définies dans une fonction ne sont pas accessibles
dans l'espace de travail.
À partir de ce point, vous pouvez utiliser fu(arg), où l'argument peut être un nombre unique ou un
tableau. (Les opérations sur les tableaux sont prises en compte en utilisant '.*' au lieu de '*', et '.^'
au lieu de '^').
❑ Dans la définition de la fonction, au lieu d'un seul x, nous pouvons utiliser une liste d'arguments
après le signe @ (@(liste_des_arguments)). Par exemple,
Le tableau suivant contient les détails de certaines fonctions logiques couramment utilisées dans
MATLAB
Commander Retourner
all(A) Vrai si tous les éléments de A sont vrais/non nuls.
any(A) Vrai si un élément de A est vrai/non nul.
Vrai si A existe dans le chemin d'accès ou l'espace de travail
exist(A)
MATLAB comme un fichier, une fonction ou une variable.
isempty(A) Vrai si A ne contient pas d'éléments.
ismember(A,B) Vrai si B peut être trouvé dans A.
❑ Une expression logique est une expression dont la valeur est soit vraie, soit fausse.
❑ Certains langages de programmation utilisent des types de données spéciaux, ils sont généralement
appelés types de données booléens. D'autres langages, tels que MATLAB, autorisent des types de
données généraux pour représenter les réponses logiques.
❑ Les expressions logiques peuvent contenir des opérations numériques, logiques et relationnelles.
Les opérations numériques impliquent des nombres et leur résultat est un nombre.
Les opérateurs relationnels comparent deux nombres et leur résultat est vrai ou faux.
Les opérations logiques relient deux variables logiques. Le résultat est à nouveau vrai ou faux.
Le Tableau suivant présente les opérations relationnelles et logiques les plus souvent utilisées ainsi que
leur syntaxe MATLAB.
Opérations relationnelles Opérations logiques
A == B # qui sont égales les unes aux autres. A & B # qui sont toutes deux vraies (non nulles).
A ~= B # qui ne sont pas égales les unes aux autres. Valable uniquement pour les scalaires. Vrai
A && B
A <= B # où A(i) est inférieur ou égal à B(i). si les deux sont vrais.
A < B # où A(i) est strictement inférieur à B(i). # où l'un ou l'autre ou les deux éléments
A|B
A(i) et B(i) sont vrais (non nuls)
A >= B # où A(i) est supérieur ou égal à B(i).
Valable uniquement pour les scalaires. Vrai
A > B # où A(i) est strictement supérieur à B(i). A || B
si l'un ou les deux sont vrais.
# où l'un de A(i), B(i) est vrai et l'autre est
xor(A, B)
faux.
~A Vrai si A est faux. On dit aussi "pas" A.
# : Vrai pour tous les éléments correspondants de A et B ...
Le Tableau suivant présente les opérations relationnelles et logiques les plus souvent utilisées ainsi que
leur syntaxe MATLAB.
Exemple:
Le Tableau suivant présente les opérations relationnelles et logiques les plus souvent utilisées ainsi que
leur syntaxe MATLAB.
❑ Notez que les opérateurs logiques joignent deux variables booléennes alors que les opérateurs
relationnels joignent deux expressions numériques. Dans une expression logique, les opérations
numériques sont effectuées en premier, puis les opérations relationnelles, et enfin les opérations
logiques.
Valeurs Numériques
Expression Numérique
Relationnelle Relationnelle
Logique
Donc c contient la valeur vrai
❑ Les instructions conditionnelles agissent comme des interrupteurs de programme qui répondent à
certaines conditions dans le programme. Les constructions de base if et switch sont présentées
comme suit
Exemple:
❑ Contrairement à d'autres langages, MATLAB ne dispose que de deux types de boucles, for et while.
Les boucles for doivent être utilisées lorsque le nombre d'itérations est connu à l'avance, comme
dans "Bouclez sur ces instructions cinq fois". Lorsque le nombre d'itérations requis est inconnu, ou
peut être différent pour chaque exécution du programme, utilisez une boucle while.
❑ La syntaxe de base d'une boucle 'for' et 'while' est la suivante :
❑ Matlab est un outil très puissant également pour faire des opérations sur des fonctions
polynomiales. Par défaut, Matlab utilise un vecteur pour représenter un polynôme. Ainsi le vecteur
suivant
p = [2 4 8]; → représente le polynôme suivant: 𝒑 = 𝟐𝒙𝟐 + 𝟒𝒙 + 𝟖
❑ Comment différencier alors un vecteur normal d'un polynôme ? En fait c'est simplement par le
genre d'opérations qu'on effectuer sur la variable p.
▪ Si on fait l'opération suivante:
Matlab interprète p, comme un vecteur et effectue le produit de la transposée de p fois le
vecteur p.
▪ Si par contre on utilise la fonction suivante:
On effectue l'intégrale du polynôme p, car la fonction polyfun interprète p comme un
polynôme.
❑ Pour plus de détails sur les fonctions appliquées aux polynômes tapez :
❑ Écrivez une fonction MATLAB permettant de calculer la distance euclidienne entre deux points
dans un espace à n dimensions. Les points sont donnés comme arguments d'entrée a et b. Les deux
doivent être des tableaux de n éléments. Le fait que l'une ou l'autre des entrées soit une ligne ou
une colonne ne doit pas avoir d'importance pour votre fonction. Démontrez le fonctionnement de
votre fonction par un exemple.
❑ Écrivez une fonction MATLAB permettant de vérifier si un point donné (x ; y) se trouve dans le
carré dont le coin inférieur gauche est situé à (p ; q) et dont le côté est s. Les arguments d'entrée
sont x ; y ; p ; q et s, et la sortie est soit vraie (le point est dans le carré) soit fausse (le point n'est
pas dans le carré).
❑ La fonction fzero permet de résoudre ce problème. Il faut fournir d'une part la fonction 𝒇 elle
même, et d'autre part une estimation de 𝒙𝟎 . L'efficacité de l'algorithme est comme toujours
dépendante de la valeur estimée choisie. La fonction 𝒇 peut être définie par une directive inline ou
bien écrite dans un fichier.
Exemple:
▪ On cherche le zero de 𝒇(𝒙) = 𝒄𝒐𝒔(𝒙) – 𝒙.
Une approche graphique permet souvent de trouver une
estimation de 𝒙𝟎 . La figure suivante montre ainsi que les
fonctions 𝒈 𝒙 = 𝒙 et 𝒉 𝒙 = 𝒄𝒐𝒔(𝒙) se coupent en un point sur
[−, ]. Une valeur raisonnable pour l'estimation de 𝒙𝟎 est par
exemple 0.
❑ La fonction fzero permet de résoudre ce problème. Il faut fournir d'une part la fonction 𝒇 elle
même, et d'autre part une estimation de 𝒙𝟎 . L'efficacité de l'algorithme est comme toujours
dépendante de la valeur estimée choisie. La fonction 𝒇 peut être définie par une directive inline ou
bien écrite dans un fichier.
Exemple:
▪ On cherche le zero de 𝒇(𝒙) = 𝒄𝒐𝒔(𝒙) – 𝒙.
On peut donc écrire, en utilisant fzero :
❑ La fonction fzero permet de résoudre ce problème. Il faut fournir d'une part la fonction 𝒇 elle
même, et d'autre part une estimation de 𝒙𝟎 . L'efficacité de l'algorithme est comme toujours
dépendante de la valeur estimée choisie. La fonction 𝒇 peut être définie par une directive inline ou
bien écrite dans un fichier.
Exemple:
▪ On cherche le zero de 𝒇(𝒙) = 𝒄𝒐𝒔(𝒙) – 𝒙.
On peut donc écrire, en utilisant fzero :
On remarquera que la variable 𝒇 envoyée à la
fonction fzero est-elle même une fonction. On
peut également écrire la fonction dans un
fichier f.m :
❑ La fonction fzero permet de résoudre ce problème. Il faut fournir d'une part la fonction 𝒇 elle
même, et d'autre part une estimation de 𝒙𝟎 . L'efficacité de l'algorithme est comme toujours
dépendante de la valeur estimée choisie. La fonction 𝒇 peut être définie par une directive inline ou
bien écrite dans un fichier.
❑ On peut déterminer plusieurs racines à l’aide de fsolve au voisinage des éléments d’un vecteur
que l’on donne en argument d’entrée.
Exemple:
Idéalement, les (𝒙𝒊 𝒚𝒊 ) vérifieraient cette relation, auquel cas on aurait le système de n équations
linéaires à 𝒎 inconnues (𝒂𝟏 ⋯ 𝒂𝒎 ) :
𝑦1 𝑓1 𝑥1 𝑓2 𝑥1 ⋯ 𝑓𝑚 𝑥1 𝑎1
𝑦2 𝑓1 𝑥2 𝑓2 𝑥2 ⋯ 𝑓𝑚 𝑥2 𝑎2
⋮ = ⋮
⋮ ⋮ ⋱ ⋮
𝑦𝑛 𝑓1 𝑥𝑛 𝑓2 𝑥𝑛 ⋯ 𝑓𝑚 𝑥𝑛 𝑎𝑚
soit sous forme matricielle 𝒀 = 𝑭 𝑨 auquel cas on trouverait simplement les coefficients 𝒂𝒊 par
inversion :
𝑨 = 𝑭 −𝟏 𝒀
❑ Ode45 est une fonction standard de MATLAB pour les équations différentielles ordinaires (ODE).
Cette fonction met en œuvre une méthode Runge-Kutta avec un pas de temps variable pour un
calcul efficace. ode45 est conçue pour traiter le problème général suivant :
𝑑𝑦
= 𝑓 𝑡, 𝑦 , 𝑦 𝑡0 = 𝑦0
𝑑𝑡
❑ Dans le domaine temporel, les ODE sont des problèmes à valeur initiale, donc toutes les conditions
sont spécifiées au temps initial t = 0.
❑ Les méthodes numériques sont utilisées pour résoudre les problèmes à valeur initiale où il est
difficile d'obtenir une solution exacte
▪ fname est le nom de la fonction Mfile utilisée pour évaluer la fonction du seconde membre de
l'équation de l'équation. Il s'agit de la fonction dans laquelle nous entrerons le système d'odeurs
de premier ordre à intégrer.
▪ tspan est le vecteur définissant les limites de début et de fin de l'intégration, ainsi que la taille des
pas de temps que nous souhaitons. Par exemple, si nous intégrons de t = 0 à t = 10, et que nous
voulons prendre 100 pas de temps, alors tspan= [0:0.1:10] ou tspan=linspace(0,10,100)).
▪ xinit est le vecteur des conditions initiales. Assurez-vous que l'ordre correspond à l'ordre utilisé
pour écrire y et leurs dérivées en fonction de x. Notez également que si x consiste en 5 variables,
alors nous avons besoin d'une entrée de 5 conditions initiales.
𝑑𝑦 1
= 2y − y2, 𝑦 0 = 10
𝑑𝑡 1000
𝑑2 𝜃 𝑔 𝜋
+ sin(𝜃) = 0 𝜃 0 = , 𝜃ሶ 0 = 0
𝑑𝑡 2 𝑙 3