Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> MATLAB

MATLAB - Álgebra

Hasta ahora hemos visto que todos los ejemplos funcionan tanto en MATLAB como en su GNU, alternativamente llamado Octave. Pero para resolver ecuaciones algebraicas básicas, tanto MATLAB como Octave son un poco diferentes, por lo que intentaremos cubrir MATLAB y Octave en secciones separadas.

También discutiremos la factorización y la simplificación de expresiones algebraicas.

Resolver ecuaciones algebraicas básicas en MATLAB

La resolución La función se utiliza para resolver ecuaciones algebraicas. En su forma más simple, la función de resolución toma la ecuación entre comillas como argumento.

Por ejemplo, resolvamos x en la ecuación x-5 =0

solve('x-5=0')

MATLAB ejecutará la instrucción anterior y devolverá el siguiente resultado −

ans =
   5

También puede llamar a la función de resolución como −

y = solve('x-5 = 0')

MATLAB ejecutará la instrucción anterior y devolverá el siguiente resultado −

y =
   5

Incluso puede que no incluyas el lado derecho de la ecuación −

solve('x-5')

MATLAB ejecutará la instrucción anterior y devolverá el siguiente resultado −

ans =
   5

Si la ecuación involucra múltiples símbolos, entonces MATLAB asume por defecto que está resolviendo para x, sin embargo, la función de resolución tiene otra forma −

solve(equation, variable)

donde, también puedes mencionar la variable.

Por ejemplo, resolvamos la ecuación v – u – 3t 2 =0, para v. En este caso, deberíamos escribir −

solve('v-u-3*t^2=0', 'v')

MATLAB ejecutará la instrucción anterior y devolverá el siguiente resultado −

ans =
   3*t^2 + u

Resolver ecuaciones algebraicas básicas en octava

Las raíces La función se usa para resolver ecuaciones algebraicas en Octave y puede escribir los ejemplos anteriores de la siguiente manera −

Por ejemplo, resolvamos x en la ecuación x-5 =0

Demostración en vivo
roots([1, -5])

Octave ejecutará la instrucción anterior y devolverá el siguiente resultado −

ans = 5

También puede llamar a la función de resolución como −

Demostración en vivo
y = roots([1, -5])

Octave ejecutará la instrucción anterior y devolverá el siguiente resultado −

y = 5

Resolver ecuaciones cuadráticas en MATLAB

La resolución La función también puede resolver ecuaciones de orden superior. A menudo se utiliza para resolver ecuaciones cuadráticas. La función devuelve las raíces de la ecuación en una matriz.

El siguiente ejemplo resuelve la ecuación cuadrática x 2 -7x +12 =0. Cree un archivo de script y escriba el siguiente código −

eq = 'x^2 -7*x + 12 = 0';
s = solve(eq);
disp('The first root is: '), disp(s(1));
disp('The second root is: '), disp(s(2));

Cuando ejecuta el archivo, muestra el siguiente resultado −

The first root is: 
   3
The second root is: 
   4

Resolver ecuaciones cuadráticas en octava

El siguiente ejemplo resuelve la ecuación cuadrática x 2 -7x +12 =0 en octava. Cree un archivo de script y escriba el siguiente código −

Demostración en vivo
s = roots([1, -7, 12]);

disp('The first root is: '), disp(s(1));
disp('The second root is: '), disp(s(2));

Cuando ejecuta el archivo, muestra el siguiente resultado −

The first root is: 
   4
The second root is: 
   3

Resolver ecuaciones de orden superior en MATLAB

La resolución La función también puede resolver ecuaciones de orden superior. Por ejemplo, resolvamos una ecuación cúbica como (x-3) 2 (x-7) =0

solve('(x-3)^2*(x-7)=0')

MATLAB ejecutará la instrucción anterior y devolverá el siguiente resultado −

ans =
   3
   3
   7

