Como resolver um PVI no formato padrão usando o Octave
Vamos lá?
Antes de entrar no assunto de métodos numéricos para PVI's, precisamos entender o que vamos chamar de uma aproximação numérica para um PVI. Feito isso, que tal ver como usar uma função interna do Octave para já resolver alguns problemas?
1
2
3
O problema de valor inicial padrão consiste de...
A. uma equação diferencial de primeira ordem.
B. uma equação diferencial, independentemente da ordem.
C. uma equação diferencial linear.
D. uma equação diferencial, linear ou não.
A malha é
A. o conjunto de valores aproximados para a solução do PVI.
B. o intervalo onde se quer aproximar a solução do PVI.
C. um conjunto discreto de pontos onde se quer computar a solução do PVI.
D. um conjunto finito de pontos onde os valores da solução do PVI devem ser aproximados.
A função do problema padrão
A. define a equação diferencial.
B. pode ser escalar ou vetorial.
C. depende de e
D. é aproximada por
O problema de valor inicial padrão para o qual vamos construir métodos numéricos é A função pode ser vetorial, o que leva a ser vetorial também, ou seja,
Um exemplo de um problema que se encaixa neste formato é
Antes de entrar no estudo desses métodos para o problema , é preciso definir que tipo de aproximação queremos. Veja que a solução de um problema de valor inicial (PVI) é uma função, logo poderíamos pensar que um método numérico deve fornecer uma função que aproxime a função solução. Há métodos que fazem isso, como os métodos de colocação, por exemplo. Neste curso, entretanto, teremos um objetivo mais simples. Vamos nos contentar em aproximar amostras da função solução, sobre uma malha de pontos.
Considere a malha Estamos interessados em determinar uma aproximação para o valor da solução de em Se as aproximações forem determinadas, definir uma função contínua a partir dessa amostras recai em um problema de interpolação.
No Octave, problemas de valor inicial no formato podem ser facilmente resolvidos com a função lsode. Por exemplo, o problema , seria resolvido com
# Define a função da equação diferencial e# a condição inicialf = @(y,t) [t*y(2)-3*y(1); -(1-t)^2*y(2)];y0 = [2; 1];# Malha regular em t, onde aproximaremos a soluçãot = linspace(1, 3, 21)';y = lsode(f, y0, t);plot(t, y(:,1), '.-', t, y(:,2), '.-')legend("y_1", "y_2")
Repare que na definição da função no Octave, como exigido pela rotina lsode, a ordem dos argumentos é diferente da que convencionamos aqui. Como a equação diferencial definida pela função é vetorial, a solução produzida é uma matriz com duas colunas, sendo a primeira coluna, y(:,1), as aproximações para a nos pontos da malha, enquanto que a segunda coluna, y(:,2), seriam as amostras para a função
Outro exemplo seria o sistema de equações diferenciais de primeira ordem a seguir. Este sistema, conhecido como modelo SIR, é utilizado é um modelo clássico de dinâmica populacional, utilizado na modelagem da evolução de epidemias em uma população . representa a parcela da população suscetível ao contágio no instante a função representa a parcela da população que está infectada no instante e representa a fração da população que está recuperada no instante Os parâmetros e quantificam a taxa com que indivíduos em um determinado grupo se movem para outros grupos. Para resolver este problema, basta definir e desta forma é dada por Por exemplo, a escolha e com condição inicial , e produz o seguinte comportamento.
Por fim, nem todos os problemas de valor inicial estão no formato padrão . Na próxima aula veremos como converter um PVI para o formato padrão. Só então começaremos a estudar os métodos numéricos para resolver o problema e assim entender o que o comando lsode do Octave pode estar fazendo.
1. Usando o Octave (ou o Octave online), resolva o PVI a seguir, aproximando sua solução em uma malha regular com 31 pontos no intervalo Qual o valor estimado para ? E para ?
2. Usando o Octave (ou o Octave online), tente reproduzir o gráfico do modelo SIR, exibido no texto.