Curve methods

Plot an Arps curve, its integral and shifted/scaled curves.

Arps curve, Integral of curve, Shifted along x-axis, Scaled along x-axis
Integral from 0 to infty: 148.41
q_1=12.182 h=0.119 D=0.093

import matplotlib.pyplot as plt
import numpy as np

from dca.decline_curve_analysis import Arps

fig, axes = plt.subplots(2, 2, sharex=True, sharey=False)
ax1, ax2, ax3, ax4 = axes.ravel()

# Create evaluation grid and model
t = np.linspace(0, 40, num=2**8)
curve = Arps(5, 2.5, -2)

ax1.set_title("Arps curve")
ax1.plot(t, curve.eval(t))

ax2.set_title("Integral of curve")
ax2.plot(t, curve.eval_integral_from_0_to_T(t))

ax3.set_title("Shifted along x-axis")
ax3.plot(t, curve.eval(t))
ax3.plot(t, curve.shift_and_scale(shift=-5).eval(t))

ax4.set_title("Scaled along x-axis")
ax4.plot(t, curve.eval(t))
ax4.plot(t, curve.shift_and_scale(scale=2).eval(t))

# Print some information
integral = curve.eval_integral_from_0_to_inf()
print(f"Integral from 0 to infty: {integral:.2f}")

q_1, h, D = curve.original_parametrization()
print(f"{q_1=:.3f} {h=:.3f} {D=:.3f}")

for ax in [ax1, ax2, ax3, ax4]:
    ax.grid(True, ls="--", alpha=0.33)

plt.show()

Total running time of the script: (0 minutes 0.160 seconds)

Gallery generated by Sphinx-Gallery