Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Consider the causal non-linear discrete-time system characterized by the followi

ID: 2320020 • Letter: C

Question

Consider the causal non-linear discrete-time system characterized by the following difference equation: 2y[n] = y[n-1] + x [n]/y [n-1] If we use as input x[n] to this system (algorithm) a step function of amplitude A (i.e. x[n] = A u[n]), then y[n] will converge after several iterations to the squareroot of A. Write a MATLAB program that implements the above recursion to compute the squareroot of 16, 4, 5, and 3. How many iterations does it take to converge to the true value starting at y[-1] =0.5?

Explanation / Answer

MATLAB Code:

function [yn,iter] = squareroot2(A)
yminus1 = 0.5;
yn=0.5*((yminus1)+A/yminus1);%running the first iteration outside the loop
yminus1 = yn;%taking the initial value for next iteration
iter=1;
while yn~=sqrt(A)%loop stops when square root found
yn=0.5*((yminus1)+A/yminus1);
yminus1 = yn;
iter=iter+1;
end
end

Output:

>> [sqrt2,iterations]=squareroot2(16)

sqrt2 =

4


iterations =

8

>> [sqrt2,iterations]=squareroot2(4)

sqrt2 =

2


iterations =

7

>> [sqrt2,iterations]=squareroot2(5)

sqrt2 =

2.2361


iterations =

7

>> [sqrt2,iterations]=squareroot2(3)

sqrt2 =

1.7321


iterations =

7