155GIT1 / 7. cvičení

Z GeoWikiCZ
Přejít na: navigace, hledání
předchozí cvičenístránky předmětudalší cvičení

Uživatelské funkce

Náplň cvičení

  1. drobné smíšené ú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

 % vypocet pro kazdy prvek daneho vektoru samostatne
 for i=1:length(x)
     % start iterace pro i-ty vstupni prvek
     y0 = 100; % vkladam fiktivni hodnotu, kterou x na vstupu nikdy nemuze nabyt
     % 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
     % ulozeni vypoctene hodnoty do vystupni promenne
     arctgx(i) = y;
     fprintf('Pocet iteraci vypoctu: %d\n',n)
 end

Funkce pro načtení neformátovaných dat po řádcích

např. záměna čárky za tečku:

 function teckazacarku(file)
 % vyhleda vsechny carky v souboru a zameni je za tecku
 % IN: file ... jmeno vstupniho souboru (textovy retezec)

 if ischar(file) == 0
     error('Jmeno vstupniho souboru musi byt textovy retezec.');
 end

 vstup = fopen(file,'r');

 filenew = [file(1:end-4), '_upr', file(end-3:end)];  % jmeno noveho souboru
 vystup = fopen(filenew,'w');

 konec = 0;  % indentifikator konce souboru
 while konec==0
     radek = fgets(vstup);  % fgets() nacte 1 radek souboru (se znakem \n)
     for i=1:length(radek)
         if radek(i) == ','
             radek(i) = '.';
         end
     end
     fprintf(vystup,'%s',radek);
     konec = feof(vstup);   % feof() vrati pro konec souboru hodnotu 1, jinak vraci hodnotu 0 
 end

 fclose all;
 fprintf('Data ulozena do souboru %s\n',filenew);

datový soubor carky.txt ke stažení

Volání funkce:

 teckazacarku('carky.txt')

Úlohy