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 à propriedadeMassMatrixde um objetoode.
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