opérateur de boucle while exemples dans matlab. MATLAB for loop - Tutoriel illustré MatLab > Principes de base de la programmation > For...end loops. Boucles comme while...end. Exigences pour la conception des travaux de laboratoire

Département : Technologies de l'information

PROGRAMMATION DANSMATLAB


Les opérateursMATLAB

· Instructions de boucle

Cyclepour

Syntaxe

count=start:step:final

Commandes MATLAB

La description

count est une variable de boucle,

start est sa valeur initiale,

final est sa valeur finale,

pas - le pas par lequel le compte est incrémenté à chaque fois qu'il entre dans la boucle

la boucle se termine dès que la valeur de count devient supérieure à final.

Exemple

Soit qu'il soit demandé de dériver une famille de courbes pour x€ , qui est donnée par une fonction dépendant du paramètre

y (x, a) \u003d e-ax sin x,

pour les valeurs de paramètre a de -0,1 à 0,1. Vous trouverez ci-dessous une liste d'un programme de fichier pour la sortie d'une famille de courbes.

Liste des programmes

x = ;

pour a = -0.1:0.02:0.1

y = exp(-a*x).*sin(x);

À la suite de l'exécution du programme, une fenêtre graphique apparaîtra contenant la famille de courbes requise.

Cycletandis que

Syntaxe

condition de boucle while

Commandes MATLAB

La description

La boucle s'exécute tant que la condition (vraie) de la boucle est vraie. Les opérations relationnelles suivantes sont autorisées pour définir la condition d'exécution d'un cycle :

Des conditions plus complexes sont spécifiées à l'aide d'opérateurs logiques. Les opérateurs logiques sont donnés dans le tableau suivant


Exemple

Opérateurs de succursale

Opérateur conditionnelsi

Syntaxe

si état

Commandes MATLAB

La description

Si la condition est vraie, alors les commandes MATLAB placées entre if et end sont exécutées, et si la condition n'est pas vraie, alors la transition se produit vers les commandes situées après la fin.

Exemple

Opérateur conditionnelsinon si

Syntaxe

si état1

sinon condition2

………………………

condition sinon

La description

Selon la réalisation de l'une ou l'autre condition, la branche correspondante du programme fonctionne, si toutes les conditions sont fausses, alors les commandes placées après les autres sont exécutées.

Exemple

Opérateurchanger

Syntaxe

variable de commutation

valeur du cas1

valeur de cas2

……………………

valeur de cas


Chaque branche est définie par une instruction case, la transition vers celle-ci est effectuée lorsque la variable d'instruction switch prend la valeur spécifiée après le cas, ou l'une des valeurs de la liste des cas. Après l'exécution de l'une des branches, le commutateur se ferme, tandis que les valeurs spécifiées dans d'autres cas ne sont plus vérifiées. S'il n'y a pas de valeurs appropriées pour la variable, la branche du programme correspondant au contraire est exécutée.

Exemple

Interruptions de boucle. Situations exceptionnelles.

OpérateurPause

Syntaxe

L'instruction break permet d'organiser des calculs cycliques : for...end, while...end. Lorsque l'état

si état

l'instruction break termine la boucle (for ou while) et les instructions situées sur les lignes suivant la fin sont exécutées. Pour les boucles imbriquées, break quitte la boucle interne.

Gestion des exceptions, Opérateuressayerattraper

Syntaxe

déclarations dont l'exécution

peut entraîner une erreur

déclarations à exécuter

lorsqu'une erreur se produit dans un bloc

entre essayer et attraper

La description

La construction try...catch vous permet de contourner les situations exceptionnelles (erreurs qui conduisent à l'arrêt du programme, par exemple, l'accès à un fichier inexistant) et de prendre des mesures si elles se produisent.

Exemple

Fonctions de service

afficher affiche le texte ou la valeur d'une variable dans la fenêtre de commande

contribution- demande une entrée au clavier. Utilisé lors de la création d'applications avec une interface de ligne de commande.

eval exécute le contenu d'une chaîne ou d'une variable de chaîne, comme les commandes MATLAB

dégager- Supprime les variables d'environnement de travail.

à partir delc- efface la fenêtre de commande

Pour plus d'informations sur ces fonctions et d'autres, exécutez la ligne de commande

aidernom_fonction


Missions pour travaux de laboratoire

Le numéro d'une option de tâche particulière est déterminé par l'enseignant.

Tâche numéro 1

Cette tâche implique de trouver un polynôme d'interpolation algébrique de degré n pour un ensemble de données : P n(X) .

Objectif:

Il est nécessaire d'écrire un programme pour calculer les coefficients d'un polynôme d'interpolation algébrique P n(X)= une 0 + une 1 X+ … + une n x n.

Consignes méthodiques :

0 1 2 3

Xje

1,2 1,4 1,6 1,8
8,3893 8,6251 8,9286 8,9703

Chances une 0 , une 1 , …, une sont déterminés à partir de la solution du système d'équations :

Ici nest l'ordre du polynôme d'interpolation,

n+1 est le nombre de paires de points données ( X, y),

une 0 , une 1 ,… une sont les coefficients requis du polynôme P n(X)= une 0 + une 1 X+ … + une n x n).

Exigences du programme

Définir les limites de la ligne , sur lequel est construit le polynôme d'interpolation P(x)

· Interroger n est le nombre de segments d'interpolation (ou, de manière équivalente, le degré du polynôme)

Noter: x0, xn, n saisie au clavier.

