SAGE
February 27, 2015

Making a polar plot (describing the radiation pattern of an antenna)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
# A linear broadside array of short vertical dipoles
# located along the z axis with 1/2 wavelength spacing
var('r, theta')
N = 7
normalized_element_pattern = sin(theta)
array_factor = 1 / N * sin(N * pi / 2 * cos(theta)) / sin(pi / 2 * cos(theta))
array_plot = polar_plot(abs(array_factor), (theta, 0, pi), color='red', legend_label='Array')
radiation_plot = polar_plot(abs(normalized_element_pattern * array_factor), (theta, 0, pi), color='blue', legend_label='Radiation')
combined_plot = array_plot + radiation_plot
combined_plot.xmin(-0.25)
combined_plot.xmax(0.25)
combined_plot.set_legend_options(loc=(0.5, 0.3))
show(combined_plot, figsize=(2, 5), aspect_ratio=1)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# Repeat the antenna pattern example with the Pyplot interface

import numpy
import matplotlib.pyplot as plt

path = '/Users/dev/Desktop/'

N = float(7)
theta = numpy.arange(0, numpy.pi, numpy.pi/100)

def normalized_element_pattern(theta):
    return abs(numpy.sin(theta))
def array_factor(theta, N):
    return abs(float(1 / N) * numpy.sin(float(N * pi / 2)
        * numpy.cos(theta))
        / numpy.sin(float(pi / 2) * numpy.cos(theta)))
plt.figure(figsize=(6, 4))
plt.subplot(121, polar=True)
plt.polar(theta, normalized_element_pattern(theta))
plt.title('Element factor')
plt.subplot(122, polar=True)
plt.polar(theta, array_factor(theta, N), color='red',
    label="Array factor")
plt.polar(theta, array_factor(theta, N) *
    normalized_element_pattern(theta),
    label="Pattern", color='blue')
plt.legend(loc='lower right', bbox_to_anchor = (1, 0))
plt.subplots_adjust(wspace=0.3)
plt.savefig(os.path.join(path, 'example3b.png'))
plt.close()

Mortgage calculation with SAGE

  • PMT: Payment
  • PV: Present Value (loan’s principal, amount barrowed)
  • r: monthly interest rate (compounded monthly)
  • t: number of years of the loan
  • m: 12 (compounding period)
  • i: r/m=r/12 (intereset rate per compounding period)
  • n: mt=12*t (loan’s term, number of monthly payments)

PMT(PV, i, n) = (PV*i)/(1-(1+i)^(-n))

PMT(PV, r, t) = (PVr/12)/(1-(1+r/12)^(-12t))

or with building functions on top of functions

PMT1(PV, r, t) = PMT(PV, i=r/12, n=12*t)

Example: 200,000 USD for a 30-year mortgage at 6.5% compounded monthly PMT(200000, 0.065, 30)

Compounded interest calculation with SAGE

Suppose you deposit $5000 in an account that earns 4.5% compounded monthly. You are curious when your total will reach $ 7000. Using the formula A = P(1+i)n, where P is the principal, A is the amount at the end, i is the interest rate per month, and n is the number of compounding periods (number of months), we have

1
2
3
4
5
6
7000 = 5000(1+0.045/12)^n
1.4=(1+0.0045/12)^n
log 1.4 = log (1+0.0045/12)^n
log 1.4 = n log (1+0.0045/12)

SAGE: n = log(1.4)/log(1+0.045/12)