Description
Please submit to CANVAS a .zip le that includes the following Matlab functions:
compute factorial.m
compute Euclidean norm.m
matrix times vector.m
pi series.m
Exercise 1 The factorial of a natural number is de ned as
n! = n(n 1)(n 2) 1; 0! = 1: (1)
Write a Matlab/Octave function compute factorial.m that takes an integer number as input and returns (1). The function should be of the following form
function [b] = compute factorial(n)
Input:
n: natural number (possibly including 0)
Output:
b: factorial of n
Exercise 2 The Euclidean norm of an ndimensional vector is de ned as

x
= ^{v}
:
(2)
x_{k}^{2}
k k
u
n
k=1
u^{X}
t
Write a Matlab/Octave function compute Euclidean norm.m that computes the norm (2), for an arbitrary input vector x. The function should be of the following form
function [z] = compute Euclidean norm(x)
1
Input:
x: ndimensional vector (either column vector or row vector)
Output:
z: norm of the vector
Hint: You can use the for loop. The number of components of the input vector can be determined by using the Matlab command length(x) (see the Matlab/Octave documentation). You can compare the output of your function with the Matlab/Octave function norm(x).
Exercise 3 Write a Matlab/Octave program matrix times vector.m that computes the product between an ndimensional square matrix A and an ndimensional (column) vector x. The components of the (column) vector y = Ax are de ned

n
X_{j}
y_{i} = A_{ij} x_{j}
i = 1; :::; n:
(3)
=1
The function should be of the following form
function [y] = matrix times vector(A,x)
Input:
A: n n matrix
x: n 1 vector
Output:
y: n 1 vector
You are not allowed to use the Matlab expression A*x within your function.
Hint: You can use two nested for loops to compute the vector y (one loop computes the sum

while the other one controls the index i in (3)). The size of the matrix A can be determined by using the Matlab command size(A) (see the Matlab/Octave documentation). You can debug your function by comparing the output with the Matlab expression A*x, for simple matrices A and vectors x.
2
Exercise 4 The number can be de ned as a limit of various converging series of numbers. Among them

n
16^{k}
8k + 1
8k + 4
8k + 5
8k + 6
Simon Plou e (1995); (4)
^{=} n!1 _{k=0}
X
1
4
2
1
1
lim
u
!1
k=1 ^{k}
p
u
X
=
6
v
_{n}lim
^{n} 1_{2}
Euler (1735):
(5)
t
Write a Matlab/Octave function pi series.m retuns the rst 10 partial sums of the series (4)(5), i.e., the vectors P and E with components

^{P}n+1
n
16^{k}
8k + 1
8k + 4
8k + 5 8k + 6
n = 0; 1; 2; :::
(6)
^{=} k=0
X
1
4
2
1
1
v
p
n
1
E_{n} =
6
n = 1; 2; :::
(7)
2
u
k=1 ^{k}
u^{X}
t
The function should be of the following form
function [P,E,n1,n2]=pi series()
Output:
P, E: row vectors with 10 components de ned by the rst 10 partial sums in (6) and (7).
n1, n2: see the Extra Credit exercise hereafter. If you do not want to code the extra credit part, just set n1=0 and n2=0 in the function pi series.m.
Extra Credit: At the end of the Matlab function pi series.m, write a code that returns the smallest integer numbers n_{1} and n_{2} such that
jP_{n}_{1}_{+1} j < 10 ^{5} jE_{n}_{2} j < 10 ^{5}: (8)
To determine n_{1} and n_{2}, you can use a for loop combined with an if statement or, equivalently, a while loop.
3