· Pour obtenir des données initiales (x, y)(nombre de paires de points (x je, y je), sur lequel est construit le polynôme d'interpolation P(x)n1=n+1) apporter:

ü Entrez des nœuds placés au hasard x je, je=0, n du clavier

ü Calcul des nœuds x je , je=0, n, correspondant à l'arrangement uniforme de l'argument X sur la tranche

ü Par paragraphes. 1.2 valeurs y je , je=0, n soit saisie au clavier (si la fonction d'origine est inconnue), soit calculée à partir d'une fonction donnée f(x). L'expression qui définit la fonction est saisie au clavier et doit suivre les règles d'écriture des expressions dans MATLAB

ü Saisie des données ( x je, y je, je=0, n) à partir du fichier

Résoudre un système d'équations pour déterminer les coefficients du polynôme P(x)

Construire des graphiques de la fonction tabulaire d'origine et du polynôme P(x)

· Si les données initiales sont données sous la forme d'une fonction f(x), tracer l'erreur d'interpolation /f(x) – P(x)/. Calculer la valeur modulo maximale de l'erreur d'interpolation sur un intervalle donné.


Tâche numéro 2

Interpolation spline

Objectif:

Il est nécessaire de créer un programme de calcul de coefficients et de construction d'une fonction spline S(x), "collée" à partir de morceaux de polynômes du 3ème ordre S je(X), qui ont une notation spéciale :

Fonction S je(X) défini sur le segment

Exigences du programme

Lors de l'exécution de ce travail, vous devez :

Définir les limites du segment sur lequel la fonction spline S(x) est construite

· Spécifiez n – le nombre de segments d'interpolation, sur chacun desquels le polynôme cubique Si(x) est construit.

· Remarque : x0, xn, n sont saisis au clavier.

Organiser l'entrée des données initiales (x, y) (le nombre de paires de points (xi, yi) sur lesquelles est construite la fonction spline S(x), n1=n+1) en prévoyant :

ü Saisie de nœuds arbitrairement situés xi, i=0, n depuis le clavier

ü Calcul des nœuds xi, i=0, n, correspondant à la disposition uniforme de l'argument x sur le segment

ü Par paragraphes. 1,2 les valeurs yi, i=0, n sont soit saisies au clavier (si la fonction d'origine est inconnue) soit calculées à partir de la fonction donnée f(x). L'expression qui définit la fonction est saisie au clavier et doit suivre les règles d'écriture des expressions dans MATLAB

ü Saisie des données (xi, yi, i=0, n) à partir d'un fichier

ü S1""(x0)=0, S3""(x3)=0

ü S1"(x0)=f "(x0), S3"(x3)=f "(x3)

ü S1""(x0)=f "(x0), S3""(x0)=f "(x3)

Pour déterminer les coefficients d'une spline cubique naturelle (conditions aux limites 1), il faut résoudre le système d'équations suivant :

Coefficients σ 0 =0, σ n =0

· Tracer des graphiques de la fonction d'origine et des fonctions splines pour les trois types de conditions aux limites.

· Construire des graphiques des fonctions d'erreur d'interpolation spline f(x) – S(x) pour les trois types de conditions aux limites.

Noter:

Dans le package MATLAB, les index des tableaux unidimensionnels et bidimensionnels commencent à partir de 1, et non de 0. Tenez-en compte lors de l'écriture d'un programme.


Tâche numéro 3

Approximation d'une fonction par la méthode des moindres carrés (LSM).

Cette tâche implique de trouver une fonction d'approximation (polynôme de degré m) pour un ensemble de données, construit par la méthode des moindres carrés (LSM).

Objectif:

Il est nécessaire d'écrire un programme pour trouver les coefficients du polynôme φ (X)= une 0 + une 1 * X+… une * xm par la méthode des moindres carrés.

Supposons, par exemple, que nous ayons l'ensemble de données suivant :

Xje

1,2 1,4 1,6 1,8 2,0 2,2 2,4 2,6 2,8 3,0
8,3893 8,6251 8,9286 8,9703 9,1731 9,1784 8,8424 8,7145 8,3077 7,9611

La recherche des coefficients requis s'effectue de la manière suivante :

n - nombre de points ( X, y),

m est le degré du polynôme recherché,

une 0 , une 1 , …, suis sont les coefficients recherchés ( φ ( X )= une 0 + une 1 X + … + un m x m ).

Exigences du programme

Lors de l'exécution de ce travail, vous devez :

Fixer les bornes du segment sur lequel la fonction d'approximation est construite φ(x)=a0+a1*x+… an * xm

Set m - le degré du polynôme

· Remarque : x1, xn, m sont saisis au clavier.

Pour obtenir la donnée initiale (x, y), sur laquelle est construite la fonction d'approximation φ(x)=a0+a1*x+… an* x m, prévoir :

ü Saisie de nœuds arbitraires xi, i=1, n depuis le clavier

ü Calcul des nœuds xi, i=1, n, correspondant à la disposition uniforme de l'argument x sur le segment

ü Par paragraphes. 1,2 les valeurs yi, i=1, n sont soit saisies au clavier (si la fonction d'origine est inconnue) soit calculées à partir de la fonction donnée f(x). L'expression qui définit la fonction est saisie au clavier et doit suivre les règles d'écriture des expressions dans MATLAB

ü Saisie des données (xi, yi, i=1, n) à partir d'un fichier

Résoudre un système d'équations pour déterminer les coefficients du polynôme φ(x)

Construire des graphiques de la fonction donnée tabulaire d'origine et du polynôme φ (x)

· Si les données initiales sont données sous la forme d'une fonction f(x), tracer l'erreur d'interpolation /f(x) – φ(x)/. Calculer la valeur modulo maximale de l'erreur d'interpolation sur un intervalle donné.

Lors de l'exécution du dernier élément du segment prendre au moins 500 points pour les calculs


Exigences pour la conception des travaux de laboratoire

Le rapport doit contenir :

1. Énoncé du problème

2. Texte du programme

3. Résultats des tests

Remarque Les textes des programmes doivent être accompagnés de commentaires.


1. Anufriev I.E. Tutoriel Matlab 5.3 / 6.x - Saint-Pétersbourg : BHV-Petersburg, 2003. - 736 p. : ill.

2. V.P. Dyakonov MATLAB 6.5 SPI/7 + Simulink 5/6 en mathématiques et modélisation. Série "Bibliothèque professionnelle". - M. : SOLON-Presse, 2005. - 576 p. : ill.

3. Anufriev I.E., Smirnov A.B., Smirnova E.N. MathLab 7. - Saint-Pétersbourg : BHV-Petersburg, 2005. - 1104 p. : ill.

Le langage de l'informatique technique

Des millions d'ingénieurs et de scientifiques du monde entier utilisent MATLAB ® pour analyser et développer les systèmes et produits qui transforment notre monde. Le langage matriciel MATLAB est le moyen le plus naturel au monde d'exprimer des mathématiques computationnelles. Les graphiques intégrés facilitent la visualisation et la compréhension des données. L'environnement de bureau encourage l'expérimentation, l'exploration et la découverte. Ces outils et fonctionnalités MATLAB sont tous rigoureusement testés et conçus pour fonctionner ensemble.

MATLAB vous aide à donner vie à vos idées au-delà du bureau. Vous pouvez exécuter des explorations sur de grands ensembles de données et évoluer vers des clusters et des clouds. Le code MATLAB peut être intégré à d'autres langages, ce qui vous permet de déployer des algorithmes et des applications sur des systèmes Web, d'entreprise et industriels.

Début des travaux

Apprendre les bases de MATLAB

Bases de la langue

Syntaxe, indexation et traitement de tableaux, types de données, opérateurs

Importer et analyser des données

Importation et exportation de données, y compris de gros fichiers ; prétraitement des données, visualisation et recherche

Mathématiques

Algèbre linéaire, différenciation et intégration, transformées de Fourier et autres mathématiques

Graphique

Graphiques 2D et 3D, images, animations

Programmation

Scripts, fonctions et classes

Création d'applications

Développement d'applications avec App Designer, Programmable Workflow ou GUIDE

Outils de développement logiciel

Débogage et tests, organisation de grands projets, intégration avec le système de contrôle de version, emballage de la boîte à outils

Souvent, lors de l'organisation d'une boucle, il est nécessaire d'itérer sur la valeur du compteur dans une plage de valeurs donnée et avec un pas de changement donné. Par exemple, pour parcourir les éléments d'un vecteur (tableau), vous devez organiser un compteur de 1 à N avec un pas de 1, où N est le nombre d'éléments du vecteur. Pour calculer la somme de la série, un compteur de a à b est également spécifié avec le pas de changement de pas requis. Etc. En raison du fait que de telles tâches sont souvent rencontrées dans la pratique de la programmation, un opérateur de boucle for séparé a été proposé pour leur implémentation, ce qui rend plus facile et plus visuelle l'implémentation d'une boucle avec un compteur.

La syntaxe de l'instruction de boucle for est la suivante :

pour<счетчик> = <начальное значение>:<шаг>:<конечное значение>
<операторы цикла>
finir

Considérons le travail de ce cycle sur l'exemple de la mise en œuvre de l'algorithme de recherche de la valeur maximale d'un élément dans un vecteur :

fonction search_max
un = ;
m = un(1); % valeur maximale actuelle
pour i=1:length(a) % boucle de 1 à la fin du vecteur c
% étape 1 (par défaut)
si m< a(i) % если a(i) >moi,
m = un(i); % alors m = a(i)
finir
fin % fin de la boucle for
affichage(m);

Dans cet exemple, la boucle for définit le compteur i et modifie sa valeur de 1 à 10 par incréments de 1. Notez que si l'incrément n'est pas explicitement spécifié, sa valeur par défaut est 1.

Dans l'exemple suivant, considérons la mise en œuvre de l'algorithme de décalage des éléments vectoriels vers la droite, c'est-à-dire l'avant-dernier élément est mis à la place du dernier, le suivant est mis à la place de l'avant-dernier, et ainsi de suite. au premier élément :

file d'attente de fonctions
un = ;
affichage(a);
pour i=longueur(a):-1:2 % boucle de 10 à 2 avec pas -1
a(i)=a(i-1); % éléments de décalage du vecteur a
fin % fin de la boucle for
affichage(a);

Le résultat du programme

3 6 5 3 6 9 5 3 1 0
3 3 6 5 3 6 9 5 3 1

L'exemple ci-dessus montre que pour implémenter un cycle avec un compteur d'une valeur plus grande à une plus petite, vous devez spécifier explicitement le pas, dans ce cas, -1. Si cela n'est pas fait, la boucle terminera immédiatement son travail et le programme ne fonctionnera pas correctement.

En conclusion, considérons le fonctionnement de l'opérateur de boucle for en utilisant l'exemple de la modélisation d'une séquence aléatoire avec la loi du changement

où - coefficient de -1 à 1 ; - variable aléatoire normale avec une espérance et une variance mathématiques nulles

,

où est la variance du processus aléatoire simulé. Dans ce cas, le premier échantillon est modélisé comme une variable aléatoire normale avec une espérance et une variance mathématiques nulles. Le programme de simulation a la forme suivante :

fonction modélisation_x
r = 0,95 ; % coefficient du modèle
N = 100 ; % nombre de points simulés
ex = 100 ; % d'écart de processus
et = ex*(1-r^2); % variance additive aléatoire
x = zéros(N,1); % initialiser le vecteur x
x(1) = sqrt(ex)*randn ; % simulation du 1er comptage
pour i=2:N % boucle de 2 à N
x(i)=r*x(i-1)+sqrt(et)*randn ; % Simulation JV
fin % fin de boucle
parcelle(x); % d'affichage de SP sous forme de graphique

Lorsque ce programme est exécuté, la mise en œuvre de la séquence aléatoire simulée sera affichée.

Riz. 2.1. Le résultat de la modélisation d'une séquence aléatoire.

Le travail du programme commence par la définition des variables , (variable ex dans le programme) et pour la mise en œuvre du modèle spécifié. Ensuite, la variance est calculée et le premier décompte du processus aléatoire est modélisé à l'aide de la fonction randn. La fonction randn génère des variables aléatoires normales avec une moyenne nulle et une variance unitaire. Pour générer une variable aléatoire de variance, il suffit de multiplier une variable aléatoire de variance unitaire par , car la variance est le carré moyen d'une variable aléatoire par rapport à l'espérance mathématique. En conséquence, nous avons une ligne de programme

x(1) = sqrt(ex)*randn ;

Ensuite, la boucle for est implémentée avec un compteur i de 2 à N avec un pas de 1. A l'intérieur de la boucle, les N-1 échantillons restants du processus aléatoire sont simulés conformément à la formule ci-dessus. La dernière ligne du programme contient la fonction plot(), qui affiche la séquence simulée à l'écran sous forme de graphique. Un travail plus détaillé avec l'affichage de graphiques à l'écran sera abordé dans le chapitre suivant.

boucles et conditions matlab : théorie et exemples

Bonne journée. Aujourd'hui, nous allons parler des boucles et des conditions dans Matlab. Le matériau pris comme base est aider dans Matlab et quelques exemples simples, que nous analyserons avec vous.

Conditions dans MATLAB

Aucun langage de programmation ne peut se passer de telles constructions comme conditions, c'est de cela que nous parlerons :
Commençons par la syntaxe de la condition si et regardez la version formelle de l'entrée dans l'aide :

Si expression, instructions, fin

Que signifie :

Si Condition, Action, fin

Maintenant exemples :

x=1 ; y=61 ; si ((x >= 0.90) && (y >= 60)) disp("ok"); finir;

&& - opérateur de multiplication logique ("ET" logique).
Et voici un exemple avec autre:

x=1 ; y=50 ; si ((x >= 0.90) && (y >= 60)) disp("ok"); sinon disp("pas juste") end;

Contrairement au 1er exemple, "not right" sera affiché ici.
Quelques mots sur changer. Formellement dans l'aide :

Syntaxe switch switch_expr case case_expr instruction, ..., instruction case (case_expr1, case_expr2, case_expr3, ...) instruction, ..., instruction else instruction, ..., instruction end

Plus terre à terre :

Syntaxe switch switch_expr case Valeur - 1 Action case (Valeur - 2, Valeur - 3, Valeur - 4, ...) Action Sinon Action end

Cela signifie que si la variable donnée est égale à la valeur dans valeur de cas - 1, l'action est effectuée lorsque valeur de cas - 1 etc. Si aucun de Cas ne correspondait pas, l'action est exécutée lorsque Par ailleurs.
Voici un exemple:

Méthode = "Bilinéaire" ; switch lower(method) case ("linear","bilinéaire") disp("La méthode est linéaire") case "cubique" disp("La méthode est cubique") case "le plus proche" disp("La méthode est la plus proche") sinon disp( "Méthode inconnue.") fin

Boucles dans MATLAB

Passons maintenant aux cycles, en commençant par pour.
Ceci est écrit dans le manuel comme

Syntaxe des instructions de programme index = valeurs : fin

En termes simples, cela signifie :

Syntaxe pour variable = valeur action end

On ne s'attardera pas sur la formulation officielle, mieux vaut comprendre et privilégier les exemples.

Pour m = 1:10 m fin

Voici à quoi ressemble l'utilisation la plus courante pour. Dans cette boucle, nous sortons simplement la valeur de m.
La deuxième façon en utilisant l'étape ( étape)

Pour s = 1.0 : -0.1 : 0.0 affichage(s) fin

Dans ce cas, le cycle pour passe de 1 à 0 par pas de -0,1.
Une autre option:

Pour s = affichage(s) fin

Dans ce cas, la variable s seront séquentiellement assimilés à 1, 5, 8, 17 et sortis en conséquence.
Et aussi avec pour très pratique pour générer des vecteurs. Ici:

Pour e = eye(5) disp("Valeur actuelle de e :") disp(e) end

Dans cet exemple, il y a un accès séquentiel aux éléments du vecteur e.

Cycle tandis que:
Formellement dans l'aide :

Syntaxe while expression instructions du programme : end

Fondé:

Syntaxe tant que l'action de condition se termine

Et prenons tout de suite un exemple (comment il est utilisé dans la vraie vie).

Eps = 10 ; tandis que eps > 1 eps = eps - 1 fin

Dans l'état ( ep > 1) est exécuté, la boucle effectue l'action

(eps=eps-1).
également dans l'état tandis que vous pouvez utiliser les opérateurs ET logiques - && et OU - || , en écrivant plusieurs expressions booléennes dans la condition.

Si vous avez des questions sur l'article, écrivez dans les commentaires.

codetown.com

Pour, tandis que les boucles dans Matlab (Matlab)

L'instruction for est conçue pour effectuer un nombre donné d'actions répétitives. L'utilisation la plus simple de l'instruction for est la suivante :

pour count = start:step:finalCommandes MatLabfinir

Ici, count est une variable de boucle, start est sa valeur initiale, final est sa valeur finale et step est le pas par lequel count est incrémenté à chaque fois qu'il entre dans la boucle. La boucle se termine dès que la valeur de count devient supérieure à final. La variable de boucle peut prendre non seulement des nombres entiers, mais également des valeurs réelles de n'importe quel signe

La boucle for est utile pour effectuer des actions similaires répétées lorsque leur nombre est prédéterminé. Une boucle while plus flexible permet de contourner cette limitation.

condition de boucle whileCommandes MatLabfinir

62. Quelle équipe crée un M-book dans un éditeur de texte Mot associé à matlab?

Commencer un nouveau M-book Pour commencer à écrire un nouveau M-book, vous devez : 1) lancer l'éditeur Word ; 2) sélectionner dans la boîte de dialogue Mot option Nouvelle du menu fichier; 3) dans la fenêtre qui apparaît à l'écran, sélectionnez le modèle M-book. À la suite de ces actions, le système démarrera MatLAB, et la vue du menu principal de l'éditeur Word changera quelque peu - un nouveau menu y apparaîtra carnet. Cela indiquera que Mot système attaché MatLAB. Si vous utilisez maintenant la souris pour activer le menu carnet la fenêtre Mot, un menu supplémentaire apparaît à l'écran

63. Quelle commande de l'éditeur de texte Word convertit le texte en une cellule d'entrée MatLab ?

choisir une équipe Définir la cellule d'entrée(Définir la cellule d'entrée) dans le menu carnet(voir Fig. 3.20), ou appuyez sur les touches ; après cela, l'apparence de la ligne de commande devrait changer - les caractères de la commande deviennent vert foncé et la commande est entourée de crochets gris foncé ;@

64. Quelle commande de l'éditeur de texte Word assure l'exécution de la commande MatLab dans une cellule ?

sélectionnez la commande Évaluer la cellule avec la souris ou appuyez sur une combinaison de touches ; le résultat de ces actions doit être l'apparition immédiatement après le texte de la commande des résultats de son exécution par le système MatLAB. Les résultats de l'exécution de la commande sont affichés en bleu et entre crochets.

65. Quelle commande de l'éditeur de texte Word assure l'exécution des commandes MatLab dans tout le M-book ?

L'exécution des commandes pour toutes les cellules ou groupes de cellules dans l'entrée de section est effectuée à l'aide de l'élément Évaluer la zone de calcul et de l'ensemble du M-book à la fois - Évaluer le M-book

66. Quelle commande de l'éditeur de texte Word assure l'exécution automatique des commandes MatLab dans toutes les cellules lors de l'ouverture d'un M-book ?

Les commandes pour les cellules qui ont le style AutoInnit s'exécutent immédiatement après l'ouverture du M-book. Il est utile d'inclure une commande clear dans la première de ces cellules pour effacer l'environnement de travail. Pour définir le style AutoInit, utilisez l'élément Define Autoinit Cell du menu Notebook.

67. Quels boutons le panneau Excel Link contient-il dans une feuille de calcul Excel lorsqu'ils sont liés à MatLab ?

68. Que fournit la commande putmatrix ?

La fonction MLPutMatrix est utilisée pour placer les données des cellules d'une feuille de calcul Excel dans un tableau de l'espace de travail Matlab. Les arguments de cette fonction sont le nom de la variable, entre guillemets, et la plage de cellules Excel liée à cette variable

68. Que fournit la commande getmatrix ?

L'opération inverse est effectuée par la fonction MLGetMatrix, tandis que les arguments de cette fonction sont le nom de la variable d'environnement de travail MatLab avec 22 données, entre guillemets, et la plage de cellules Excel où les données de cette variable seront placées, également entre guillemets.

70. A quoi sert le package Simulink ?

Le système Matlab comprend un package pour la modélisation de systèmes dynamiques - Simulink. Ce progiciel est le cœur d'un progiciel interactif conçu pour la modélisation mathématique des systèmes dynamiques linéaires et non linéaires, représenté par son schéma fonctionnel, appelé le modèle S ou simplement le modèle

71. Quelle bibliothèque Simulink contient des sources de signal ?

Construisons le modèle le plus simple de la source d'un signal sinusoïdal, qui est envoyé à l'entrée d'un oscilloscope virtuel. Pour ce faire, cliquez sur le bouton pour ouvrir le navigateur de la bibliothèque et dans la partie gauche de la fenêtre du navigateur qui apparaît, cliquez sur la section Sources(Sources), tandis que les icônes des blocs inclus dans cette section sont affichées dans la partie droite de la fenêtre

72. Quelle bibliothèque Simulink contient des VIs de journalisation ?

Portée de l'oscilloscope de la section Les puits.

73. Quelle bibliothèque Simulink contient des blocs de différenciation et d'intégration ?

Continu contient des blocs continus. Parmi les plus importants figurent les blocs de différenciation Derivative et Integration Integrator. Le premier bloc effectue une différenciation numérique du signal d'entrée ; aucun paramètre n'est saisi pour ce bloc. Le deuxième bloc de la fenêtre des paramètres contient plusieurs champs dans lesquels vous pouvez définir la constante d'intégration à la sortie du bloc dans le champ Condition initiale

74. Quelle bibliothèque Simulink contient des blocs de calcul de fonctions élémentaires ?

Fenêtre de la bibliothèque Math contient des blocs pour effectuer des opérations mathématiques

Les blocs de calcul des fonctions élémentaires comprennent trois blocs : bloc de fonctions mathématiques Mathune fonction, bloc de fonctions trigonométriques Trigonométriqueune fonction et bloc fonction d'arrondi Fonction d'arrondi.

75. Combien de valeurs de paramètres de pas sont définies dans Simulink lorsque le pas de simulation est variable ?

Deux options du solveur dans le champ Options du solveur sont d'une grande importance : le type de solution et la méthode de résolution. Il y a deux options pour la première option :

Solveurs à pas variable - solution à pas variable ;

Les solveurs à pas fixe sont une solution à pas fixe. Par défaut, l'option de solution à pas variable est activée, lorsque le pas diminue automatiquement avec une augmentation du taux de variation des résultats et vice versa. Cette méthode donne généralement de meilleurs résultats que les simulations à espacement fixe, éliminant les écarts dans la plupart des cas. L'utilisation de la modélisation à pas fixe est généralement utilisée si cela est dû aux spécificités du problème à résoudre.

studfiles.net

for...end loops MatLab

Leçon 20
Outils de programmation de base
Types de données de base
Types de programmation
Dualité des opérateurs, des commandes et des fonctions
Certaines restrictions
Fichiers M pour les scripts et les fonctions
Structure et propriétés des fichiers de script
Statut des variables dans les fonctions
Structure de la fonction de fichier M
Etat variable et la commande globale
Utilisation des sous-fonctions
Annuaires privés
Traitement des erreurs

Affichage des messages d'erreur
La fonction lasterr et la gestion des erreurs
Fonctions d'arguments variables
Fonctions de comptage du nombre d'arguments
Variables varargin et varargout
commentaires
Caractéristiques de l'exécution de m-fichiers de fonctions
Création de codes P
Structures de contrôle
Entrée de dialogue
Opérateur conditionnel
pour...fin des boucles
boucles comme while...end
Conception de commutateur
essayer... attraper... terminer la construction
Création d'une pause dans les calculs
Le concept de programmation orientée objet
Créer une classe ou un objet
Vérifier si un objet appartient à une classe donnée
Autres fonctionnalités de la programmation orientée objet
Qu'avons-nous appris de nouveau ?

Les boucles for...end sont généralement utilisées pour organiser des calculs avec un nombre donné de boucles répétées. La structure d'un tel cycle est la suivante :

pour vag=Expression. Instruction. .... déclaration de fin

L'expression est le plus souvent écrite sous la forme s:d:e, où s est la valeur initiale de la variable de boucle var, d est l'incrément de cette variable et e est la valeur finale de la variable de contrôle, à laquelle la boucle se termine . Il est aussi possible d'écrire sous la forme s:e (dans ce cas d=l). La liste des instructions exécutées dans la boucle se termine par l'instruction end.

Les exemples suivants illustrent l'utilisation d'une boucle pour obtenir les carrés des valeurs d'une variable de boucle :

» pour 1=1:5 i^2. finir;

» pour x=0:.25:1 X^2, fin :

L'instruction continue transfère le contrôle à l'itération suivante de la boucle, en sautant les instructions qui la suivent, et dans une boucle imbriquée, elle transfère le contrôle à l'itération suivante de la boucle principale. L'instruction break peut être utilisée pour interrompre l'exécution d'une boucle plus tôt. Dès qu'elle se produit dans le programme, la boucle est interrompue. Des boucles imbriquées sont possibles, par exemple :

Suite à l'exécution de ce cycle (fichier for2.m), la matrice A est formée :

Il convient de noter que la formation de matrices à l'aide de l'opérateur : (deux-points) prend généralement beaucoup moins de temps que l'utilisation d'une boucle. Cependant, l'utilisation du cycle est souvent plus claire et compréhensible. MATLAB permet l'utilisation d'un tableau A de taille comme variable de boucle thp. Dans ce cas, la boucle est exécutée autant de fois qu'il y a de colonnes dans le tableau A, et à chaque étape la variable var est un vecteur correspondant à la colonne courante du tableau A :

» A=

» pour var=A ; var, fin

radiomaster.ru

Tutoriel illustré sur MatLab › Les bases de la programmation › Boucles for…end. Boucles comme while...end. [page-364] | Tutoriels pour les packages mathématiques

Boucles comme pour…fin. Boucles comme while...end.

Cycles types pour... fin sont généralement utilisés pour organiser des calculs avec un nombre donné de cycles répétitifs. La structure d'un tel cycle est la suivante :

pour var = Expression. Instruction..... Fin de l'instruction

L'expression est le plus souvent écrite sous la forme s:d:e, où s est la valeur initiale de la variable de boucle var, d est l'incrément de cette variable et e est la valeur finale de la variable de contrôle, à laquelle la boucle se termine. Il est aussi possible d'écrire sous la forme s:e (dans ce cas d=1). La liste des instructions exécutées dans la boucle se termine par l'instruction end.

Les exemples suivants illustrent l'utilisation d'une boucle pour obtenir les carrés des valeurs d'une variable de boucle :

> > pour 1 = 1 : 5 je ^ 2 , fin ;

> > pour x = 0 :. 25:1X^2, fin :

Opérateur Continuez transfère le contrôle à l'itération suivante de la boucle, en sautant les instructions qui la suivent, et dans une boucle imbriquée, il transfère le contrôle à l'itération suivante de la boucle principale. Opérateur Pause peut être utilisé pour terminer prématurément une boucle. Dès qu'elle se produit dans le programme, la boucle est interrompue. Des boucles imbriquées sont possibles, par exemple :

A(1 .j) = je + j ;

Suite à ce cycle (dossier pour2.m) la matrice A est formée :

Il convient de noter que la formation de matrices à l'aide de l'opérateur : (deux-points) prend généralement beaucoup moins de temps que l'utilisation d'une boucle. Cependant, l'utilisation du cycle est souvent plus claire et compréhensible. MATLAB permet l'utilisation d'un tableau A de taille comme variable de boucle thp. Dans ce cas, la boucle est exécutée autant de fois qu'il y a de colonnes dans le tableau A, et à chaque pas la variable var est un vecteur correspondant à la colonne courante du tableau A :

> > UNE = [ 1 2 3 : 4 5 6 ]

> > pour var = A ; var , fin

boucles comme while...end

Type de boucle tandis que exécuté tant que la condition est remplie :

tandis que les déclarations de condition se terminent

Exemple d'application de boucle tandis que a déjà été cité. L'arrêt anticipé des cycles est mis en œuvre à l'aide d'opérateurs Pause ou Continuez.

Conditionnel si instruction

Dans sa forme la plus simple, la syntaxe de cette instruction if est :

si<выражение>
<операторы>
finir

J'attire votre attention sur le fait que, contrairement aux langages de programmation modernes, un tel concept d'opérateur composé n'est pas utilisé. Le bloc de l'instruction conditionnelle se termine nécessairement par le mot de service end.

Voici un exemple d'implémentation de la fonction sign(), qui renvoie +1 si le nombre est supérieur à zéro, -1 si le nombre est inférieur à zéro et 0 si le nombre est zéro :

x=5 ;
si x > 0
affichage(1);
finir
si x< 0
affichage(-1);
finir
si x == 0
affichage(0);
finir

L'analyse de l'exemple donné montre que ces trois conditions sont mutuellement exclusives, c'est-à-dire lorsque l'un d'eux se déclenche, il n'est pas nécessaire de vérifier les autres. La mise en œuvre d'une telle logique augmentera la vitesse d'exécution du programme. Ceci peut être réalisé en utilisant la construction

si<выражение>
<операторы1>% exécuté si la condition est vraie
autre
<операторы2>% exécuté si la condition est fausse
finir

Alors l'exemple ci-dessus peut s'écrire comme suit :

X=5 ;
si x > 0
affichage(1);
autre
si x< 0
affichage(-1);
autre
affichage(0);
finir
finir

Ce programme vérifie d'abord si la variable x est positive, et si c'est le cas, la valeur 1 s'affiche à l'écran et toutes les autres conditions sont ignorées. Si la première condition s'est avérée fausse, alors l'exécution du programme passe autrement (sinon) à la deuxième condition, où la variable x est vérifiée pour la négativité, et si la condition est vraie, la valeur -1 est affichée sur l'écran. Si les deux conditions sont fausses, alors 0 est sorti.

L'exemple ci-dessus peut être écrit sous une forme plus simple en utilisant une autre construction d'instruction if de MatLab :

si<выражение1>
<операторы1>% exécuté si expression1 est vrai
sinon si<выражение2>
<операторы2>% exécuté si expression2 est vrai
...
sinon si<выражениеN>
<операторыN>% exécuté si expressionN est vrai
finir

et s'écrit comme suit :

x=5 ;
si x > 0
affichage(1); % est exécuté si x > 0
sinon si x< 0
affichage(-1); % est exécuté si x< 0
autre
affichage(0); % est exécuté si x = 0
finir

Avec l'instruction if, vous pouvez tester des conditions plus complexes (composées). Par exemple, vous devez déterminer : la variable x se situe-t-elle dans la plage de valeurs de 0 à 2 ? Cela peut être fait en vérifiant simultanément deux conditions à la fois : x >= 0 et x<=2. Если эти оба условия истинны, то x попадает в диапазон от 0 до 2.

Pour implémenter des conditions composées dans MatLab, des opérateurs logiques sont utilisés :

& - ET logique
| - OU logique
~ - NON logique

Examinons un exemple d'utilisation de conditions composées. Soit demandé de vérifier si la variable x est comprise entre 0 et 2. Le programme s'écrira comme suit :

x = 1 ;
si x >= 0 & x<= 2
autre
finir

Dans le deuxième exemple, nous allons vérifier si la variable x n'appartient pas à la plage de 0 à 2. Ceci est réalisé en déclenchant l'une des deux conditions : x< 0 или x > 2:

x = 1 ;
si x< 0 | x > 2
disp("x n'est pas compris entre 0 et 2");
autre
disp("x est compris entre 0 et 2");
finir

En utilisant les opérateurs logiques AND, OR, NOT, vous pouvez créer une variété de conditions composées. Par exemple, vous pouvez vérifier que la variable x est dans la plage de -5 à 5, mais pas dans la plage de 0 à 1. Évidemment, cela peut être implémenté comme suit :

x = 1 ;
si (x >= -5 & x<= 5) & (x < 0 | x > 1)
disp("x appartient à [-5, 5] mais n'est pas dans ");
autre
disp("x n'est pas dans [-5, 5] ou dans ");
finir

Notez que les parenthèses ont été utilisées dans la condition composée complexe. Le fait est que la priorité de l'opération ET est supérieure à la priorité de l'opération OU, et s'il n'y avait pas de parenthèses, alors la condition ressemblerait à ceci : (x >= -5 et x<= 5 и x < 0) или x >1. Évidemment, un tel contrôle donnerait un résultat différent de celui attendu.

Les parenthèses en programmation sont utilisées pour modifier la priorité d'exécution des instructions. Comme les opérateurs arithmétiques, les opérateurs logiques peuvent également être modifiés à la volonté du programmeur. Grâce à l'utilisation des parenthèses, la vérification s'effectue d'abord à l'intérieur de celles-ci, puis à l'extérieur. C'est pourquoi, dans l'exemple ci-dessus, ils sont nécessaires pour obtenir le résultat souhaité.

La priorité des opérations logiques est la suivante :

NOT (~) - la priorité la plus élevée ;
Et (&) - priorité moyenne ;
OU (|) est la priorité la plus basse.

instruction de boucle while

Le langage de programmation MatLab a deux instructions de boucle : while et for. Avec leur aide, par exemple, la programmation d'algorithmes récurrents, le calcul de la somme d'une série, l'énumération d'éléments de tableau et bien plus encore sont effectués.

Dans le cas le plus simple, la boucle du programme est organisée à l'aide de l'instruction while, dont la syntaxe est la suivante :

tandis que<условие>
<операторы>
finir

Ici<условие>signifie une expression conditionnelle comme celle utilisée dans une instruction if, et la boucle while s'exécute tant que la condition est vraie.

Notez que si la condition est fausse avant le début de la boucle, les instructions de la boucle ne seront jamais exécutées.

Voici un exemple de boucle while pour calculer la somme d'une série :


je=1 ; % compteur total
alors que je<= 20 % цикл (работает пока i <= 20)

fin % fin de boucle
affichage(S); % affiche la somme 210 à l'écran

Maintenant, nous allons compliquer la tâche et nous allons calculer la somme de la série , tandis que . Ici, deux conditions sont obtenues dans l'instruction de boucle : soit le compteur pour i atteint 20, soit la valeur de la somme S dépasse 20. Cette logique peut être implémentée à l'aide d'une expression conditionnelle composée dans l'instruction de boucle while :

S = 0 ; % valeur de la somme initiale
je=1 ; % compteur total
alors que je<= 20 & S <= 20 % цикл (работает пока i<=10 и S<=20
S=S+i ; % montant compté
je=je+1 ; % incrémenter le compteur de 1
fin % fin de boucle

L'exemple ci-dessus montre la possibilité d'utiliser des conditions composées dans une boucle while. En général, en tant qu'expression conditionnelle, vous pouvez écrire les mêmes conditions que dans l'instruction conditionnelle if.

Le travail de tout opérateur de boucle, y compris while, peut être interrompu de force à l'aide de l'instruction break. Par exemple, le programme précédent pourrait être réécrit comme suit en utilisant l'instruction break :

S = 0 ; % valeur de la somme initiale
je=1 ; % compteur total
alors que je<= 20 % цикл (работает пока i<=10
S=S+i ; % montant compté
je=je+1 ; % incrémenter le compteur de 1
si S > 20 % si S > 20,
Pause; % puis la boucle se termine
finir
fin % fin de boucle
affichage(S); % affiche la somme de 21 à l'écran

Dans cet exemple, la deuxième condition pour terminer la boucle, lorsque S est supérieur à 20, est écrite dans la boucle elle-même et, à l'aide de l'instruction break, la boucle est quittée vers la fonction disp() immédiatement après la boucle while.

Le deuxième opérateur de contrôle d'exécution de boucle continue vous permet de sauter l'exécution du fragment de programme qui le suit. Par exemple, vous voulez calculer la somme des éléments d'un tableau

un = ;

en excluant l'élément à l'indice 5. Un tel programme peut s'écrire comme suit :

S = 0 ; % valeur de la somme initiale
un = ; % déployer
je=0 ; % nombre d'index de tableau
alors que je< length(a) % цикл (работает пока i меньше
% longueur du tableau a)
je=je+1 ; % incrémente le compteur d'index de 1
si je == 5% si l'indice est 5
Continuez; % alors on ne le calcule pas
finir
S=S+a(i); % somme des éléments comptés
fin % fin de boucle
affichage(S); % affiche la somme 40 à l'écran

Il est à noter que dans ce programme l'indice du tableau i est incrémenté avant que la condition ne soit vérifiée. Ceci est fait pour que la valeur de l'index augmente de 1 à chaque itération de la boucle. Si l'incrément du compteur i s'écrit comme dans les exemples précédents, c'est-à-dire une fois la somme calculée, l'instruction continue entraînerait l'arrêt de sa valeur à 5 et la boucle while s'exécuterait "pour toujours".

pour l'instruction de la boucle

Souvent, lors de l'organisation d'une boucle, il est nécessaire d'itérer sur la valeur du compteur dans une plage de valeurs donnée et avec un pas de changement donné. Par exemple, pour parcourir les éléments d'un vecteur (tableau), vous devez organiser un compteur de 1 à N avec un pas de 1, où N est le nombre d'éléments du vecteur. Pour calculer la somme de la série, un compteur de a à b est également spécifié avec le pas de changement de pas requis. Etc. En raison du fait que de telles tâches sont souvent rencontrées dans la pratique de la programmation, un opérateur de boucle for séparé a été proposé pour leur implémentation, ce qui rend plus facile et plus visuelle l'implémentation d'une boucle avec un compteur.

La syntaxe de l'instruction de boucle for est la suivante :

pour<счетчик> = <начальное значение>:<шаг>:<конечное значение>
<операторы цикла>
finir

Considérons le travail de ce cycle sur l'exemple de la mise en œuvre de l'algorithme de recherche de la valeur maximale d'un élément dans un vecteur :

un = ;
m = un(1); % valeur maximale actuelle
pour i=1:length(a) % boucle de 1 à la fin du vecteur c
% étape 1 (par défaut)
si m< a(i) % если a(i) >moi,
m = un(i); % alors m = a(i)
finir
fin % fin de la boucle for
affichage(m);

Dans cet exemple, la boucle for définit le compteur i et modifie sa valeur de 1 à 10 par incréments de 1. Notez que si l'incrément n'est pas explicitement spécifié, sa valeur par défaut est 1.

Dans l'exemple suivant, considérons la mise en œuvre de l'algorithme de décalage des éléments vectoriels vers la droite, c'est-à-dire l'avant-dernier élément est mis à la place du dernier, le suivant est mis à la place de l'avant-dernier, et ainsi de suite. au premier élément :

un = ;
affichage(a);
pour i=longueur(a):-1:2 % boucle de 10 à 2 avec pas -1
a(i)=a(i-1); % éléments de décalage du vecteur a
fin % fin de la boucle for
affichage(a);

Le résultat du programme

3 6 5 3 6 9 5 3 1 0
3 3 6 5 3 6 9 5 3 1

L'exemple ci-dessus montre que pour implémenter un cycle avec un compteur d'une valeur plus grande à une plus petite, vous devez spécifier explicitement le pas, dans ce cas, -1. Si cela n'est pas fait, la boucle terminera immédiatement son travail et le programme ne fonctionnera pas correctement.

Solutions d'équation