<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="sk">
	<id>http://www.kiwiki.info/index.php?action=history&amp;feed=atom&amp;title=Java_-_implement%C3%A1cia_numerick%C3%BDch_algoritmov</id>
	<title>Java - implementácia numerických algoritmov - História úprav</title>
	<link rel="self" type="application/atom+xml" href="http://www.kiwiki.info/index.php?action=history&amp;feed=atom&amp;title=Java_-_implement%C3%A1cia_numerick%C3%BDch_algoritmov"/>
	<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Java_-_implement%C3%A1cia_numerick%C3%BDch_algoritmov&amp;action=history"/>
	<updated>2026-04-16T18:23:12Z</updated>
	<subtitle>História úprav pre túto stránku na wiki</subtitle>
	<generator>MediaWiki 1.34.0</generator>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Java_-_implement%C3%A1cia_numerick%C3%BDch_algoritmov&amp;diff=11342&amp;oldid=prev</id>
		<title>Juraj: /* Trieda Solver */</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Java_-_implement%C3%A1cia_numerick%C3%BDch_algoritmov&amp;diff=11342&amp;oldid=prev"/>
		<updated>2013-03-05T14:22:57Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Trieda Solver&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;sk&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Staršia verzia&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Verzia zo dňa a času 14:22, 5. marec 2013&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l82&quot; &gt;Riadok 82:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Riadok 82:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Trieda ''Solver'' bude obsahovať objekt typu ''Function'' a premennú ''presnost'', ktorá definuje presnosť výpočtu numerických algoritmov. Tento vzťah ilustruje nasledujúci UML class diagram.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Trieda ''Solver'' bude obsahovať objekt typu ''Function'' a premennú ''presnost'', ktorá definuje presnosť výpočtu numerických algoritmov. Tento vzťah ilustruje nasledujúci UML class diagram.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Súbor:Function-Solver class diagram.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;svg&lt;/del&gt;|center|thumb|400px|Class diagram tried Function a Solver]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Súbor:Function-Solver class diagram.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;png&lt;/ins&gt;|center|thumb|400px|Class diagram tried Function a Solver]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;V nasledujúcom texte uvedieme triedu Solver, ktorá bude v nasledujúcich dopĺňanať:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;V nasledujúcom texte uvedieme triedu Solver, ktorá bude v nasledujúcich dopĺňanať:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l101&quot; &gt;Riadok 101:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Riadok 101:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      * @param f odkaz na existujuci objekt Function&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      * @param f odkaz na existujuci objekt Function&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      * @param presnost deinuje presnot s akou cheme dostat vysledok zvoleneho&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      * @param presnost deinuje presnot s akou cheme dostat vysledok zvoleneho&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      *                 num. algoritmu. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Odporaca &lt;/del&gt;sa cislo mensie ako 0.001&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      *                 num. algoritmu. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Odporuca &lt;/ins&gt;sa cislo mensie ako 0.001&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      */&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      */&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     public Solver(Function f, double presnost) {&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     public Solver(Function f, double presnost) {&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Juraj</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Java_-_implement%C3%A1cia_numerick%C3%BDch_algoritmov&amp;diff=11029&amp;oldid=prev</id>
		<title>Juraj: /* Ad 1: Trieda Transform */</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Java_-_implement%C3%A1cia_numerick%C3%BDch_algoritmov&amp;diff=11029&amp;oldid=prev"/>
		<updated>2012-03-03T21:05:51Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Ad 1: Trieda Transform&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;sk&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Staršia verzia&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Verzia zo dňa a času 21:05, 3. marec 2012&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l167&quot; &gt;Riadok 167:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Riadok 167:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Bližšie to ilustruje nasledujúci obrázok:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Bližšie to ilustruje nasledujúci obrázok:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Súbor:class Transform.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;svg&lt;/del&gt;|thumb|center|300px|Trieda Transform]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Súbor:class Transform.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;png&lt;/ins&gt;|thumb|center|300px|Trieda Transform]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Vzťahy použité pre transfomáciu súradníc:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Vzťahy použité pre transfomáciu súradníc:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l268&quot; &gt;Riadok 268:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Riadok 268:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* public int getY(double y)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* public int getY(double y)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** opačné znamienko pri premennej y súvisí s opačnou orientáciou osi y v matematike (y rastie zdola nahor) a v grafike (y rastie zhora nadol).&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** opačné znamienko pri premennej y súvisí s opačnou orientáciou osi y v matematike (y rastie zdola nahor) a v grafike (y rastie zhora nadol).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Ad 2: Vykreslenie matematickej funkcie===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Ad 2: Vykreslenie matematickej funkcie===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Pre vykreslenie matematickej funkcie možeme pokračovať, resp. modifikovať projekt, ktorý bol ukázaný v časti [[Java (Swing) - práca s vizuálnymi komponentami]].&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Pre vykreslenie matematickej funkcie možeme pokračovať, resp. modifikovať projekt, ktorý bol ukázaný v časti [[Java (Swing) - práca s vizuálnymi komponentami]].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Juraj</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Java_-_implement%C3%A1cia_numerick%C3%BDch_algoritmov&amp;diff=9593&amp;oldid=prev</id>
		<title>Juraj: Vytvorená stránka „{{navigacne menu - java}} V nasledujúcej časti budú v krátkosti opísané numerické algoritmy a spôsob ich implementácie v jazyku java, resp. ich použitie v apliká…“</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Java_-_implement%C3%A1cia_numerick%C3%BDch_algoritmov&amp;diff=9593&amp;oldid=prev"/>
		<updated>2011-03-22T21:11:57Z</updated>

		<summary type="html">&lt;p&gt;Vytvorená stránka „{{navigacne menu - java}} V nasledujúcej časti budú v krátkosti opísané numerické algoritmy a spôsob ich implementácie v jazyku java, resp. ich použitie v apliká…“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nová stránka&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{navigacne menu - java}}&lt;br /&gt;
