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