Numerikus számítások I. zh

Contents

Keddi csoport, A

1. feladat

close all, clear all
xlsread mozgasok;
M=ans;

figure(1)
plot(M(:,1),M(:,2),'-k^',M(:,1),M(:,3),'--ro')
xlabel('Idő')
ylabel('Hely')
title('Két test mozgása')
legend('1. test','2. test')

figure(2)
subplot(1,2,1)
plot(M(:,1),M(:,2),'-k^',M(:,1),M(:,3),'--ro')
xlabel('Idő')
ylabel('Hely')
title('Két test mozgása')
legend('1. test','2. test')

subplot(1,2,2)
hold on
ezplot('2*t',[0,15])
ezplot('5*sqrt(t)',[0,15])
plot(M(:,1),M(:,2),'b^',M(:,1),M(:,3),'ro')
title('Két test mozgása és a sejtett mozgásfüggvények')
xlabel('Idő')
ylabel('Hely')
hold off

2. feladat

close all, clear all

[oszlop,sor]=meshgrid(1:10,1:10);
A=1./(sor.^2+oszlop.^3-1);
det(A(1:2:10,1:2:10))
[m,p]=max(A(:,end))
min(eig(A))
sum(A(:,1).^2)
ans =
    2.298133263180063e-014
m =
    1.000000000000000e-003
p =
     1
ans =
    2.295242188626346e-012
ans =
   1.082036583493757

3. feladat

close all, clear all

A=[5,-1,3
    -1,10.2,4.4
    1,1.8,6.6]

b=[10
   17
   12]

xpontos=A\b

D=diag(diag(A));
L=-tril(A,-1);
R=-triu(A,1);

B=(D-L)\R;
f=(D-L)\b;

x=zeros(3,1);
tic
for i=1:20
    x=B*x+f;
end
toc
x
norm(xpontos-x,inf)

[L,U,P]=lu(A)
L*U-P*A
A =
   5.000000000000000  -1.000000000000000   3.000000000000000
  -1.000000000000000  10.199999999999999   4.400000000000000
   1.000000000000000   1.800000000000000   6.600000000000000
b =
    10
    17
    12
xpontos =
   1.512000000000000
   1.280000000000000
   1.240000000000000
Elapsed time is 0.003534 seconds.
x =
   1.512000000048747
   1.280000000026606
   1.239999999985358
ans =
    4.874678438682167e-011
L =
   1.000000000000000                   0                   0
  -0.200000000000000   1.000000000000000                   0
   0.200000000000000   0.200000000000000   1.000000000000000
U =
     5    -1     3
     0    10     5
     0     0     5
P =
     1     0     0
     0     1     0
     0     0     1
ans =
     0     0     0
     0     0     0
     0     0     0

4. feladat

close all, clear all

tandij=400000;
k=[3,4,5,3,4,6,7,8,0,1,3,2,3,5,6,7,8,9,10,11]
for i=1:20
    tandij=tandij*(1+k(i)/100);
end
tandij
k =
  Columns 1 through 13
     3     4     5     3     4     6     7     8     0     1     3     2     3
  Columns 14 through 20
     5     6     7     8     9    10    11
tandij =
    1.104446469325901e+006

Keddi csoport, B

1. feladat

close all, clear all
xlsread mozgasok;
M=ans;

figure(1)
plot(M(:,1),M(:,4),'-r^',M(:,1),M(:,5),'--ko')
xlabel('Idő')
ylabel('Hely')
title('Mozgások')
legend('3. test','4. test')

figure(2)
subplot(1,2,1)
plot(M(:,1),M(:,4),'-r^',M(:,1),M(:,5),'--ko')
xlabel('Idő')
ylabel('Hely')
title('Mozgások')
legend('3. test','4. test')

subplot(1,2,2)
hold on
ezplot('t^2/2',[0,15])
ezplot('3*t',[0,15])
plot(M(:,1),M(:,4),'r^',M(:,1),M(:,5),'ko')
title('Két test mozgása és a sejtett mozgásfüggvények')
xlabel('Idő')
ylabel('Hely')
hold off

2. feladat

close all, clear all

[oszlop,sor]=meshgrid(1:8,1:8);
A=1./(sor.^2+oszlop.^2-1);
det(A(2:2:8,2:2:8))
[m,p]=min(A(:,end))
max(eig(A))
sum(A(1,:).^2)
ans =
    4.998626985220539e-010
m =
   0.007874015748031
p =
     8
ans =
   1.095059435651711
ans =
   1.081784167703481

3. feladat

close all, clear all

A=[5,-1,3
    -1,10.2,4.4
    2,4.6,7.2]

b=[1
   17
   2]

xpontos=A\b

D=diag(diag(A));
L=-tril(A,-1);
R=-triu(A,1);

B=(D-L)\R;
f=(D-L)\b;

x=zeros(3,1);
tic
for i=1:15
    x=B*x+f;
end
toc
x
norm(xpontos-x,inf)

[L,U,P]=lu(A)
L*U-P*A
A =
   5.000000000000000  -1.000000000000000   3.000000000000000
  -1.000000000000000  10.199999999999999   4.400000000000000
   2.000000000000000   4.600000000000000   7.200000000000000
b =
     1
    17
     2
xpontos =
   1.944000000000000
   2.720000000000000
  -2.000000000000000
Elapsed time is 0.002153 seconds.
x =
   1.943675494431310
   2.719790343965953
  -1.999775912653611
ans =
    3.245055686902365e-004
L =
   1.000000000000000                   0                   0
  -0.200000000000000   1.000000000000000                   0
   0.400000000000000   0.500000000000000   1.000000000000000
