Matematika Seminář¶
Info¶
Matematika Seminář je předmět nabízený Katedrou matematiky a didaktiky matematiky na Fakultě přírodovědně-humanitní a pedagogické TUL. Seminář se zaměřuje na procvičování a prohlubování znalostí z matematiky, zejména:
- Goniometrické funkce (sinus, kosinus, tangens, kotangens, jejich grafy a vlastnosti)
- Kuželosečky (elipsa, parabola, hyperbola, rovnice a geometrické vlastnosti)
Seminář je určen pro studenty, kteří chtějí zlepšit své schopnosti v řešení matematických problémů a připravit se na pokročilejší kurzy. Informace o termínech a přihlášení jsou dostupné na webu Katedry matematiky TUL.
Goniometrické funkce¶
- sin - protilehlá/přepona - a/c
- cos - přilehlá / přepona - b/c
- tg - přilehlá / protilehlý - a/b
- tg = sin / cos
Kuželosečky¶
Polynomy¶
seminar_polynomy.m¶
polynom.m¶
function y = polynom(x, a)
n= length(a)-1;
y = 0;
for i = 1:n+1
y = y + a(i) * x.^(n-i-1);
end
end
% y = polynom(x, [1, -3, 2]);
% plot(x, [y; z]);
Taylorův polynom¶
main.m¶
clc; clear; close all;
% do konzole
x = -4*pi : 0.1 : 4*pi;
d_kratke = [0,1,0,-1,0,1,0,-1,0,1,0,-1];
y = Taylor(x, d_kratke);
plot(x, y);
axis([-4*pi, 4*pi, -2, 2]);
hold on;
z = sin(x);
plot(x,z)
d_dlouhe = [0,1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1];
y = Taylor(x, d_dlouhe);
plot(x, y);
format compact;
sinus(pi);
sin(pi);
sinus(2);
sin(2);
sinus(20);
sin(20);
Taylor.m¶
sinus.m¶
function y = sinus(x)
z = floor((x/2/pi));
x = x - 2*pi*z;
d = [0,1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1];
y = Taylor(x, d);
end
Gaussova eliminace¶
matice.m¶
A = [1, 2, 3; 4, 5, 6; 7, 8, 9];
B = [1, 4, 7; 2, 5, 8; 3, 6, 9];
disp(A+B);
disp(A*B);
disp(B*A);
M = [2, 1, 0, 0; 1, 2, 1, 0; 0, 1, 2, 1; 0, 0, 1, 2];
b = [3;4;4;3];
dips(inv(M));
disp(inv(M)*M);
disp(M*inv(M));
disp(M\b);
disp(M*[1;1;1;1]);
Interpolace, Lagrangeův polynom a Regrese¶
main.m¶
clc; clear; close all;
% do konzole
format compact;
x = [1; 2];
y = [1; 2];
V = [x, x.^0];
a = V \ y;
xx = 0:0.1:3;
yy = polynom(xx, a);
plot(xx, yy);
hold on;
plot(x, y, 'ro');
x = [-1; 0; 1];
y = [-1; 0; 1];
V = [x.^2, x, x.^0];
a = V \ y;
xx = -2:0.1:2;
yy = polynom(xx, a);
plot(xx, yy);
hold on;
plot(x, y, 'ro');
x = [-3; -2; -1; 0; 1; 2; 3];
y = [1; 0; 1; 0; 1; -1; 0];
a = interpol(x, y);
xx = -4:0.1:4;
yy = polynom(xx, a);
plot(xx, yy);
hold on;
plot(x, y, 'ro');
x = [-1; 0; 1; 2; 4];
y = [-1; 0; 1; 2; 3];
a = regrese(x, y, 1);
xx = 0:0.1:5;
yy = polynom(xx, a);
plot(xx, yy);
plot(x, y, 'ro');
interpol.m¶
polynom.m¶
regrese.m¶
Řešení nelineárních rovnic¶
Metoda půlení intervalu¶
main.m¶
clc; clear; close all;
% do konzole
format compact;
format long;
pulint(0.1, 10, @log, 0.0001);
[x,i]=pulint(3, 10, @log, 0.000001);
[x,i]=pulint(10, 0.1, @log, 0.000001);
[x,i]=pulint(0.1, 10, @log, 0);
[x,i]=pulint(-80, 80, @sind, 0.00001);
[x,i]=pulint(-190, 190, @sind, 0.00001);
[x,i]=pulint(-19000, 19020, @sind, 0.00001)
pulint.m¶
function [x,i] = pulint(a, b, g, eps)
if g(a)*g(b) > 0 || (eps <= 0)
x = NaN;
i = -1;
return
end
i=0;
while eps<abs(b-a)
s = (a+b)/2;
i = i + 1;
if g(a)*g(s) > 0
a=s;
else
b=s;
end
end
x=(a+b)/2;
end
Newtonova metoda¶
main.m¶
clc; clear; close all;
format long;
format compact;
Newton(0.1, @log, 1e-6, 100, 1e-8)
Newton(91, @sind, 1e-6, 100, 1e-8)
x=-4:0.01:4;
y=sin(x);
z=zderivuj(x,y);
plot(x,z);
hold on;
plot(x, cos(x));
y=x.^2;
z=zderivuj(x,y);
plot(x,z);
Newton.m¶
function x = Newton(x0, g, eps, maxiter, delta)
i = 0;
xi = x0;
while i < maxiter && abs(g(xi)) > eps
xi = xi-delta*g(xi)/(g(xi+delta)-g(xi));
i = i + 1;
end
if abs(g(xi)) < eps
x = xi;
else
x = NaN;
end
end
zderivuj.m¶
function z = zderivuj(x,y)
z(length(x))=NaN;
for i = 1:length(x) - 1
z(i) = (y(i+1) - y(i)) / (x(i+1) - x(i));
end
end
Numerické integrování¶
Obdélníková metoda a lichoběžníková metoda¶
main.m¶
clc; close all; clear;
format long;
format compact;
x = 0:1;
y = x;
Integral(x,y);
x = -1:0.0001:1;
y = sqrt(1-x.^2);
2*Integral(x,y);
axis equal;
plot(x,y);
x = 0:0.1:2*pi;
y = cos(x);
z = zintegruj(x,y, 0);
plot(x,z);
hold on;
plot(x, sin(x));
y=sin(x);
z = zintegruj(x,y,0);
plot(x,z);
hold on;
plot(x, -cos(x)+1);
z = zintegruj(x,y,-1);
plot(x,z);
hold on;
plot(x,-cos(x));
Y=zderivuj(x, z);
plot(x, Y);
hold on;
plot(x,y);
x=1:0.01:10;
y=log(x);
z = zderivuj(x,y);
plot(x,z);
hold on;
plot(x,1./x);
Y= 1./x;
Z = zintegruj(x,Y,0);
plot(x,Z);
hold on;
plot(x, log(x));
Integral.m¶
function I = Integral(x,y)
I = 0;
for i = 1:length(x)-1
I = I + 0.5 * (x(i+1)-x(i)) * (y(i) + y(i+1));
end
end
zintegruj.m¶
function z = zintegruj(x,y,c)
z(1) = c;
for i = 1:length(x)-1
z(i+1) = z(i) + 0.5 * (x(i+1)-x(i)) * (y(i) + y(i+1));
end
end
Matice jako zobrazení¶
main.m¶
clc; close all; clear;
x = [0,1,0.9,1,0.9];
y = [0,0,0.1,0,-0.1];
plot(x, y);
axis equal;
% Tohle jsme psali do command line
zobraz(zvetsi(jednanula,2))
zobraz(zvetsi(jednanula,2))
hold on
zobraz(jednanula)
hold on
zobraz(posun(jednanula,[1;0.5]))
zobraz(posun(jednanula,[1;0.5]))
zobraz(posun(zvetsi(jednanula,2),[1;0.5]))
zobraz(zvetsi(posun(jednanula,[1;0.5]),2))
zobraz(otoc(jednanula, pi/3))
zobraz(vektorrofi(5, pi/2))
zobraz(domecek)
format compact
D= [2,0;0,3];
hold on
zobraz(D*domecek)
E=[1,0;0,1];
row1 = [1, -1];
row2 = [1, 1];
S45 = 1/sqrt(2) * [row1; row2];
zobraz(E*domecek)
zobraz(S45*domecek)
zobraz(D*S45*domecek)
zobraz(S45*D*domecek)
F=[3,1;1,3];
zobraz(domecek)
hold on
zobraz(F*domecek)
zobraz(domecek)
zobraz(vektor([-1;1]))
zobraz(vektor(F*[-1;1]))
[V,G] = eig(F);
[V,G] = eig(D);
[V,G] = eig(E);
H = [-3,1;1,3];
[V,G] = eig(H);
zobraz(domecek)
hold on
zobraz(H*domecek)
x=V(:,1);
zobraz(vektor(x))
zobraz(vektor(H*x))
xx=V(:,2);
zobraz(vektor(xx))
zobraz(vektor(H*xx))
zobraz(domecekk)
hold on
zobraz(H*domecekk)
Dd = [2,0;0,0];
[V,G] = eig(Dd);
zobraz(Dd*domecekk)
jednanula.m¶
zobraz.m¶
zvetsi.m¶
posun.m¶
otoc.m¶
vektor.m¶
function Y = vektor(x)
ro = sqrt(x(1)^2+x(2)^2);
fi = atan(x(2)/x(1));
if x(1) < 0
fi= fi+pi;
end
Y = vektorrofi(ro,fi);
end









































