Exercise 4.12#

import matplotlib.pyplot as plt
import numpy as np

%matplotlib inline

(a)#

def Power():
    print(2**3)
Power()
8

(b)#

def Power2(x,a):
    print(x**a)
Power2(3,8)
6561

(c)#

Power2(10,3)
1000
Power2(8,17)
2251799813685248
Power2(131,3)
2248091

(d)#

def Power3(x,a):
    result = x**a
    return result

(e)#

def Plot(log=''):
    x = np.arange(1,10)
    y = Power3(x,2)
    
    #create plot
    fig, ax = plt.subplots()
    
    #config plot
    ax.set_xlabel('x')
    ax.set_ylabel('y=x^2')
    ax.set_title('Power3()')
    
    #change scale according to axis
    if log == 'x':
        ax.set_xscale('log')
        ax.set_xlabel('log(x)')
    if log == 'y':
        ax.set_yscale('log')
        ax.set_ylabel('log(y=x^2)')
    if log == 'xy':
        ax.set_xscale('log')
        ax.set_yscale('log')
        ax.set_xlabel('log(x)')
        ax.set_ylabel('log(y=x^2)')
    
    #draw plot
    ax.plot(x, y)
Plot(log='xy')

png

(f)#

def PlotPower(start,end,power,log=''):
    x = np.arange(start,end)
    y = np.power(x,end)
    
    #create plot
    fig, ax = plt.subplots()
    
    #config plot
    ax.set_xlabel('x')
    ax.set_ylabel('y=x^2')
    ax.set_title('PlotPower()')
    
    #change scale according to axis
    if log == 'x':
        ax.set_xscale('log')
        ax.set_xlabel('log(x)')
    if log == 'y':
        ax.set_yscale('log')
        ax.set_ylabel('log(y=x^2)')
    if log == 'xy':
        ax.set_xscale('log')
        ax.set_yscale('log')
        ax.set_xlabel('log(x)')
        ax.set_ylabel('log(y=x^2)')
    
    #draw plot
    ax.plot(x, y)
PlotPower(1,10,3)

png