Resultados esperados (m=2)

Na transição para m = 2, o principal ajuste está na subdivisão do intervalo de pressões [Pini, Pfin]. Agora, ele é dividido em duas partes iguais, o que resulta na definição de três pontos principais de pressão: P1 = Pini​, P2 (ponto médio), e P3 = Pfin. Para cada subintervalo, ajusta-se uma função linear distinta para U(P), resultando em uma aproximação piecewise composta por duas funções lineares.

As mudanças principais são:

Cálculo das pressões intermediárias:

O ponto P2 é calculado como a média entre Pini e Pfin​, isto é,

P2=(Pini + Pfin)/2.

Definição de U(P):

Para m = 2, U(P) é definido como uma função piecewise com dois trechos lineares:

  • No primeiro subintervalo [Pini, P2], U(P) é ajustado a partir de U1=U(Pini) e U2=U(P2).
  • No segundo subintervalo [P2, Pfin], U(P) é ajustado a partir de U2=U(P2) e U3=U(Pfin).
    Cada trecho é obtido resolvendo um sistema de duas equações lineares, como no caso de m=1.

Melhoria da precisão:

Ao dividir o intervalo, o erro relativo reduz-se significativamente, já que cada trecho linear captura melhor a variação de V(P) em relação a P. Isso reflete-se em uma aproximação mais precisa para os volumes calculados.

A partir dessas mudanças, os resultados obtidos para m = 2 mostram uma melhoria considerável na descrição de V(P), mantendo a convergência característica do modelo SAAMM. O método segue a mesma lógica de m = 1, mas beneficia-se da maior flexibilidade permitida pela subdivisão.

No código Maple teremos algumas alterações:

############################
DeltaP := m -> (Pm - P1)/m;
Pressures := m -> local i; [seq(P1 + (i - 1.0)*DeltaP(m), i = 1 .. m + 1)];
Pressures(2);
[P1, 0.5000000000 P1 + 20.0, 40.0]

P1 := Pini;
P1 := 5

P2 := Pressures(2)[2];
P2 := 22.50000000

P3 := Pfin;
P3 := 40

############################
U1 := rhs(h(P1)[1]);
U1 := 9.625556118

U2 := rhs(h(P2)[1]);
U2 := 1.955618200

U3 := rhs(h(P3)[1]);
U3 := 0.9746591555

############################
hu1 := solve({U1 = P1*ak1 + bk1, U2 = P2*ak1 + bk1}, {ak1, bk1});
hu1 := {ak1 = -0.4382821667, bk1 = 11.81696695}

hu2 := solve({U2 = P2*ak2 + bk2, U3 = P3*ak2 + bk2}, {ak2, bk2});
hu2 := {ak2 = -0.05605480254, bk2 = 3.216851257}

############################
ak1 := (U1 - U2)/(P1 - P2);
ak1 := -0.4382821667

bk1 := -P1*ak1 + U1;
bk1 := 11.81696695

ak2 := (U2 - U3)/(P2 - P3);
ak2 := -0.05605480254

bk2 := (P2*U3 - P3*U2)/(P2 - P3);
bk2 := 3.216851257

############################
U := P -> piecewise(P1 <= P and P <= P2, ak1*P + bk1, P2 <= P and P <= P3, ak2*P + bk2);

Com isso, é verificado uma melhora nos resultados como pode ser visto na Figura abaixo.

Neste caso, o erro relativo melhorou significativamente.

Apesar de m = 2 ainda não apresentar um grande ganho em precisão em relação a m = 1, o processo já revela a tendência de melhoria significativa à medida que o número de partições aumenta. Isso demonstra que o método tem potencial de refinamento contínuo, com reduções sucessivas no erro relativo. Mais importante, esse caso nos permite identificar uma estrutura geral que pode ser utilizada para expandir o modelo.

Por meio de um procedimento de indução matemática, é possível generalizar o processo para m partições, permitindo escrever expressões para U(P) e V(P) que sejam aplicáveis a qualquer subdivisão do intervalo de pressão. A lógica segue a mesma: cada subintervalo é associado a uma função linear que descreve U(P), ajustada a partir dos valores de pressão e seus respectivos volumes.

Para tanto, basta fornecer como dados de entrada:

  1. Os valores das pressões nas extremidades e nos pontos intermediários (calculados a partir do número de partições, m, ou como escolhido pelo desenvolvedor).
  2. Os volumes correspondentes a essas pressões, que podem ser obtidos por métodos gráficos, numéricos ou experimentais.

Com essas informações, é possível construir uma solução aproximada que, teoricamente, converge para o valor exato de V(P) à medida que m→∞. Esse procedimento generalizável reforça a versatilidade do método SAAMM na resolução de problemas complexos como o de Van der Waals.

Vejamos a seguir os resultados quando fazemos, m = 3 (…->).

  • Para m=1: Linearização única no intervalo inteiro, maior erro. (…->)
  • Para m=2: Melhor aproximação com dois segmentos. (…->)
  • Para m=3: Refinamento ainda maior, com possibilidades de erro relativo no resultado final, significativamente reduzido. (…->)
  • Assim por diante. Generalização para m. (…->)
  • Generalização para m com ajuste parabólico. (…->)

Rolar para cima