Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> MATLAB

MATLAB - Álgebra


Até agora, vimos que todos os exemplos funcionam tanto no MATLAB quanto em seu GNU, alternativamente chamado de Octave. Mas para resolver equações algébricas básicas, tanto o MATLAB quanto o Octave são um pouco diferentes, então tentaremos cobrir o MATLAB e o Octave em seções separadas.

Também discutiremos a fatoração e simplificação de expressões algébricas.

Resolvendo equações algébricas básicas no MATLAB


A resolver função é usada para resolver equações algébricas. Em sua forma mais simples, a função solve usa a equação entre aspas como argumento.

Por exemplo, vamos resolver para x na equação x-5 =0
solve('x-5=0')

O MATLAB executará a instrução acima e retornará o seguinte resultado -
ans =
   5

Você também pode chamar a função solve como −
y = solve('x-5 = 0')

O MATLAB executará a instrução acima e retornará o seguinte resultado -
y =
   5

Você pode até não incluir o lado direito da equação -
solve('x-5')

O MATLAB executará a instrução acima e retornará o seguinte resultado -
ans =
   5

Se a equação envolve vários símbolos, o MATLAB, por padrão, assume que você está resolvendo para x, no entanto, a função solve tem outra forma -
solve(equation, variable)

onde, você também pode mencionar a variável.

Por exemplo, vamos resolver a equação v – u – 3t 2 =0, para v. Neste caso, devemos escrever −
solve('v-u-3*t^2=0', 'v')

O MATLAB executará a instrução acima e retornará o seguinte resultado -
ans =
   3*t^2 + u

Resolver equações algébricas básicas em oitava


As raízes A função é usada para resolver equações algébricas em Octave e você pode escrever os exemplos acima da seguinte forma −

Por exemplo, vamos resolver para x na equação x-5 =0
Demonstração ao vivo
roots([1, -5])

Octave executará a instrução acima e retornará o seguinte resultado -
ans = 5

Você também pode chamar a função solve como −
Demonstração ao vivo
y = roots([1, -5])

Octave executará a instrução acima e retornará o seguinte resultado -
y = 5

Resolvendo equações quadráticas no MATLAB


A resolver A função também pode resolver equações de ordem superior. É frequentemente usado para resolver equações quadráticas. A função retorna as raízes da equação em uma matriz.

O exemplo a seguir resolve a equação quadrática x 2 -7x +12 =0. Crie um arquivo de script e digite o seguinte 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));

Quando você executa o arquivo, ele exibe o seguinte resultado -
The first root is: 
   3
The second root is: 
   4

Resolver equações quadráticas em oitava


O exemplo a seguir resolve a equação quadrática x 2 -7x +12 =0 em oitava. Crie um arquivo de script e digite o seguinte código -
Demonstração ao vivo
s = roots([1, -7, 12]);

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

Quando você executa o arquivo, ele exibe o seguinte resultado -
The first root is: 
   4
The second root is: 
   3

Resolvendo equações de ordem superior no MATLAB


A resolver A função também pode resolver equações de ordem superior. Por exemplo, vamos resolver uma equação cúbica como (x-3) 2 (x-7) =0
solve('(x-3)^2*(x-7)=0')

O MATLAB executará a instrução acima e retornará o seguinte resultado -
ans =
   3
   3
   7

No caso de equações de ordem superior, as raízes são longas contendo muitos termos. Você pode obter o valor numérico de tais raízes convertendo-as em double. O exemplo a seguir resolve a equação de quarta ordem x 4 − 7x 3 + 3x 2 − 5x + 9 =0.

Crie um arquivo de script e digite o seguinte 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)));

Quando você executa o arquivo, ele retorna o seguinte 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

Observe que as duas últimas raízes são números complexos.

Resolver equações de ordem superior em oitava


O exemplo a seguir resolve a equação de quarta ordem x 4 − 7x 3 + 3x 2 − 5x + 9 =0.

Crie um arquivo de script e digite o seguinte código -
Demonstração ao 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)));

Quando você executa o arquivo, ele retorna o seguinte 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

Resolvendo o sistema de equações no MATLAB


A resolver A função também pode ser usada para gerar soluções de sistemas de equações envolvendo mais de uma variável. Tomemos um exemplo simples para demonstrar esse uso.

Vamos resolver as equações -

5x + 9a =5

3x – 6a =4

Crie um arquivo de script e digite o seguinte código -
s = solve('5*x + 9*y = 5','3*x - 6*y = 4');
s.x
s.y

Quando você executa o arquivo, ele exibe o seguinte resultado -
ans =
   22/19
ans =
   -5/57

Da mesma forma, você pode resolver sistemas lineares maiores. Considere o seguinte conjunto de equações -

x + 3y -2z =5

3x + 5y + 6z =7

2x + 4y + 3z =8

Resolvendo o sistema de equações em oitava


Temos uma abordagem um pouco diferente para resolver um sistema de 'n' equações lineares em 'n' incógnitas. Tomemos um exemplo simples para demonstrar esse uso.

Vamos resolver as equações -

5x + 9a =5

3x – 6a =4

Tal sistema de equações lineares pode ser escrito como a equação de matriz simples Ax =b, onde A é a matriz de coeficientes, b é o vetor coluna contendo o lado direito das equações lineares e x é o vetor coluna representando a solução como mostrado no programa abaixo -

Crie um arquivo de script e digite o seguinte código -
Demonstração ao vivo
A = [5, 9; 3, -6];
b = [5;4];
A \ b

Quando você executa o arquivo, ele exibe o seguinte resultado -
ans =

   1.157895
  -0.087719

Da mesma forma, você pode resolver sistemas lineares maiores como indicado abaixo -

x + 3y -2z =5

3x + 5y + 6z =7

2x + 4y + 3z =8

Expandindo e Coletando Equações no MATLAB


A expandir e a coletar A função expande e coleta uma equação, respectivamente. O exemplo a seguir demonstra os conceitos −

Ao trabalhar com muitas funções simbólicas, você deve declarar que suas variáveis ​​são simbólicas.

Crie um arquivo de script e digite o seguinte 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))

Quando você executa o arquivo, ele exibe o seguinte 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

Expandindo e Coletando Equações em Oitava


Você precisa ter simbólico pacote, que fornece expandir e a coletar função para expandir e coletar uma equação, respectivamente. O exemplo a seguir demonstra os conceitos −

Quando você trabalha com muitas funções simbólicas, você deve declarar que suas variáveis ​​são simbólicas, mas o Octave tem uma abordagem diferente para definir variáveis ​​simbólicas. Observe o uso de Sin e Cos , que também são definidos no pacote simbólico.

Crie um arquivo de script e digite o seguinte 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)

Quando você executa o arquivo, ele exibe o seguinte 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)

Fatoração e simplificação de expressões algébricas


O fator a função fatora uma expressão e a simplifica função simplifica uma expressão. O exemplo a seguir demonstra o conceito -

Exemplo


Crie um arquivo de script e digite o seguinte 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))

Quando você executa o arquivo, ele exibe o seguinte 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 - Visão geral
  2. MATLAB - Sintaxe Básica
  3. MATLAB - Variáveis
  4. MATLAB - Comandos
  5. MATLAB - Tipos de dados
  6. MATLAB - Operadores
  7. MATLAB - Vetores
  8. MATLAB - Matriz
  9. MATLAB - Matrizes
  10. MATLAB - Notação de dois pontos