#!/usr/bin/env python # coding: utf-8 # # Area under a curve # # **Randall Romero Aguilar, PhD** # # This demo is based on the original Matlab demo accompanying the Computational Economics and Finance 2001 textbook by Mario Miranda and Paul Fackler. # # Original (Matlab) CompEcon file: **demqua01.m** # # Running this file requires the Python version of CompEcon. This can be installed with pip by running # # !pip install compecon --upgrade # # Last updated: 2022-Oct-23 #
# ## Initial tasks # In[1]: from numpy import cos, pi, linspace, array import matplotlib.pyplot as plt # In[2]: def f(x): return 25 - cos(pi*x)*(2*pi*x - pi + 0.5)**2 # In[3]: x_range = array([0, 1]) a_b = array([0.25, 0.75]) n = 401 z = linspace(*a_b, n) x = linspace(*x_range, n) # In[4]: fig, ax = plt.subplots(figsize=[8,4]) ax.fill_between(z, 0, f(z), alpha=0.35, color='LightSkyBlue') ax.hlines(0, *x_range, 'k', linewidth=2) ax.vlines(a_b, 0, f(a_b), color='tab:orange',linestyle='--',linewidth=2) ax.plot(x,f(x), linewidth=3) ax.set(xlim=x_range, xticks=a_b, ylim=[-5, f(x).max()+2], yticks=[0]) ax.set_yticklabels(['0'], size=20) ax.set_xticklabels(['$a$', '$b$'], size=20) ax.annotate(r'$f(x)$', [x_range[1] - 0.1, f(x_range[1])-5], fontsize=18, color='C0', va='top') ax.annotate(r'$A = \int_a^bf(x)dx$', [a_b.mean(), 10] ,fontsize=18, ha='center');