MA2552 Introduction to Computing (DLI)
Introduction to Computing
项目类别:计算机

MA2552 Introduction to Computing (DLI)

1. Write a function with header [B] = myMakeLinInd(A), where A and B are matrices.

Let the rank(A) = n, then B should be a matrix containing the first n columns of A

that are all linearly independent.

2. Write a function alpha = myPolyfit(n,p,x) that finds the coefficients of a polynomial p(x) of degree n that fits the data in p and x. Your function should solve this

problem as a linear system of equations and show an error if there is either no solution

or an infinite number of solutions.

3. Repeat the question above but using the least square method instead. Note that now

there is always a unique solution, independently of the length p and x. You can check

your results with the MATLAB built-in function polyfit.

4. Using the bisection method, write a function r = myRoots(alpha) that outputs the

(real) roots of a polynomial whose coefficients are the elements of the (real-valued)

array alpha. You can check your method with the MATLAB built-in function roots.

Hint: Find the intervals of monotony by finding the roots of the derivative of the

polynomial.

5. The eigenvalues λ of a (square) matrix A correspond to the roots of the function

p(λ) = det(A ? λI), where I denotes the identity matrix. Explain why if A is of size

n, then p(λ) is a polynomial of degree n. Next, using question 3 and question 4, code

a function that finds the real eigenvalues A and their corresponding eigenvectors.

6. The singular value decomposition of a matrix A of size n×m, is a factorisation of A in

the form A = USV t

, where both U and V are (full rank) (orthonormal) square matrices

and S is a non-necessarily-square diagonal matrix whit non-negative elements. The

non-zero elements of the diagonal of S, called singular values of A, correspond to the

square root of the non-zero eigenvalues of AAt

(or AtA). The matrix V is formed by the

eigenvectors of AtA and the matrix U is formed by the eigenvectors of AAt

. Using eig,

implement a function [U,S,V] = mySVD(A) which computes the SVD decomposition

of a matrix A.

7. Note that the rank of a matrix A is given by the number of non-zero singular values of

A (why?). Write a function that take as input a matrix A, and outputs a new matrix

Ak, which is k-rank version of A, computed by keeping the k-largest singular values

of A. Use this function to show a low rank version of the image of question 10 of

Assignment 1.

8. Find regression curves for the average runtime data T1(n) and T2(n), corresponding

to the runtime of the code of question 10 of Assignment 2, and its efficient version,

respectively, where n is the size of the input matrix M. Plot your regression curves along

with the runtime data. Can you quantify now how faster is the efficient implementation

with respect to the inefficient one?

1

MA2552 Introduction to Computing (DLI) 2023/24

9. Implement a MATLAB function that take as input two arrays f and x, representing

the values of a real valued function f(x); the array x should be evenly spaced. Your

function should:

(a) create a new array f_s which replace each element of f with the average of its k

nearest neighbours (k should also be an input of your function) to the left and to

the right. The function f_s is a way of regularising a noisy or irregular function.

(b) returns the numerical derivative of fs using a centred first order finite difference

scheme that you should also implement.

Test your code with x = linspace(0,2*pi,1000)and f = sin(x) + 0.1*randn(size(x)),

for different values of k.

10. Write a function I = myTrapez(f, a, b, n), which computes the approximation of

R b

a

f(x) dx by a trapezoidal rule: R b

a

f(x) dx ≈ h

h

f(a)+f(b)

2 +

Pn?1

k=1 f(xk)

i

, where xk =

a + hk, and h =

b?a

n

.Your function should not use any built-in Matlab functions. Test

your function by computing R 1

0

1 ? x

2 dx, with n = 10, 20, and 40. Given that the

exact value of the integral is π/4, how does the error of the approximateresult scale

with n?

2

留学ICU™️ 留学生辅助指导品牌
在线客服 7*24 全天为您提供咨询服务
咨询电话(全球): +86 17530857517
客服QQ:2405269519
微信咨询:zz-x2580
关于我们
微信订阅号
© 2012-2021 ABC网站 站点地图:Google Sitemap | 服务条款 | 隐私政策
提示:ABC网站所开展服务及提供的文稿基于客户所提供资料,客户可用于研究目的等方面,本机构不鼓励、不提倡任何学术欺诈行为。