U =
   5.000000000000000  -1.000000000000000   3.000000000000000
                   0  10.000000000000000   5.000000000000000
                   0                   0   3.500000000000000
P =
     1     0     0
     0     1     0
     0     0     1
ans =
     0     0     0
     0     0     0
     0     0     0

4. feladat

close all, clear all

tandij=500000;
k=[4,3,3,5,4,6,7,8,0,1,3,2,3,5,6,7,8,9,10,11]
for i=1:20
    tandij=tandij*(1+k(i)/100);
end
tandij
k =
  Columns 1 through 13
     4     3     3     5     4     6     7     8     0     1     3     2     3
  Columns 14 through 20
     5     6     7     8     9    10    11
tandij =
    1.380558086657376e+006

Csütörtöki csoport, A

1. feladat

load meresek
x=linspace(0,2,80)';
T1=meresek(:,1);
T3=meresek(:,3);
figure(1)
plot(x,T1,'gx',x,T3,'r+')
xlabel('Hely')
ylabel('Hőmérséklet')
title('Hőmérsékleteloszlások')
legend('1. rúd','3. rúd')
pause
figure(2)
h=x.^2.*sin(pi*x/2);
plot(x,h,'b-',x,T3,'r+')
xlabel('Hely')
ylabel('Hőmérséklet')
title('Hőmérsékleteloszlások')
legend('h(x) függvény','3. rúd')
norm(h-T3,inf)
ans =
   0.099370462412085

2. feladat

A=diag(10:19)+ones(10);
det(A(6:10,6:10))
sum(sum(A.^3))
b=[2:2:20]'
A\b
L=-tril(A,-1);
R=-triu(A,1);
D=diag(diag(A));
B=D\(L+R);
f=D\b;
x=zeros(10,1);
hiba=1;
iter=0;
tic
while hiba>1e-6
xregi=x;
x=B*x+f;
hiba=norm(x-xregi,inf);
iter=iter+1;
end
toc
x
iter
ans =
     1808634
ans =
       41165
b =
     2
     4
     6
     8
    10
    12
    14
    16
    18
    20
ans =
  -0.210881559339133
  -0.009892326671939
   0.157598700550722
   0.299321877431436
   0.420798886186334
   0.526078960440578
   0.618199025413042
   0.699481435682863
   0.771732467033815
   0.836378126663614
Elapsed time is 0.002670 seconds.
x =
  -0.210881892404360
  -0.009892635368234
   0.157598412900538
   0.299321608140788
   0.420798633052204
   0.526078721634024
   0.618198799399045
   0.699481221160548
   0.771732262891135
   0.836377931942491
iter =
    28

3. feladat

A=[2,2
   1,4]
B=A'*A;
G=chol(B)
G'*G-B
eig(B)
A =
     2     2
     1     4
G =
   2.236067977499790   3.577708763999663
                   0   2.683281572999748
ans =
  1.0e-015 *
   0.888178419700125                   0
                   0                   0
ans =
   1.534143900269346
  23.465856099730654

4. feladat

n=0;
s=1;
while s==1
n=n+1;
s=(2^n+1)-2^n;
end
n
n =
    53

Csütörtöki csoport, B

1. feladat

load meresek
x=linspace(0,3,80)';
T2=meresek(:,2);
T4=meresek(:,4);
figure(1)
plot(x,T2,'rx',x,T4,'g+')
xlabel('Hely')
ylabel('Hőmérséklet')
title('Hőmérsékleteloszlások')
legend('2. rúd','4. rúd')
pause
figure(2)
h=(2*x/3).^4.*sin(pi*x/3);
plot(x,h,'b-',x,T4,'g+')
xlabel('Hely')
ylabel('Hőmérséklet')
title('Hőmérsékleteloszlások')
legend('h(x) függvény','4. rúd')
norm(h-T4,inf)
ans =
   0.098995020570884

2. feladat

A=diag(20:29)+ones(10);
det(A(1:5,1:5))
sum(sum(A.^3))
b=[3:3:30]'
A\b
L=-tril(A,-1);
R=-triu(A,1);
D=diag(diag(A));
B=D\(L+R);
f=D\b;
x=zeros(10,1);
hiba=1;
iter=0;
tic
while hiba>1e-8
xregi=x;
x=B*x+f;
hiba=norm(x-xregi,inf);
iter=iter+1;
end
toc
x
iter
ans =
     6264504
ans =
      172215
b =
     3
     6
     9
    12
    15
    18
    21
    24
    27
    30
ans =
  -0.076565878771058
   0.069937258313278
   0.203121928389947
   0.324725322807775
   0.436195101024118
   0.538747296983153
   0.633410862483801
   0.721062312021438
   0.802452943734959
   0.878230428433753
Elapsed time is 0.000706 seconds.
x =
  -0.076565877062190
   0.069937259953242
   0.203121929966348
   0.324725324325357
   0.436195102487112
   0.538747298395350
   0.633410863848610
   0.721062313341936
   0.802452945013932
   0.878230429673734
iter =
    19

3. feladat

A=[2,4
   1,5]
B=A*A';
G=chol(B)
G'*G-B
eig(B)
A =
     2     4
     1     5
G =
   4.472135954999580   4.919349550499537
                   0   1.341640786499875
ans =
  1.0e-014 *
   0.355271367880050                   0
                   0                   0
ans =
   0.796396688825480
  45.203603311174518

4. feladat

n=0;
s=1;
while s==1
n=n+1;
s=2^n-(2^n-1);
end
n
n =
    54