Bienvenue dans Nelson : un langage de calcul numérique de haut niveau inspiré de MATLAB(c)/Octave et conçu pour un travail d’ingénierie et scientifique rapide et productif.
Ce guide vous propose un chemin rapide de l’installation à l’exécution de vos premières commandes, l’écriture de scripts, le tracé de graphiques et la recherche d’aide. Il est destiné aux nouveaux utilisateurs qui souhaitent un démarrage rapide et quelques exemples prêts à l’emploi.
Ce tutoriel est organisé en courtes leçons que vous pouvez suivre dans le REPL ou en exécutant de petits fichiers de script.
Nelson est un langage de calcul numérique de haut niveau dont le type de données central est le tableau (vecteurs et matrices). Comme MATLAB, Nelson met l’accent sur l’informatique interactive, la visualisation et le prototypage rapide. Ce tutoriel vous aide à apprendre l’essentiel : utilisation du REPL, opérations mathématiques de base, tracés, tableaux, scripts et constructions de programmation simples.
nmm).nh5, .mat)Cette session rapide montre comment démarrer, effectuer des calculs simples et quitter.
Ouvrez un terminal (PowerShell sous Windows, bash/zsh sous Unix) et lancez :
nelson
Vous verrez une invite. Cette invite accepte des expressions Nelson.
À l’invite, essayez :
a = 1 + 2 * 3
b = sin(pi/4)
Si vous n’affectez pas de variable, les résultats sont stockés dans la variable par défaut ans.
Tapez :
quit
ou utilisez le raccourci du REPL pour quitter.
Les variables sont créées par affectation :
x = 2*pi
v = [1, 2, 3]
Nelson utilise des crochets pour les vecteurs et des points-virgules pour séparer les lignes dans les matrices :
A = [1 2; 3 4]
La réaffectation est autorisée. Pour empêcher l’affichage immédiat, terminez une instruction par ; :
t = 5;
Les fautes de frappe produisent une erreur — utilisez la flèche haut pour rappeler les commandes précédentes, éditez-les et relancez.
Utilisez des parenthèses pour contrôler la priorité :
(1+2)*3 % donne 9
1+2*3 % donne 7
Commandes utiles :
clear — supprimer toutes les variableswho — lister les noms de variableswhos — liste détaillée (taille, type)save('s.nh5') — sauvegarder l’espace de travail (HDF5 .nh5 par défaut)load('s.nh5') — restaurer l’espace de travailEnregistrez toutes les entrées/sorties avec :
diary('session.txt')
diary off
Nelson fournit un riche ensemble de fonctions mathématiques : sin, cos, tan, exp, log, sqrt, abs, et plus encore. Des constantes telles que pi, Inf et NaN sont disponibles.
Exemples :
y = exp(-5)*sin(2) + 10*sqrt(8)
log(142)
sin(pi/4)
Pour tracer des données, préparez des vecteurs x et y puis appelez plot :
x = linspace(0, 2*pi, 201)
y = sin(x)
plot(x, y)
xlabel('x')
ylabel('sin(x)')
title('Sine')
Jeux de données multiples :
plot(x, 2*cos(x), '--', x, cos(x), '-', x, 0.5*cos(x), ':')
legend('2*cos(x)', 'cos(x)', '0.5*cos(x)')
Les styles de lignes, couleurs et marqueurs suivent des codes courts courants : r, b, k, --, :, o, *, etc.
Vecteur ligne :
v = [1 4 7 10]
Vecteur colonne :
w = [1; 4; 7; 10]
Transposé :
w = v'
Indexation et sous-matrices :
v(1:3) % éléments 1 à 3
A(2,:) % deuxième ligne
A(:,2:3) % colonnes 2 et 3
Opérateur deux-points et linspace :
0:0.1:5
linspace(0, 2*pi, 101)
A * BA .* BUtilisez le préfixe . pour les opérateurs élément-par-élément : .*, ./, .^ quand nécessaire.
Résoudre Ax = b avec l’opérateur antislash (préféré pour la stabilité numérique) :
x = A \ b
Vous pouvez aussi calculer inv(A)*b mais l’utilisation de A\b est généralement recommandée.
Créez des fichiers de script (par exemple example1.m) contenant une séquence de commandes. Exécutez-les avec :
nelson -f example1.m
Exemple de script simple (enregistrer sous example1.m) :
% example1.m
A = [1 2 3; 3 3 4; 2 3 3];
b = [1; 1; 2];
x = A \ b
Les variables créées dans un script sont placées dans l’espace de travail global (Attention aux possibles effets de bord).
Les fonctions possèdent leur propre espace de travail local et évitent de polluer l’espace global. Exemple de fichier de fonction fact.m :
function f = factorial(n)
% FACTORIAL(n) Calculer la factorielle en utilisant prod
f = prod(1:n);
end
Appelez avec factorial(5) pour obtenir 120.
Interrogez l’utilisateur dans un script avec input(...) et formatez la sortie avec printf/disp ou équivalents disponibles dans Nelson.
If structure :
if expr
statements
elseif expr2
statements
else
statements
end
Boucle for :
for i = 1:5
s = i*i
end
Boucle while :
while x <= 10
x = 3*x
end
Comparaisons : >, <, >=, <=, ==, ~=
Logiques : &, |, ~ (élément-par-élément) et &&, || (court-circuit là où supporté)
Cette liste courte rassemble les commandes les plus fréquemment utilisées.
Général
quit — quitter Nelsondoc <command> — afficher l’aide pour une commandeEspace de travail et fichiers
clear, who, whos, save('file.nh5'), load('file.nh5'), diary('session.txt')Tableaux et matrices
:, linspace(a,b,n), zeros(m,n), ones(m,n), eye(n)Algèbre linéaire
A\b résoudre, inv(A), det(A), eig(A), rank(A)Tracés
plot(x,y), xlabel(), ylabel(), legend(), title(), axis()Bon calcul avec Nelson !