odeMassMatrix

Definição de matriz de massa para um objeto ode, em problemas M y' = f(t, y).

Categoria: Other public functions: funfun

Sintaxe

M = odeMassMatrix(MassMatrix=A)

Usa uma matriz constante A como matriz de massa.

M = odeMassMatrix(MassMatrix=fcn, StateDependence=sd)

Usa um function handle para uma matriz de massa que depende do tempo ou do estado.

Descrição

Alguns modelos aparecem naturalmente como M*y' = f(t, y) com uma matriz M à esquerda, por exemplo quando leis de conservação misturam os estados. Passar M permite ao solver tratar essa forma diretamente, sem exigir uma inversa. Quando M é singular, algumas equações são restrições algébricas e o problema é algébrico-diferencial, o que só alguns solvers (como ode15s) aceitam.

Argumentos de entrada

MassMatrix
Matriz quadrada, ou function handle que retorna uma.
Singular
'yes' para um sistema algébrico-diferencial cuja matriz é singular; 'no' por padrão.
StateDependence
'none' (padrão), 'weak' ou 'strong'.

Argumentos de saída

M
Um objeto odeMassMatrix, atribuído à propriedade MassMatrix de um objeto ode.

Exemplo

Equações escaladas

M = odeMassMatrix(MassMatrix=[2 0; 0 1]);
f = ode(ODEFcn=@(t, y) -y, InitialValue=[1; 1], MassMatrix=M);
sol = solve(f, 0, 1);
fprintf('%.4f %.4f\n', sol.Solution(:, end))
fprintf('%.4f %.4f\n', exp(-0.5), exp(-1))
Saída
0.6065 0.3677
0.6065 0.3679

Veja também

ode odeEvent odeJacobian ode15s odeset