Professional Documents
Culture Documents
t = 0:0.001:1;
f = 10:10:100;
for i = 1:1:10
y = cos(2*pi.*f(i).*t);
figure
plot(t,y)
title(sprintf('Cosine wave of %0.0f Hz',f(i)));
xlabel('Time(s)');
ylabel('Amplitude');
axis([0 0.2 -1 1]);
end
Task 2
Instead of 100 walks and 10000 steps I used 10 walks of 1000 steps since my computer is
not able to run so many points
clear all
clc
PastPos = [0,0];
CurrPos = [0,0];
i = 1;
dataX = zeros(1,100);
dataY = zeros(1,100);
for j = 1:10
for i = 1:1000
ran = rand();
end
PastPos;
dataX(i) = CurrPos(1);
dataY(i) = CurrPos(2);
plot([PastPos(1) CurrPos(1)],[PastPos(2) CurrPos(2)])
hold on
PastPos = CurrPos;
i = i + 1;
title('Random Walk')
end
end
Average = [mean2(dataX),mean2(dataY)];
Mean = abs(mean(Average))
Task 3
syms x
f = x^3 - 2.*x - 5
fd = diff(f)
f = inline(f);
fd = inline(fd);
err = 0.0001;
x = 1;
for i = 1:100
y=x;
x = y - (f(x)/fd(x));
Err = abs(x-y);
if Err<err
break
end
end
fprintf('Number of iterations: %0.0f\n',i)
fprintf('The solution is %0.8f',x)
Task 4
f = [1 0 -2 -5];
roots(f)
Task 5
board = zeros(8);
CheckX = zeros(1,8);
CheckY = zeros(1,8);
for i = 1:8
X = sum(board(i,:));
Y = sum(board(:,i));
CheckX(i) = X;
CheckY(i) = Y;
end
CheckDiag1 = zeros(1,15);
CheckDiag2 = zeros(1,15);
for i = -7:1:7
D1 = sum(diag(board,i));
D2 = sum(diag(fliplr(board),i));
CheckDiag1(i+8) = D1;
CheckDiag2(i+8) = D2;
end
CheckX;
CheckY;
CheckDiag1;
CheckDiag2;
if sum(CheckX>=2) >= 1
[r] = find(CheckX >= 2);
fprintf('There is a check on row %0.0f \n',r )
end
if sum(CheckY>=2) >= 1
[c] = find(CheckY >= 2);
fprintf('There is a check on column %0.0f \n',c );
end
if sum(CheckDiag1>=2) >=1
[r,c] = find(CheckDiag1>=2);
c = c-8;
for i = c
diag((board),i);
end
for i = 1:length(c)
idx = CheckDiag1>=2;
[r,c] = find(idx);
if idx == zeros(1,length(CheckDiag1))
c = 8;
end
c = c-8;
if c(i) >= 0
idx = CheckDiag1(8:15)>=2;
col1 = find(board(1,:)==1 & (idx==1));
if isempty(col1) ~= 1
for i = 1:length(col1)
fprintf('Check in row 1 and column %0.0f diagonally left to right\n',col1(i))
end
end
else
idx = c<0;
r = abs(c(idx))+1;
col2 = find(board(r,:)==1 & sum(CheckDiag1>=2) >=1);
if isempty(col2) ~= 1
for i = 1:length(col2)
fprintf('Check in row %0.0f and column %0.0f diagonally left to right\n',r,col2(i))
end
end
end
end
end
if sum(CheckDiag2>=2) >=1
[r,c] = find(CheckDiag2>=2);
c = c-8;
for i = c
diag(fliplr(board),i);
end
for i = 1:length(c)
idx = CheckDiag2>=2;
[r,c] = find(idx);
if idx == zeros(1,length(CheckDiag1))
c = 8;
end
c = c-8;
if c(i) >= 0
idx = flip(CheckDiag2(8:15)>=2);
col3 = find((board(1,:))==1 & (idx==1));
if isempty(col3) ~= 1
for i = 1:length(col1)
fprintf('Check in row 1 and column %0.0f diagonally right to left\n',col3(i))
end
end
else
idx = c<0;
r = abs(c(idx))+1;
col4 = find(board(r,:)==1 & sum(CheckDiag2>=2) >=1);
if isempty(col4) ~= 1
for i = 1:length(col4)
fprintf('Check in row %0.0f and column %0.0f diagonally right to left\n',r,col4(i))
end
end
end
end
end
Task 6
n = 2000;
data = zeros(1,n);
for i = 1:1:n
k = i;
f = 1/(k^2);
data(1,i) = f;
end
Solution = sum(data)
data = zeros();
i = 1;
while sum(data)<1.6449
k = i;
f = 1/(k^2);
data(1,i) = f;
sum(data);
i = i+1;
end
fprintf('%0.0f iterations are needed to get 4 decimal precision ',i)
sum(data)