% M-file for MATLAB 
% Cviceni01 (c01.m Verze:030306)
clc,clear all,close all; % vycisti okno vypisu, pamet promennych a graf. okna

% Matice
a=10                         % definice skalaru 
A=[1,2,3; 1,2,3; 1,2,3]      % def. matice 3x3
B=ones(3,3)                  % matice jednicek 3x3
B2=2*ones(3,3)               % matice dvojek 3x3
C=zeros(3,3)                 % matice nul 3x3
M=magic(5)                   % matice 5x5 , soucty vsech R, S, D se rovnaji 
At=A'                        % transpozice matice (apostrof)
At(2,2)=0		             % zmena prvku 2,2 v (transponovane) matici At
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Priklad 1A.6 - Tabelovani a znazorneni funkce
x=0:pi/20:2*pi;          % nezavisle promenna - vektor (radkovy)
y=sin(x)                 % zavisle promenna - vektor (radkovy)
plot(x,y,'ro')           % vykresli zavislost zavisle pr. na nezavisle promenne
y2=cos(x)                % druha zavisle promenna 
figure                   % nove graficke okno (inicializace)
plot(x,y2,'bx')          % vykresli zavislost zavisle pr. na nezavisle promenne
figure                   % nove graficke okno (inicializace)
plot(x,y,'r.',x,y2,'bp') % vykresli 2 zavislosti
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Priklad 1A.7 - Tabelovani a znazorneni funkce
% y1=e^x y2=e^2x y3=e^ x/2 <-1,1> krok 0.1

% 1. reseni
x=-1:0.1:1;                 % zav. promenna
% exp(1)^x == exp(x)
y1=exp(x);  y2=exp(2*x); y3=exp(x/2);  % zavisle promenne 
x=x'; y1=y1'; y2=y2'; y3=y3'; % transpozice vsech radkovych vektoru na sloupce
% plot(x,y1,x,y2,x,y3) == plot(x,[y1,y2,y3])
plot(x,[y1,y2,y3])            % lze pouzit, jen kdyz  x,y1,y2,y3 jsou sloup. vektory

% 2. reseni stejneho problemu (lepsi)
x=-1:0.1:1;                 % zav. promenna
x=x';                       % transpozice nezavisle promenne
y1=exp(x);  y2=exp(2*x); y3=exp(x/2);  % zavisle promenne (sloupc. vektory)
plot(x,[y1,y2,y3])          % lze pouzit, jen kdyz  x,y1,y2,y3 jsou sloup. vektory
xmin=-1;xmax=1;ymin=0;ymax=8; 
axis([xmin xmax ymin ymax]) % zmena meritka
grid                        % vykresli mrizku / sit 
xlabel('x - nezavisle promenna'), ylabel('y=f(x) - zavisle promenna') % popisky osy
title('Muj prvni graf v Matlabu')                         % Popiska nad grafem

yy=x;                       % y=x
% hold "podrzi" aktualni gr. okno pro vykresleni dalsi zavislosti
hold on                     % dalsi graficky vystup do posledniho gr. objektu(figure)
plot(x,yy,'m-.')

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Samostatne priklady 
% Priklad 1B.1
clc,clear all,close all; % vycisti okno vypisu, pamet promennych a graf. okna
x=-5:0.25:5         % radkovy vektor nezavisle promenne
% x=x'              % transpozice (pro graf. znazorneni fnc. plot) 
                        % zde neni transpozice nutna!!
y=2.^x              % 2^x nefunguje!! 
plot(x,y,'r.')      % graf. znazorneni 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Priklad 1B.2 
clear all; close all ; clc
skalar=1; a=0:pi/100:pi/2;
y_skalar=(3*skalar*skalar)/(skalar^3+skalar^3) % funguje 
% y=(3*sin(a)*cos(a))/(sin(a)^3+cos(a)^3) % nefunguje
% nasobeni/deleni/umocnovani vektoru prvek po prvku .* ./ .^
y2=(3*sin(a).*cos(a))./(sin(a).^3+cos(a).^3) 
plot(a,y2)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Priklad 1B.6
% Na louce byly slepice a krávy. Měly dohromady 100 hlav a 300 nohou. Kolik bylo kterých?
% hlavy=100; nohy=300;
% hlavy=slepice*1+kravy*1
% nohy=slepice*2+kravy*4
% 100=x+y
% 300=2*x+4*y
% Postup:
% hlavni matice A + matice pravych stran b
% determinant? det(A)
% inverzni_matice=1/determinant(A)*transpozice(matice_alg._doplnku)
% inv. matice=1/det(A)*(matice_alg._doplnku)'
% vysledek=inverzni_matice*vektor_pravych_stran

A=[1,1; 2,4]    % hlavni matice soustavy
b=[100; 300]    % matice pravych stran
detA=det(A)    % determinant matice

% A_md=??       % matice algeb. doplnku
% A_mdt=A_md';
% Ai=(1/detA)*A_mdt
% vys=Ai2*b

Ai2=inv(A)      % inverze matice
vys2=Ai2*b      % vysledek=inverzni_matice*vektor_pravych_stran
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
