27-01-2025 - Computer science basics - Matlab, Symbolic calculus [EN]-[IT]

image.png


~~~ La versione in italiano inizia subito dopo la versione in inglese ~~~


ENGLISH
27-01-2025 - Computer science basics - Matlab, Symbolic calculus [EN]-[IT]
With this post I would like to give a short instruction about the topic mentioned in the subject
(code notes: X_56)

Symbolic calculation

Symbolic calculation in MATLAB is a powerful feature that allows you to manipulate and solve symbolic mathematical expressions, such as integrals, derivatives, equations and linear algebra.
Matlab has a toolbox called Symbolic Math Toolbox that is suitable for symbolic calculation.

To try to do something in Matlab that concerns symbolic calculation we have to tackle the issue in steps.
Below are divided the activities that must be followed to carry out symbolic calculation

1-Creation
The first thing to do is to create symbolic variables.
To do this, type the following command:
syms x y z

With this command, the letters, x, y and z are treated as symbolic variables.

2-Symbolic Derivatives
Now we can start thinking about calculating derivatives of symbolic functions with the diff command:
Here is the Matlab code:

f = x^3 + 2*x^2 - x + 1;
df = diff(f, x); % Derivative of f with respect to x

3-Integrals
In Matlab, integrals (indefinite and definite) are calculated with the int command:
Here is the example of the Matlab code first for the indefinite integral and then the definite one.

Indefinite integral
f = x^2;
F = int(f, x); % Integral of f with respect to x

Definite integral
definite_integral = int(f, x, 0, 2); % Integral of f from 0 to 2

4-Equations
To solve algebraic equations in Matlab we must use the solve command.

Below is an example of a Matlab code that asks for the resolution of an algebraic equation.

eq = x^2 - 4 == 0; % Symbolic equation
solutions = solve(eq, x); % Solve for x

In this case Matlab will give me the solution which will be 2 and -2 and the result will be displayed as follows:

solutions =
2
-2

5-Matrices
We know that Matlab is a very powerful tool for calculating matrices and it also supports symbolic matrices.

Below is the Matlab code for creating a symbolic matrix.
syms a b c d
A = [a b; c d]; % Symbolic matrix
determinant = det(A); % Determinant calculation
inverse = inv(A); % Inverse Calculation

6-Graphs
With Matlab you can draw graphs of symbolic expressions with the fplot command:
Below is a Matlab code that shows an example.
syms x
f = sin(x)*exp(-x);
fplot(f, [0, 10]); % Draw the function in the interval [0, 10]

Exercise

Let's take the following equation E as an example
E = x^4 - 9x^3 + 12x^2 + 7x - 5
Let's now try to express E as a product of polynomials with rational coefficients
Below is the solution.
To express the polynomial E(x) = x^4 - 9x^3 + 12x^2 + 7x - 5 as a product of polynomials with rational coefficients in MATLAB you can use the symbolic function factor
Here is the Matlab code:

% Definition of the symbolic variable
syms x

% Definition of the polynomial E
E = x^4 - 9x^3 + 12x^2 + 7*x - 5;

% Factorization of the polynomial
factors = factor(E);

% Show the result
disp('The factored polynomial E is:')
disp(factors)

% Verify by multiplying the factors
verifica = expand(prod(factors));
disp('Verify (factor expansion):')
disp(verify)

This code basically does the following:
1-Definition of the symbolic variable
2-Definition of the polynomial
3-Factorization of the polynomial
4-Expansion for verification

In the end we will get the one shown below.

The factored polynomial E is:
[ x - 5, x + 1, x^2 - 5*x + 1 ]

So our result, that is the polynomial E(x) was expressed as

image.png

Conclusions
Matlab, is not only a suitable tool for calculating matrices, but it is also very useful for studying functions and algebraic equations.

Question
Did you already know Matlab before? Have you ever tried to do algebraic calculations with Matlab? Have you ever tried to ask Matlab for the result of an equation?



[ITALIAN]
27-01-2025 - Basi di informatica - Matlab, Calcolo simbolico [EN]-[IT]
Con questo post vorrei dare una breve istruzione a riguardo dell’argomento citato in oggetto
(code notes: X_56)

Calcolo simbolico

Il calcolo simbolico in MATLAB è una potente funzionalità che permette di manipolare e risolvere espressioni matematiche simboliche, come integrali, derivate, equazioni e algebra lineare.
Matlab dispone di una toolbox chiamata Symbolic Math Toolbox adatta proprio al calcolo simbolico.

Per provare a fare qualcosa in Matlab che riguarda il calcolo simbolico dobbiamo affrontare la questione in step.
Qui di seguito sono divise le attività che si devono susseguire per realizzare il calcolo simbolico

1-Creazione
La prima cosa da fare è creare variabili simboliche.
Per fare questo digitiamo il seguente comando:
syms x y z

Con questo comando le lettere, x, y e z sono trattate come variabili simboliche.