V nasledujúcej časti budú v krátkosti opísané numerické algoritmy a spôsob ich implementácie v jazyku java, resp. ich použitie v aplikácii a vizualizácia výsledkov. Algoritmy, ktoré budú implementované:&lt;br /&gt;
*Algoritmy hľadania nulových miest&lt;br /&gt;
*Algoritmy numerickej derivácie&lt;br /&gt;
*Algoritmy numerického integrovania&lt;br /&gt;
*Algoritmy interpolácie a aproximácie&lt;br /&gt;
&lt;br /&gt;
Pre názornejšiu demonštráciu vysvetľovaných algoritmov budeme tieto výsledky týchto algoritmy vizualizovať v desktopovej java aplikácii.&lt;br /&gt;
&lt;br /&gt;
==Základné triedy==&lt;br /&gt;
===Trieda Function===&lt;br /&gt;
Pre reprezentáciu matematickej funkcie si vytvoríme triedu ''Function''.  Trieda ''Function'' bude teda reprezentovať definovanú matematickú funkciu. Pre náš príklad si zvoľme funkciu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;f\left( x \right)=a\cos \left( b\cdot x \right)-{{x}^{c}}&amp;lt;/math&amp;gt; (1)&lt;br /&gt;
&lt;br /&gt;
kde a, b a c sú parametre našej funkcie. &lt;br /&gt;
Poznamenajme, že túto funkciu si môžeme ľubovoľne zvoliť.&lt;br /&gt;
&lt;br /&gt;
Samotná trieda ''Function'' bude obsahovať len 3 vnútorné premenné: parametre funkcie (1): a, b, c. Výpis triedy Function:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
package numeric;&lt;br /&gt;
&lt;br /&gt;
public class Function {&lt;br /&gt;
&lt;br /&gt;
    private double a, b, c;&lt;br /&gt;
&lt;br /&gt;
    /**&lt;br /&gt;
     * Konstruktor triedy Function&lt;br /&gt;
     * Parametre a, b, c definuju koeficienty matematickej funkcie a*cos(b*x)-x^c&lt;br /&gt;
     * @param a - koficient pri funkcii cos&lt;br /&gt;
     * @param b - koficient v argumente funkcie cos(b*x)&lt;br /&gt;
     * @param c - mocnina premennej x v poslednej casti funkcie (x^c)&lt;br /&gt;
     */&lt;br /&gt;
    public Function(double a, double b, double c) {&lt;br /&gt;
        this.a = a;&lt;br /&gt;
        this.b = b;&lt;br /&gt;
        this.c = c;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /**&lt;br /&gt;
     * Implicitny konstruktor.&lt;br /&gt;
     * definuje funkciu cos(x)-1&lt;br /&gt;
     */&lt;br /&gt;
    public Function() {&lt;br /&gt;
        this(1, 1, 0);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public double getA() {&lt;br /&gt;
        return a;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public double getB() {&lt;br /&gt;
        return b;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public double getC() {&lt;br /&gt;
        return c;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public void setA(double a) {&lt;br /&gt;
        this.a = a;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public void setB(double b) {&lt;br /&gt;
        this.b = b;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public void setC(double c) {&lt;br /&gt;
        this.c = c;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // vrati funkcnu hodnotu v bode x danej matematickej funkcie&lt;br /&gt;
    public double hodnota(double x) {&lt;br /&gt;
        return a * Math.cos(b * x) - Math.pow(x, c);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Trieda Solver===&lt;br /&gt;
Trieda ''Function'' definuje matematickú funkciu nad ktorou budeme implementovať numerické algoritmy. Trieda ''Solver'' bude tieto numerické algoritmy implementovať.&lt;br /&gt;
Trieda ''Solver'' bude obsahovať objekt typu ''Function'' a premennú ''presnost'', ktorá definuje presnosť výpočtu numerických algoritmov. Tento vzťah ilustruje nasledujúci UML class diagram.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Function-Solver class diagram.svg|center|thumb|400px|Class diagram tried Function a Solver]]&lt;br /&gt;
&lt;br /&gt;
V nasledujúcom texte uvedieme triedu Solver, ktorá bude v nasledujúcich dopĺňanať:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
package numeric;&lt;br /&gt;
&lt;br /&gt;
public class Solver {&lt;br /&gt;
&lt;br /&gt;
    private Function f;&lt;br /&gt;
    private double presnost;&lt;br /&gt;
&lt;br /&gt;
    /**&lt;br /&gt;
     * Vytvori objekt triedy solver&lt;br /&gt;
     * Parameter f je povinny a definuje funkciu (objekt Function)&lt;br /&gt;
     * nad ktorou sa budu aplikovat numericke algoritmy&lt;br /&gt;
     * presnost vypoctov je definovana druhym parametrom&lt;br /&gt;
     * @param f odkaz na existujuci objekt Function&lt;br /&gt;
     * @param presnost deinuje presnot s akou cheme dostat vysledok zvoleneho&lt;br /&gt;
     *                 num. algoritmu. Odporaca sa cislo mensie ako 0.001&lt;br /&gt;
     */&lt;br /&gt;
    public Solver(Function f, double presnost) {&lt;br /&gt;
        this.f = f;&lt;br /&gt;
        this.presnost = presnost;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /**&lt;br /&gt;
     * Vytvori objekt triedy solver&lt;br /&gt;
     * Parameter f je povinny a definuje funkciu (objekt Function)&lt;br /&gt;
     * nad ktorou sa budu aplikovat numericke algoritmy&lt;br /&gt;
     * presnost vypoctov je nastavena na 10^(-6), teda na 0.000001&lt;br /&gt;
     * @param f odkaz na existujuci objekt Function&lt;br /&gt;
     */&lt;br /&gt;
    public Solver(Function f) {&lt;br /&gt;
        this(f, 0.000001);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public Function getF() {&lt;br /&gt;
        return f;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public double getPresnost() {&lt;br /&gt;
        return presnost;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public void setF(Function f) {&lt;br /&gt;
        this.f = f;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public void setPresnost(double presnost) {&lt;br /&gt;
        this.presnost = presnost;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /*&lt;br /&gt;
     * Tu budu implementovane&lt;br /&gt;
     * numericke algoritmy&lt;br /&gt;
     */&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Úloha 0: Vykreslenie funkcie f==&lt;br /&gt;
V úvode tejto kapitoly bolo napísané, že výsledky numerických algoritmov budeme vizualizovať. Ako prvým krokom pri vizualizácii bude zobraziť matematickú funkciu (1).&lt;br /&gt;
Opäť si tento problém rozdelíme na menšie, ľahko riešiteľné podúlohy. Pri vykresľovaní matematickej funkcie narazíme na nasledujúce problémy:&lt;br /&gt;
#potreba pracovať s reálnymi číslami (napr. x=0.01, x=-3.2 a pod.). Avšak pri vykresľovani budeme pracovať len s pixelmi, čo sú kladné celočíselné hodnoty&lt;br /&gt;
#samotné vykreslenie funkcie, resp. optimalizované vykreslenie matematickej funkcie.&lt;br /&gt;
&lt;br /&gt;
===Ad 1: Trieda Transform===&lt;br /&gt;
Trieda Transform bude riešiť transformáciu súradníc medzi reálnymi hodnotami, ktoré budeme používať a pixemlmi, ktoré budeme potrebovať pri vykresľovaní. Vysvetlime to podrobnejšie:&lt;br /&gt;
*Pre jednoduchosť, majme matematickú funkciu &amp;lt;math&amp;gt;f(x)=x^2&amp;lt;/math&amp;gt;. Uvedieme niektoré hodnoty, s ktorými budeme pracovať:&lt;br /&gt;
**x=-1, f(x)=1&lt;br /&gt;
**x=-0.5, f(x)=0.23&lt;br /&gt;
**x=-0.1, f(x)=0.01&lt;br /&gt;
**x=0.1, f(x)=0.01&lt;br /&gt;
**x=2.1, f(x)=4.01&lt;br /&gt;
*Ak máme určitú oblasť, na ktorú budeme kresliť a táto oblasť má rozmery napr. 300px×300px, &lt;br /&gt;
** ako znázorníme bod [-0.5, 0.25] ?&lt;br /&gt;
** ako znázorníme bod [0, 0] ?&lt;br /&gt;
&lt;br /&gt;
Potrebujeme teda nejakú transformáciu medzi reálnymi hodnotami a súradnicami v pixeloch, ktré budeme potrebovať pri vykresľovaní. Práve trieda ''Transform'' bude vedieť transformovať reálne hodnoty na hodnoty, ktoré použijeme pri vykresľovaní. Na to, aby táto transformácia bola možná, potrebuje mať trieda ''Transform'' nasledujúce informácie:&lt;br /&gt;
*šírku (''width'') a výšku (''heigth'') plochy, na ktorú sa bude kresliť (táto informácie je v pixeloch)&lt;br /&gt;
*interval záujmu, na ktorom budeme danú matematickú funkciu vizualizovať. Tento rozsah si označme ako ''a''.&lt;br /&gt;
*mierku (''scale''), ktorú vypočítame z predchádzajúcich údajov.&lt;br /&gt;
Bližšie to ilustruje nasledujúci obrázok:&lt;br /&gt;
&lt;br /&gt;
[[Súbor:class Transform.svg|thumb|center|300px|Trieda Transform]]&lt;br /&gt;
&lt;br /&gt;
Vzťahy použité pre transfomáciu súradníc:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;math&amp;gt;scale=\frac{width}{2\cdot a}&amp;lt;/math&amp;gt;&lt;br /&gt;
*&amp;lt;math&amp;gt;X=x\cdot scale+\frac{width}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
*&amp;lt;math&amp;gt;Y=\frac{height}{2}-y\cdot scale&amp;lt;/math&amp;gt;&lt;br /&gt;
kde:&lt;br /&gt;
*''a'' definuje  interval (0,a), čo je interval pri vykreľovaní. Celý graf je vykresľovaný na intervale (-a, a).&lt;br /&gt;
*''x,y'' sú reálne hodnoty, ktoré sú použité pri práci s matematickou funkciou&lt;br /&gt;
*''X, Y'' sú celočíselné hodnoty (pixely). Tieto hodnoty využijeme pri vykresľovaní.&lt;br /&gt;
* ''scale'' je mierka pri vykreľovaní a hovorí o tom koľko pixelov je na intervale &amp;lt;0,1&amp;gt;&lt;br /&gt;
* hodnota ''1/scale'' je nazvaná ''Krok'' a hovorí akú vzdialenosť predstavuje 1px.&lt;br /&gt;
&lt;br /&gt;
Výpis triedy Transform:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
package numeric;&lt;br /&gt;
&lt;br /&gt;
public class Transform {&lt;br /&gt;
&lt;br /&gt;
    private int width, height;&lt;br /&gt;
    private double a;&lt;br /&gt;
    private double scale;&lt;br /&gt;
&lt;br /&gt;
    /**&lt;br /&gt;
     * konstruktor triedy Transform&lt;br /&gt;
     * Vytvara triedu pre transformaciu suradnic&lt;br /&gt;
     * @param s sirka zobrazenia v pixeloch&lt;br /&gt;
     * @param v vyska zobrazenia v pixeloch&lt;br /&gt;
     * @param a interval na osi x&lt;br /&gt;
     */&lt;br /&gt;
    public Transform(int s, int v, double a) {&lt;br /&gt;
        this.width = s;&lt;br /&gt;
        this.height = v;&lt;br /&gt;
        this.a = a;&lt;br /&gt;
        this.scale = this.width / (2 * this.a);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /**&lt;br /&gt;
     * Transormacia v osi x&lt;br /&gt;
     * @param x hodnota x v realnej suradnicovj sustave&lt;br /&gt;
     * @return suradnica pre kreslenie (v pixeloch)&lt;br /&gt;
     */&lt;br /&gt;
    public int getX(double x) {&lt;br /&gt;
        return (int) (x * this.scale) + this.width / 2;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /**&lt;br /&gt;
     * Transormacia v osi y&lt;br /&gt;
     * @return suradnica pre kreslenie (v pixeloch)&lt;br /&gt;
     */&lt;br /&gt;
    public int getY(double y) {&lt;br /&gt;
        return this.height / 2 - (int) (y * this.scale);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /**&lt;br /&gt;
     * Mierka scale je pocet pixelov na jednotku dlzky&lt;br /&gt;
     * Krok je hodnota, ktora pripadne na jeden pixel&lt;br /&gt;
     * @return krok na jeden pixel&lt;br /&gt;
     */&lt;br /&gt;
    public double getKrok() {&lt;br /&gt;
        return 1 / this.scale;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /**&lt;br /&gt;
     * Vráti interval kreslenia v kladnej casti osi x&lt;br /&gt;
     * @return interval a&lt;br /&gt;
     */&lt;br /&gt;
    public double getStrana() {&lt;br /&gt;
        return this.a;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /**&lt;br /&gt;
     * Nastavi interval kreslenia casti osi x&lt;br /&gt;
     * @param strana hodnota intervalu &amp;lt;0,a&amp;gt;&lt;br /&gt;
     */&lt;br /&gt;
    public void setStrana(double strana) {&lt;br /&gt;
        this.a = strana;&lt;br /&gt;
        // pri zmene intervalu sa meni aj mierka&lt;br /&gt;
        this.scale = this.width / (2 * this.a);&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Nastavi nove rozmery pre vykreslovaciu plochu.&lt;br /&gt;
     * Mierka vykreslovania (scale) sa prepocita sama&lt;br /&gt;
     * @param s nova sirka plochy na vykreslovanie&lt;br /&gt;
     * @param v nova vyska plochy na vykreslovanie&lt;br /&gt;
     */&lt;br /&gt;
    public void setSize(int s, int v) {&lt;br /&gt;
        this.width = s;&lt;br /&gt;
        this.height = v;&lt;br /&gt;
        this.scale = this.width / (2 * this.a);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dôležité metódy z tejto triedy:&lt;br /&gt;
* public int getX(double x)&lt;br /&gt;
** slúži na transformáciu reálnej hodnoty na pixely na osi x. Táto metóda nám odpovie na otázku, na akých súradniciach na osi x je napr bod x=0&lt;br /&gt;
** Ak si zoberieme predchádzajúci obrázok, tak bod [0,0] je v strede vykreľovacej plochy. Preto by mal mať bod x=0 hodnotu 1/2 sirky plochy pixelov. Po dosadení do vzťahu transformácie, to naozaj platí.&lt;br /&gt;
* public int getY(double y)&lt;br /&gt;
** opačné znamienko pri premennej y súvisí s opačnou orientáciou osi y v matematike (y rastie zdola nahor) a v grafike (y rastie zhora nadol).&lt;br /&gt;
===Ad 2: Vykreslenie matematickej funkcie===&lt;br /&gt;
Pre vykreslenie matematickej funkcie možeme pokračovať, resp. modifikovať projekt, ktorý bol ukázaný v časti [[Java (Swing) - práca s vizuálnymi komponentami]].&lt;br /&gt;
&lt;br /&gt;
Triedu ''kiwikiDemo'' si upravíme nasledovne:&lt;br /&gt;
&lt;br /&gt;
[[Súbor:numerical app1.png|thumb|center|300px|Upravená aplikácia kiwikiDemo]]&lt;br /&gt;
&lt;br /&gt;
V aplikácii sme teda ponechali len komponent panel (jPanel) a tlačidlo (jButton). Do triedy kiwikiDemo_graf (modifikovaná trieda kiwikiDemo) pridáme nasledujúci kód:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class kiwikiDemo_graf extends javax.swing.JFrame {&lt;br /&gt;
&lt;br /&gt;
    private Graphics g;&lt;br /&gt;
    private Transform t;&lt;br /&gt;
    private Function f;&lt;br /&gt;
&lt;br /&gt;
    public kiwikiDemo_graf() {&lt;br /&gt;
        initComponents();&lt;br /&gt;
        f = new Function();&lt;br /&gt;
        t = new Transform(panel.getWidth(), panel.getHeight(), 6);&lt;br /&gt;
    }&lt;br /&gt;
//   ...&lt;br /&gt;
//   ...&lt;br /&gt;
//   ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Teda, do triedy sme pridali objekt t (Transform), ktorý bude slúžiť na výpočet transofrmácie pri vykresľovaní, ďalej obekt f (Function), ktorý nám reprezentuje matematickú funkciu, ktorú budeme vykresľovať.&lt;br /&gt;
V konštruktore triedy kiwikiDemo_graf tieto objekty vytvoríme. &lt;br /&gt;
*Pre objekt ''f'' sme použili inplicitný konštruktor, preto bude f reprezentovať matematickú funkciu &amp;lt;math&amp;gt;cos(x)-1&amp;lt;/math&amp;gt;. &lt;br /&gt;
*Pre objekt transformácie t sme definovali rozmery plochy na kreslenie totožné s rozmermi objektu panel a interval kreslenia &amp;lt;nowiki&amp;gt;&amp;lt;-6, 6&amp;gt;&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Obsluha tlačidla (všetky komentáre sú v zdrojovom kóde):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
   private void tlcKresliActionPerformed(java.awt.event.ActionEvent evt) {                                        &lt;br /&gt;
        int sirka, vyska; //sirka a vyska panelu na kreslenie&lt;br /&gt;
        sirka = panel.getWidth();&lt;br /&gt;
        vyska = panel.getHeight();&lt;br /&gt;
        t.setSize(sirka, vyska);&lt;br /&gt;
&lt;br /&gt;
        g = panel.getGraphics();&lt;br /&gt;
        g.setColor(Color.GRAY);&lt;br /&gt;
        g.drawLine(0, vyska / 2, sirka, vyska / 2);&lt;br /&gt;
        g.drawLine(sirka / 2, 0, sirka / 2, vyska);&lt;br /&gt;
&lt;br /&gt;
        //vykreslovanie matematickej funkcie f&lt;br /&gt;
        g.setColor(Color.RED);&lt;br /&gt;
        //realne hodnoty, s ktorymi pocitame&lt;br /&gt;
        double x1, y1, x2, y2;&lt;br /&gt;
        //hodnoty v pixelox&lt;br /&gt;
        int X1, Y1, X2, Y2;&lt;br /&gt;
        // prvy bod na ose x, ktory sa bude vykreslovat&lt;br /&gt;
        x1 = -t.getStrana();&lt;br /&gt;
        y1 = f.hodnota(x1);&lt;br /&gt;
        for (x2 = -t.getStrana(); x2 &amp;lt; t.getStrana(); x2 += t.getKrok()) {&lt;br /&gt;
            y2 = f.hodnota(x1);&lt;br /&gt;
            X1 = t.getX(x1);&lt;br /&gt;
            X2 = t.getX(x2);&lt;br /&gt;
            Y1 = t.getY(y1);&lt;br /&gt;
            Y2 = t.getY(y2);&lt;br /&gt;
            g.drawLine(X1, Y2, X2, Y2);&lt;br /&gt;
&lt;br /&gt;
            x1 = x2;&lt;br /&gt;
            y1 = y2;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
    }                 &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Výsledok:&lt;br /&gt;
&lt;br /&gt;
[[Súbor:numerical app2.png|thumb|center|300px|Aplikácia kiwikiDemo_graf]]&lt;/div&gt;</summary>
		<author><name>Juraj</name></author>
		
	</entry>
</feed>