En el caso de ecuaciones de orden superior, las raíces son largas y contienen muchos términos. Puede obtener el valor numérico de dichas raíces convirtiéndolas al doble. El siguiente ejemplo resuelve la ecuación de cuarto orden x 4 − 7x 3 + 3x 2 − 5x + 9 =0.

Cree un archivo de script y escriba el siguiente código −

eq = 'x^4 - 7*x^3 + 3*x^2 - 5*x + 9 = 0';
s = solve(eq);
disp('The first root is: '), disp(s(1));
disp('The second root is: '), disp(s(2));
disp('The third root is: '), disp(s(3));
disp('The fourth root is: '), disp(s(4));

% converting the roots to double type
disp('Numeric value of first root'), disp(double(s(1)));
disp('Numeric value of second root'), disp(double(s(2)));
disp('Numeric value of third root'), disp(double(s(3)));
disp('Numeric value of fourth root'), disp(double(s(4)));

Cuando ejecuta el archivo, devuelve el siguiente resultado −

The first root is: 
6.630396332390718431485053218985
 The second root is: 
1.0597804633025896291682772499885
 The third root is: 
- 0.34508839784665403032666523448675 - 1.0778362954630176596831109269793*i
 The fourth root is: 
- 0.34508839784665403032666523448675 + 1.0778362954630176596831109269793*i
Numeric value of first root
   6.6304
Numeric value of second root
   1.0598
Numeric value of third root
   -0.3451 - 1.0778i
Numeric value of fourth root
   -0.3451 + 1.0778i

Tenga en cuenta que las dos últimas raíces son números complejos.

Resolver ecuaciones de orden superior en octava

El siguiente ejemplo resuelve la ecuación de cuarto orden x 4 − 7x 3 + 3x 2 − 5x + 9 =0.

Cree un archivo de script y escriba el siguiente código −

Demostración en vivo
v = [1, -7,  3, -5, 9];
s = roots(v);

% converting the roots to double type
disp('Numeric value of first root'), disp(double(s(1)));
disp('Numeric value of second root'), disp(double(s(2)));
disp('Numeric value of third root'), disp(double(s(3)));
disp('Numeric value of fourth root'), disp(double(s(4)));

Cuando ejecuta el archivo, devuelve el siguiente resultado −

Numeric value of first root
 6.6304
Numeric value of second root
-0.34509 + 1.07784i
Numeric value of third root
-0.34509 - 1.07784i
Numeric value of fourth root
 1.0598

Sistema de Resolución de Ecuaciones en MATLAB

La resolución La función también se puede usar para generar soluciones de sistemas de ecuaciones que involucran más de una variable. Tomemos un ejemplo simple para demostrar este uso.

Resolvamos las ecuaciones −

5x + 9y =5

3x – 6y =4

Cree un archivo de script y escriba el siguiente código −

s = solve('5*x + 9*y = 5','3*x - 6*y = 4');
s.x
s.y

Cuando ejecuta el archivo, muestra el siguiente resultado −

ans =
   22/19
ans =
   -5/57

De la misma manera, puedes resolver sistemas lineales más grandes. Considere el siguiente conjunto de ecuaciones −

x + 3y -2z =5

3x + 5y + 6z =7

2x + 4y + 3z =8

Sistema de Resolución de Ecuaciones en Octava

Tenemos un enfoque un poco diferente para resolver un sistema de 'n' ecuaciones lineales en 'n' incógnitas. Tomemos un ejemplo simple para demostrar este uso.

Resolvamos las ecuaciones −

5x + 9y =5

3x – 6y =4

Tal sistema de ecuaciones lineales se puede escribir como la ecuación matricial única Ax =b, donde A es la matriz de coeficientes, b es el vector columna que contiene el lado derecho de las ecuaciones lineales y x es el vector columna que representa la solución como se muestra en el siguiente programa −

Cree un archivo de script y escriba el siguiente código −

Demostración en vivo
A = [5, 9; 3, -6];
b = [5;4];
A \ b

