MA2552 Introduction to Computing (DLI) 2024/25
Computer Assignment 1
1. (10 points) Write a function that take as an input an array x and an integer m, and outputs a matrix of size length(x) × m, whose columns are the first m Taylor approximations of either cos(x) or sin(x) (this choice is part of the inputs). Your function should avoid using iterative loops.
2. (10 points) A prime number which is one less than a power of 2 is called a ‘Mersenne prime’. For a given natural number n > 2, write a function which outputs a row vector containing all Mersenne primes less than or equal to n.
3. (10 points) The equation of an ellipse oriented along the x-y axis with semi-axis of size a and b, respectively, is given by
x2 y2
a + b =1.
In this exercise you will create a function that outputs an N-points discretisation of an ellipse of semi-axis lengths a and b, that is rotated at an angle theta with respect to the x axis.
Write a function with header E = ellipse(a, b, theta, N) following the steps here below.
(i) Using linspace, create an array of size 1xN consisting of evenly-spaced doubles between 0 and 2π.
(ii) Create an array of size 2×N where the first/second row is the cosine/sine of the values of the array you created in (i). This will give you an N-points discretisation of a circle
(iii) The result of (ii) is an N-points discretisation of a circle with radius 1, where the x coordinate is the first row and the y coordinate is the second row. Scale each coordinate by a and b, respectively, to obtain the discrete version of an ellipse with semi-axis lengths a and b.
(iv) The matrix
cos(θ) − sin(θ) sin(θ) cos(θ)
is a rotation matrix – it maps any given vectore u ∈ R2 to another vector v ∈ R2 such that ∥u∥ = ∥v∥ and the angle between the u and v (anticlokwise) is θ. Using this, create an array of size 2× N whose columns are θ rotations of the columns of the discretised ellipse of (iii).
Youcanvisualiseyourresultsusingthecommandplot(E(1,:), E(2,:)), axis equal.
4. (10points)ToreadanimageinMATLABonecanusethecommandI = imread(yourImage), which creates a multidimensional array I of size n×m×3 (n and m are the dimensions
of the image), where the first two index dimensions indicate the indices of each pixel,
and the third index indicate one of each the red, green, and blue (RGB) components of
1
MA2552 Introduction to Computing (DLI) 2024/25
each color pixel. Create a function that takes as an input a colour image and repaints it according to a given a mapping from the primary colours to the primary colours (this mapping is also an input of your function). Show your results with one or more images of your choosing.
5. (10 points) A square matrix H of size n is called a Hadamard matrix if its elements are either 1 or -1, and H × Ht = nI, where I denotes the identity matrix. Write a function that checks if a matrix is Hadamard.
6. (10 points) A Hadamard matrix of size 2k can be obtained using the following recur-
rence relation
H2k−1 H2k−1 H2k = H2k−1 −H2k−1 ,
with H20 = 1.
Write a recursive function that obtain such Hadamard matrix. Use the function of
question 2 to verify your method.
7. (10 points) The Legendre polynomials satisfy the following recurrence relation.
(2n + 1)xPn(x) = (n + 1)Pn+1(x) + nPn−1(x), withP0(x)=1andP1(x)=x. ShowthatPn(x)=O(xn)forx→∞.
Hint: use inductive/recursive thinking.
8. (10 points) (3 points) What is the big O complexity, as a function of n, of the
following code? Justify your answer.
for i = floor(n/2):n j=2;
while j <= n j = 2*j;
end end
9. (10 points) Write a function that transforms an array of 0 and 1, to a float in decimals. The function should decide on the single or double precision depending on the length of the input array.
10. (10 points) Implement a code that read the excel file ‘LDIstudents.xls’ (in the ‘asses- ments / computer assignments’ folder in blackboard) and store the information of each student in a MATLAB structure that you will call Student. For each group, calculate the average mark as well as the standard deviation. Compute the correlation between the marks of all students and the ‘Assistance to lectures’, ‘Assistance to tutorials’, and the ‘Height’.
请加QQ:99515681 邮箱:99515681@qq.com WX:codinghelp