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