CoCalc Public FilesTA Sandbox / Tianran Zhang / lab3.sagewsOpen in with one click!
Authors: Tianran Zhang, maral daneshpazhouh
Views : 85
var("x,y") plot_vector_field((sin(x),cos(y)),(x,-3,3),(y,-3,3))
(x, y)
#1 Mathematical functions: two ways to define def mathfunc(x): return 3*x^2
#Parameters and symbolic variables f(x) = 3*x^2
f(3)
27
# define a function of x to the power of 19 g(x) = x^19 g(2)
524288
#2 Symbolic variables
type(x)
<type 'sage.symbolic.expression.Expression'>
# x is the default 'symbolic variable' # Make other sybolic variables? var("a,b,c")
(a, b, c)
type(b)
<type 'sage.symbolic.expression.Expression'>
b = 7
type(b)
<type 'sage.symbolic.expression.Expression'>
#2 Making lists of integers 1 to 5 #syntax: srange(lower, upper, stepsize) srange(5) #default argument values
[0, 1, 2, 3, 4]
#Practice: Making a list with even numbers starting from 2 and ends at 50, inclusive.
#hint: srange(lower, last value to include +b, stepsize), where 0<b<=stepsize srange(2, 53,2)
[2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52]
srange(5)
[0, 1, 2, 3, 4]
#Iterations #use the list as counter or index f(x) = 3*x^2 val = 3 for i in srange(5): val = f(val) val
1144561273430837494885949696427
f(x) = 3*x^2 vals = [1,3,5,7,9] newvals = [] for i in srange(5): newvals.append(f(vals[i])) newvals
[3, 27, 75, 147, 243]
# Exercise : apply a function g(x) = 6*x for 100 times, initial val 9
#Store intermediate values in a list named vals? Hint: the function is always applied on the last element in list
#example 4 f(x) = 2*x #Define the function we want to iterate #Create list of numbers defining how many times to iterate count = srange(0,10) #Create a list to hold the results. The first value is 3. vals = [3] for i in count: a = vals[i] #Grab the last item in the results list b = f(a) # Plug a into the function. Put the output in b. vals.append(b) # Put b into the list of results. list_plot(vals) # Plot the results
def iterate(iter,j): f(x) = 2*x #Define the function we want to iterate #Create list of numbers defining how many times to iterate count = srange(iter) #Create a list to hold the results. The first value is 3. vals = [3] for i in count: a = vals[i] #Grab the last item in the results list b = j(a) # Plug a into the function. Put the output in b. vals.append(b) # Put b into the list of results. return vals # Plot the results g(x) = 3*x list_plot(iterate(5,g))
f(x) = 2*x #Define the function we want to iterate #Create list of numbers defining how many times to iterate count = srange(0,10) #Create a list to hold the results. The first value is 3. vals = [3] for i in count: a = vals[i] #Grab the last item in the results list b = f(a) # Plug a into the function. Put the output in b. vals.append(b) # Put b into the list of results. list_plot(vals) # Plot the results
def my_func(iter, init, g): #f(x) = 2*x vals = [init] count = srange(0,iter) for i in count: a = vals[i] #Grab the last item in the results list b = g(a) # Plug a into the function. Put the output in b. vals.append(b) # Put b into the list of results. return(vals) f(x) = 2*x list_plot(my_func(10, 5,f))
my_func()
46242af9-542a-443c-abfa-fa53daf40a1a # (1) simplify? # (2) wrap in function? #inputs... #~0 no input #~1 iteration no. #~2 init #~3 function d11286a4-2553-4437-bd2e-1c9fed4cb77e