| | | |

Minicurso de C++ para Matemática

Ajude a manter o site livre, gratuito e sem propagandas. Colabore!

4.7 Sistemas lineares

A biblioteca Eigen contém a implementação de métodos de decomposição (LU, QR, SVD) que podem ser usadas para computar a solução de sistemas lineares Ax=b. Por exemplo, no seguinte código computa a solução do sistema

2x1x2=3 (4.19)
x1+3x2=2 (4.20)

usando a o método da decomposição LU com pivotamento parcial.

Código 22: ExSistLin.cpp
1Eigen::MatrixXd m {{2,-1},
2 {1,3}};
3Eigen::VectorXd b {{3,-2}};
4
5std::cout << "x =\n"
6 << m.lu().solve(b) << std::endl;
x =
1
-1
Observação 4.7.1.(Mais sobre sistemas lineares)

Consulte mais sobre sistemas lineares em Eigen::Linear Algebra.

E. 4.7.1.

Considere o seguinte sistema de equações lineares

2x1+3x2+4x3=1 (4.21)
3x14x2+5x3=7 (4.22)
x1+x2x3=0. (4.23)

Escreva um código que aloque a matriz dos coeficientes A e o vetor dos termos constantes b do sistema. Então, compute a solução do sistema usando o método LU com pivotamento parcial.


1#include <iostream>
2#include <eigen3/Eigen/Eigen>
3
4int main()
5{
6 Eigen::MatrixXd a {{2,3,4},
7 {3,-4,5},
8 {1,1,-1}};
9 Eigen::VectorXd b {{-1,7,0}};
10
11 Eigen::VectorXd x = a.lu().solve(b);
12 std::cout << "x =\n" << x << std::endl;
13
14 return 0;
15}

Envie seu comentário

Aproveito para agradecer a todas/os que de forma assídua ou esporádica contribuem enviando correções, sugestões e críticas!

Opcional. Preencha seu nome para que eu possa lhe contatar.
Opcional. Preencha seu e-mail para que eu possa lhe contatar.
As informações preenchidas são enviadas por e-mail para o desenvolvedor do site e tratadas de forma privada. Consulte a política de uso de dados para mais informações.

Licença Creative Commons
Este texto é disponibilizado nos termos da Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional. Ícones e elementos gráficos podem estar sujeitos a condições adicionais.

Pedro H A Konzen
| | | |