Cuando ejecuta el archivo, muestra el siguiente resultado −

ans =

   1.157895
  -0.087719

De la misma manera, puede resolver sistemas lineales más grandes como se indica a continuación −

x + 3y -2z =5

3x + 5y + 6z =7

2x + 4y + 3z =8

Expansión y recopilación de ecuaciones en MATLAB

El expandir y el recoger la función expande y recoge una ecuación respectivamente. El siguiente ejemplo demuestra los conceptos −

Cuando trabaja con muchas funciones simbólicas, debe declarar que sus variables son simbólicas.

Cree un archivo de script y escriba el siguiente código −

syms x   %symbolic variable x
syms y   %symbolic variable x
% expanding equations
expand((x-5)*(x+9))
expand((x+2)*(x-3)*(x-5)*(x+7))
expand(sin(2*x))
expand(cos(x+y))
 
% collecting equations
collect(x^3 *(x-7))
collect(x^4*(x-3)*(x-5))

Cuando ejecuta el archivo, muestra el siguiente resultado −

ans =
   x^2 + 4*x - 45
ans =
   x^4 + x^3 - 43*x^2 + 23*x + 210
ans =
   2*cos(x)*sin(x)
ans =
   cos(x)*cos(y) - sin(x)*sin(y)
ans =
   x^4 - 7*x^3
ans =
   x^6 - 8*x^5 + 15*x^4

Expansión y recopilación de ecuaciones en octava

Necesitas tener simbólico paquete, que proporciona expand y el recoger para expandir y recopilar una ecuación, respectivamente. El siguiente ejemplo demuestra los conceptos −

Cuando trabaja con muchas funciones simbólicas, debe declarar que sus variables son simbólicas, pero Octave tiene un enfoque diferente para definir variables simbólicas. Note el uso de Sin y porque , que también se definen en el paquete simbólico.

Cree un archivo de script y escriba el siguiente código −

% first of all load the package, make sure its installed.
pkg load symbolic

% make symbols module available
symbols

% define symbolic variables
x = sym ('x');
y = sym ('y');
z = sym ('z');

% expanding equations
expand((x-5)*(x+9))
expand((x+2)*(x-3)*(x-5)*(x+7))
expand(Sin(2*x))
expand(Cos(x+y))
 
% collecting equations
collect(x^3 *(x-7), z)
collect(x^4*(x-3)*(x-5), z)

Cuando ejecuta el archivo, muestra el siguiente resultado −

ans =

-45.0+x^2+(4.0)*x
ans =

210.0+x^4-(43.0)*x^2+x^3+(23.0)*x
ans =

sin((2.0)*x)
ans =

cos(y+x)
ans =

x^(3.0)*(-7.0+x)
ans =

(-3.0+x)*x^(4.0)*(-5.0+x)

Factorización y Simplificación de Expresiones Algebraicas

El factor función factoriza una expresión y el simplificar función simplifica una expresión. El siguiente ejemplo demuestra el concepto −

Ejemplo

Cree un archivo de script y escriba el siguiente código −

syms x
syms y
factor(x^3 - y^3)
factor([x^2-y^2,x^3+y^3])
simplify((x^4-16)/(x^2-4))

Cuando ejecuta el archivo, muestra el siguiente resultado −

ans =
   (x - y)*(x^2 + x*y + y^2)
ans =
   [ (x - y)*(x + y), (x + y)*(x^2 - x*y + y^2)]
ans =
   x^2 + 4

MATLAB

  1. MATLAB - Descripción general
  2. MATLAB - Sintaxis básica
  3. MATLAB-Variables
  4. MATLAB - Comandos
  5. MATLAB - Tipos de datos
  6. MATLAB - Operadores
  7. MATLAB - Vectores
  8. MATLAB - Matriz
  9. MATLAB - Matrices
  10. MATLAB - Notación de dos puntos
  11. MATLAB-Números