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]}

Veja também

incidenceMatrix massMatrixForm daeFunction isLowIndexDAE