155GIT1 / 8. cvičení: Porovnání verzí

Z GeoWikiCZ
mBez shrnutí editace
mBez shrnutí editace
 
(Není zobrazeno 25 mezilehlých verzí od 2 dalších uživatelů.)
Řádek 1: Řádek 1:
{{Geoinformatika}}
{{Geoinformatika}}
{{Cvičení|155GIT1|8|2. test - algoritmizace a funkce}}
{{Cvičení|155GIT1|8|Uživatelské funkce}}


; Zadání testu
== Náplň ==
* http://ocw.cvut.cz/moodle/course/view.php?id=701


; Výsledky
# drobné úlohy
* [https://docs.google.com/spreadsheets/d/141s2c9RlY9PuiDh6XQ6HMdtqKdpV3eNynP8yFaM8hD8/edit?usp=sharing souhrnné výsledky]
 
* První cvičení (středa 14h): [http://geo102.fsv.cvut.cz/vyuka/155GIT1/201ý/test2/cv1/report-test2.html Report]
== Ukázky ==
 
=== Drobné úlohy ===
 
'''Funkce pro výpočet nekonečné řady do zadané přesnosti (příklad iterativního výpočtu)'''
 
např. výpočet funkce arctg(), viz {{wikipedia|Taylorova řada}}:
 
<source lang=octave>
function arctgx = arctg(x,mez)
% vypocet funkce arctg rozvojem v radu do zadane presnosti
% IN:  x      ... vektor argumentu funkce
%      mez    ... zadana presnost vypoctu
% OUT: arctgx ... vektor vypoctenych uhlu z intervalu <-pi/2,pi/2>
 
if any(x > 1) | any(x < -1)
    error('arctg: Vstupni hodnoty musi byt z intervalu <-1,1>.')
end
 
if nargin < 2
    mez = 1e-10;
end
 
% výpočet pro každý prvek daného vektoru samostatně
for i=1:length(x)
    % start iterace pro i-tý vstupní prvek
    y0 = 100;  % vkládám fiktivní hodnotu, kterou x na vstupu nikdy nemůže nabýt
    % 1.iterace
    n = 1;
    y = x(i);
    while  abs( y-y0 ) > mez
        % n-ta iterace
        n = n+1;
        y0 = y;
        y = y0 + (-1)^(n+1) *  x(i)^(2*n-1)  / (2*n-1);
    end
    % uložení vypočtené hodnoty do výstupní proměnné
    arctgx(i) = y;
    fprintf('Pocet iteraci vypoctu: %d\n',n)
end
</source>
 
<source lang=octave>
function arctgx = arctg(x,mez)
% vypocet funkce arctg rozvojem v radu do zadane presnosti
% IN:  x      ... matice argumentu funkce
%      mez    ... zadana presnost vypoctu
% OUT: arctgx ... matice vypoctenych uhlu z intervalu <-pi/2,pi/2>
 
if any(any(x > 1)) | any(any(x < -1))
    error('arctg: Vstupni hodnoty musi byt z intervalu <-1,1>.')
end
 
if nargin < 2
    mez = 1e-10;
end
 
% výpočet pro každý prvek dané matice samostatně
for i=1:size(x,1)
    for j=1:size(x,2)
        % start iterace pro i,j-tý vstupní prvek
        y0 = 100;  % vkládám fiktivní hodnotu, kterou x na vstupu nikdy nemůže nabýt
        % 1.iterace
        n = 1;
        y = x(i,j);
        while  abs( y-y0 ) > mez
            % n-ta iterace
            n = n+1;
            y0 = y;
            y = y0 + (-1)^(n+1) *  x(i,j)^(2*n-1)  / (2*n-1);
        end
        % uložení vypočtené hodnoty do výstupní proměnné
        arctgx(i,j) = y;
        fprintf('Pocet iteraci vypoctu: %d\n',n)
    end
end
</source>
 
== Úlohy ==
 
* [[155GIT1 / 8. cvičení / Příklady|8. cvičení - příklady]]
<!--
 
 
 
 
{{Cvičení|155GIT1|8|Python - Úvod, datové typy, formátování řetězců}}
== Náplň ==
* [https://geo.fsv.cvut.cz/vyuka/155git1/python/git1-python-01-uvod.pdf přednáška]
== Ukázky ==
* [https://gitlab.com/ctu-k155-lectures/155git1-cviceni/-/blob/master/python/cv1/cv1.ipynb notebook]
-->
<!-- -->

Aktuální verze z 24. 4. 2023, 19:07

Uživatelské funkce

Náplň

  1. drobné úlohy

Ukázky

Drobné úlohy

Funkce pro výpočet nekonečné řady do zadané přesnosti (příklad iterativního výpočtu)

např. výpočet funkce arctg(), viz Taylorova řada:

 function arctgx = arctg(x,mez)
 % vypocet funkce arctg rozvojem v radu do zadane presnosti
 % IN:  x      ... vektor argumentu funkce
 %      mez    ... zadana presnost vypoctu
 % OUT: arctgx ... vektor vypoctenych uhlu z intervalu <-pi/2,pi/2>

 if any(x > 1) | any(x < -1)
     error('arctg: Vstupni hodnoty musi byt z intervalu <-1,1>.')
 end

 if nargin < 2
     mez = 1e-10;
 end

 % výpočet pro každý prvek daného vektoru samostatně
 for i=1:length(x)
     % start iterace pro i-tý vstupní prvek
     y0 = 100;   % vkládám fiktivní hodnotu, kterou x na vstupu nikdy nemůže nabýt
     % 1.iterace
     n = 1;
     y = x(i);
     while  abs( y-y0 ) > mez
         % n-ta iterace
         n = n+1;
         y0 = y;
         y = y0 + (-1)^(n+1) *  x(i)^(2*n-1)  / (2*n-1);
     end
     % uložení vypočtené hodnoty do výstupní proměnné
     arctgx(i) = y;
     fprintf('Pocet iteraci vypoctu: %d\n',n)
 end
 function arctgx = arctg(x,mez)
 % vypocet funkce arctg rozvojem v radu do zadane presnosti
 % IN:  x      ... matice argumentu funkce
 %      mez    ... zadana presnost vypoctu
 % OUT: arctgx ... matice vypoctenych uhlu z intervalu <-pi/2,pi/2>

 if any(any(x > 1)) | any(any(x < -1))
     error('arctg: Vstupni hodnoty musi byt z intervalu <-1,1>.')
 end

 if nargin < 2
     mez = 1e-10;
 end

 % výpočet pro každý prvek dané matice samostatně
 for i=1:size(x,1)
     for j=1:size(x,2)
         % start iterace pro i,j-tý vstupní prvek
         y0 = 100;   % vkládám fiktivní hodnotu, kterou x na vstupu nikdy nemůže nabýt
         % 1.iterace
         n = 1;
         y = x(i,j);
         while  abs( y-y0 ) > mez
             % n-ta iterace
             n = n+1;
             y0 = y;
             y = y0 + (-1)^(n+1) *  x(i,j)^(2*n-1)  / (2*n-1);
         end
         % uložení vypočtené hodnoty do výstupní proměnné
         arctgx(i,j) = y;
         fprintf('Pocet iteraci vypoctu: %d\n',n)
     end
 end

Úlohy