2-Derivate simboliche
Ora possiamo iniziare a pensare di calcolare derivate di funzioni simboliche con il comando diff:
Qui di seguito il codice Matlab:

f = x^3 + 2*x^2 - x + 1;
df = diff(f, x); % Derivata di f rispetto a x

3-Integrali
In Matlab gli integrali (indefiniti e definiti) si calcolano con il comando int:
Qui di seguito l’esempio del codice Matlab prima per integrale indefinito e poi quello definito.

Integrale indefinito
f = x^2;
F = int(f, x); % Integrale di f rispetto a x

Integrale definito
definite_integral = int(f, x, 0, 2); % Integrale di f da 0 a 2

4-Equazioni
Per risolvere equazioni algebriche in Matlab dobbiamo usare il comando solve.
Qui di seguito l’esempio di un codice Matlab che chiede la risoluzione di un'equazione algebrica.

eq = x^2 - 4 == 0; % Equazione simbolica
solutions = solve(eq, x); % Risolve per x

In questo caso Matlab mi darà la soluzione che sarà 2 e -2 e mi verrà visualizzato il risultato come segue:

solutions =
2
-2

5-Matrici
Sappiamo che Matlab è uno strumento potentissimo per il calcolo di matrici ed esso supporta anche le matrici simboliche.

Qui di seguito il codice Matlab per la creazione di una matrice simbolica.
syms a b c d
A = [a b; c d]; % Matrice simbolica
determinant = det(A); % Calcolo del determinante
inverse = inv(A); % Calcolo dell'inversa

6-Grafici
Con Matlab si possono disegnare grafici di espressioni simboliche con il comando fplot:
Qui di seguito un codice Matlab che riporta un esempio.
syms x
f = sin(x)*exp(-x);
fplot(f, [0, 10]); % Disegna la funzione nell'intervallo [0, 10]

Esercizio

Prendiamo ad esempio la seguente equazione E
E = x^4 - 9x^3 + 12x^2 + 7x - 5
Proviamo ora ad esprimere E come prodotto di polinomi con coefficienti razionali
Qui di seguito lo svolgimento.
Per esprimere il polinomio E(x) = x^4 - 9x^3 + 12x^2 + 7x - 5 come prodotto di polinomi con coefficienti razionali in MATLAB si può utilizzare la funzione simbolica factor
Qui di seguito il codice Matlab:

% Definizione della variabile simbolica
syms x

% Definizione del polinomio E
E = x^4 - 9x^3 + 12x^2 + 7*x - 5;

% Fattorizzazione del polinomio
factors = factor(E);

% Mostra il risultato
disp('Il polinomio E fattorizzato è:')
disp(factors)

% Verifica moltiplicando i fattori
verifica = expand(prod(factors));
disp('Verifica (espansione dei fattori):')
disp(verifica)

Questo codice fondamentalmente esegue le seguenti operazioni:
1-Definizione della variabile simbolica
2-Definizione del polinomio
3-Fattorizzazione del polinomio
4-Espansione per verifica

Alla fine otterremo quello mostrato qui sotto.

Il polinomio E fattorizzato è:
[ x - 5, x + 1, x^2 - 5*x + 1 ]

Quindi il nostro risultato, cioè il polinomio E(x) è stato espresso come

image.png

Conclusioni
Matlab, non solo è uno strumento adatto a calcolare matrici, ma è anche molto utile per studiare funzioni ed equazioni algebriche.

Domanda
Prima d'ora conoscevate già Matlab? Avete mai provato a fare dei calcoli algebrici con Matlab? avete mai provato a chiedere il risultato di un equazione a Matlab?

THE END

Sort:  

This post was shared and voted inside the discord by the curators team of discovery-it
Join our Community and follow our Curation Trail
Discovery-it is also a Witness, vote for us here
Delegate to us for passive income. Check our 80% fee-back Program

I must confess that I always enjoy every of your post and articles surrounding the aspect of computer science. So much to learn and knowledge to pick

With Matlab you can build even complex equations and if you want you can take them and save them to a file. !BEER

"Per me la matematica è diventata incomprensibile quando, oltre ai numeri, hanno iniziato ad aggiungere le lettere" cit. 😂

!discovery 30

Questa citazione è meravigliosa!!!

L'ho sentita in un film ma purtoppo non ricordo quale... però per me è autorevolissima 🤣

Congratulations @stefano.massari! You have completed the following achievement on the Hive blockchain And have been rewarded with New badge(s)

You have been a buzzy bee and published a post every day of the week.

You can view your badges on your board and compare yourself to others in the Ranking
If you no longer want to receive notifications, reply to this comment with the word STOP

But does Matlab sometimes have something to do with none calculative topics?

This is a great question. You know I would answer yes. Matlab also performs functions that are not related to calculation, such as making graphs. You can create graphs of various types, but I wonder if we can consider a graph something that is not a calculation.