findDecoupledBlocks
Divide um sistema de equações em blocos que podem ser resolvidos de forma independente.
Categoria: Mathematics > Equation Solving
Sintaxe
[eqBlocks, varBlocks] = findDecoupledBlocks(eqs, vars)
Retorna os grupos de equações e variáveis que não dependem uns dos outros.
Descrição
A função examina quais variáveis aparecem em quais equações e encontra os grupos conectados. Cada bloco pode ser resolvido por si só, o que reduz sistemas grandes de DAEs ou EDOs a sistemas menores.
Argumentos de entrada
eqs- Vetor de equações nas funções simbólicas
vars. vars- Vetor de funções simbólicas como
[x1(t) x2(t)].
Argumentos de saída
eqBlocks- Cell array; cada célula guarda os índices das equações de um bloco.
varBlocks- Cell array dos índices das variáveis de cada bloco.
Exemplo
Um par acoplado e uma equação isolada
syms x1(t) x2(t) x3(t)
eqs = [x1 + x2 == 1, x1 - x2 == 0, x3 == 2];
[eqb, varb] = findDecoupledBlocks(eqs, [x1 x2 x3]);
eqb
varb
Saída
eqb = 1×2 cell
{[1 2]} {[3]}
varb = 1×2 cell
{[1 2]} {[3]}