http://wiki.math.bme.hu/history/Informatika2-2016/Gyakorlat13Megold?feed=atom&
Informatika2-2016/Gyakorlat13Megold - Laptörténet
2024-03-19T11:59:16Z
Az oldal laptörténete a wikiben
MediaWiki 1.18.1
http://wiki.math.bme.hu/index.php?title=Informatika2-2016/Gyakorlat13Megold&diff=11668&oldid=prev
Kkovacs, 2016. május 16., 10:50-n
2016-05-16T10:50:28Z
<p></p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr valign='top'>
<td colspan='2' style="background-color: white; color:black;">←Régebbi változat</td>
<td colspan='2' style="background-color: white; color:black;">A lap 2016. május 16., 10:50-kori változata</td>
</tr><tr><td colspan="2" class="diff-lineno">2. sor:</td>
<td colspan="2" class="diff-lineno">2. sor:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Ismerkedésképp néhány egyszerű feladat.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Ismerkedésképp néhány egyszerű feladat.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div># Hozzunk létre egy 10 hosszú, csupa 0 vektort! Módosítsuk a 4. elemét 1-re! ''(zeros)''</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div># Hozzunk létre egy 10 hosszú, csupa 0 vektort! Módosítsuk a 4. elemét 1-re! ''(zeros)''</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del>import numpy as np</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline"><python></ins></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del>L = np.zeros(10)</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>import numpy as np</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del>L[3] = 1</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>L = np.zeros(10)</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>L[3] = 1</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline"></python></ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div># Hozzunk létre egy 3x3-as mátrixot, 0-tól 8-ig növekvő számokkal! ''(reshape)''</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div># Hozzunk létre egy 3x3-as mátrixot, 0-tól 8-ig növekvő számokkal! ''(reshape)''</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>  M = np.arange(9).reshape(3,3)</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>  M = np.arange(9).reshape(3,3)</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div># Hozzunk létre egy 30 hosszú listát véletlen számokkal 0 és 1 között! Számoljuk ki az elemek átlagát és a szórását! ''(rand, mean, std)''</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div># Hozzunk létre egy 30 hosszú listát véletlen számokkal 0 és 1 között! Számoljuk ki az elemek átlagát és a szórását! ''(rand, mean, std)''</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del>R = np.random.rand(30)</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline"><python></ins></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del>print R.mean()</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>R = np.random.rand(30)</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del>print R.std()</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>print R.mean()</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>print R.std()</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline"></python></ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>## Hozzunk lérte egy 30 hosszú listát véletlen számokkal -3 és 2 között!</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>## Hozzunk lérte egy 30 hosszú listát véletlen számokkal -3 és 2 között!</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del>R = np.random.rand(30)</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline"><python></ins></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del>R = R * 5</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>R = np.random.rand(30)</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del>R = R - 3</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>R = R * 5</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>R = R - 3</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline"></python></ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div># Hozzunk létre egy véletlen, 5 dimenziós egységvektort! Először egy véletlen vektor, majd gondoskodjunk róla, hogy egység hosszú legyen!</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div># Hozzunk létre egy véletlen, 5 dimenziós egységvektort! Először egy véletlen vektor, majd gondoskodjunk róla, hogy egység hosszú legyen!</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del>E = np.random.rand(5)</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline"><python></ins></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del>E = E / np.sqrt((E.dot(E)))</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>E = np.random.rand(5)</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div> </div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>E = E / np.sqrt((E.dot(E)))</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline"></python></ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>==Monte-Carlo==</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>==Monte-Carlo==</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Generáljunk 500,000 véletlen pontot a <math>[0,2]\times[0,4]</math> téglalapba. Szánoljuk meg, hogy hány olyan <math>(x,y)</math> pont van, ahol <math>x^2<y</math>. Ez alapján becsüljük meg az <math>\int_0^2x^2</math> értékét! Segítség az előadás végén.  </div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Generáljunk 500,000 véletlen pontot a <math>[0,2]\times[0,4]</math> téglalapba. Szánoljuk meg, hogy hány olyan <math>(x,y)</math> pont van, ahol <math>x^2<y</math>. Ez alapján becsüljük meg az <math>\int_0^2x^2</math> értékét! Segítség az előadás végén.  </div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div> </div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline"><python></ins></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del>import numpy as np</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>import numpy as np</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del>x = np.random.rand(500000) * 2</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>x = np.random.rand(500000) * 2</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del>y = np.random.rand(500000) * 4</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>y = np.random.rand(500000) * 4</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del>L = np.where(x ** 2 > y)[0]</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>L = np.where(x ** 2 > y)[0]</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del>print len(L) / float(len(x)) * 2 * 4</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>print len(L) / float(len(x)) * 2 * 4</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div> </div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline"></python></ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* Most ugyanezt csináljuk meg, csak a véletlent zárjuk ki belőle! Osszuk fel a <math>[0,2]</math> és a <math>[0,4]</math> intervallumokat egyenletesen a linspace függvénnyel. A meshgrid és a ravel segítségével létrehozzuk a <math>[0,2]\times[0,4]</math> rácspontjait. Most ezekre a pontokra csináljuk meg a Monte-Carlot!</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* Most ugyanezt csináljuk meg, csak a véletlent zárjuk ki belőle! Osszuk fel a <math>[0,2]</math> és a <math>[0,4]</math> intervallumokat egyenletesen a linspace függvénnyel. A meshgrid és a ravel segítségével létrehozzuk a <math>[0,2]\times[0,4]</math> rácspontjait. Most ezekre a pontokra csináljuk meg a Monte-Carlot!</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div> </div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline"><python></ins></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del>import numpy as np</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>import numpy as np</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del>x = np.linspace(0, 2, 500)</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>x = np.linspace(0, 2, 500)</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del>y = np.linspace(0, 4, 500)</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>y = np.linspace(0, 4, 500)</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del>L = np.meshgrid(x, y)</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>L = np.meshgrid(x, y)</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del>L[0] = np.ravel(L[0])</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>L[0] = np.ravel(L[0])</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del>L[1] = np.ravel(L[1])</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>L[1] = np.ravel(L[1])</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del>K = np.where(L[0] ** 2 > L[1])[0]</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>K = np.where(L[0] ** 2 > L[1])[0]</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del>print len(K) / float(len(L[0])) * 2 * 4</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>print len(K) / float(len(L[0])) * 2 * 4</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div> </div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline"></python></ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>==Numerikus integrál==</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>==Numerikus integrál==</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Számoljuk ki az <math>e^{-x^2}</math> függvény integrálját a <math>[-2,5]</math>intervallumon téglalap módszerrel!</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Számoljuk ki az <math>e^{-x^2}</math> függvény integrálját a <math>[-2,5]</math>intervallumon téglalap módszerrel!</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div> </div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline"><python></ins></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del>I = np.arange(-2, 5, 0.01)</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>I = np.arange(-2, 5, 0.01)</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del>I = np.exp(-1 * (I ** 2))</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>I = np.exp(-1 * (I ** 2))</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del>print np.sum(I * 0.01)</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>print np.sum(I * 0.01)</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div> </div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline"></python></ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>==Gradiens módszer==</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>==Gradiens módszer==</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Egy kétváltozós függvény minimumát a következőképp közelítjük. Elindulunk egy <math>(x_0,y_0)</math> pontból, majd <math>\nabla f(x,y)\cdot \epsilon</math>-t kivonunk belőle. Ezt csináljuk addig, amíg a lépés abszolútértéke 0.0001 alatt nem lesz. Írjuk meg numpy segítségével az <math>f(x,y)=x^2+y^2</math> függvény minimumkeresését! <math>\epsilon = 0.01, (x_0,y_0)=(-1,-1)</math>!</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Egy kétváltozós függvény minimumát a következőképp közelítjük. Elindulunk egy <math>(x_0,y_0)</math> pontból, majd <math>\nabla f(x,y)\cdot \epsilon</math>-t kivonunk belőle. Ezt csináljuk addig, amíg a lépés abszolútértéke 0.0001 alatt nem lesz. Írjuk meg numpy segítségével az <math>f(x,y)=x^2+y^2</math> függvény minimumkeresését! <math>\epsilon = 0.01, (x_0,y_0)=(-1,-1)</math>!</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* Tároljuk el a lépéseket egy tömbben és plotoljuk ki a pontokat a matplotlib segítségével!</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* Tároljuk el a lépéseket egy tömbben és plotoljuk ki a pontokat a matplotlib segítségével!</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div> </div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline"><python></ins></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del>def grad(x, y):</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>def grad(x, y):</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">    </del>return np.array([2 * x, 2 * y])</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">    </ins>return np.array([2 * x, 2 * y])</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del>L = []</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>L = []</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del>x0 = -1</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>x0 = -1</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del>y0 = -1</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>y0 = -1</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del>eps = 0.01</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>eps = 0.01</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del>while np.sqrt(grad(x0, y0).dot(grad(x0, y0))) * eps > 0.001:</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>while np.sqrt(grad(x0, y0).dot(grad(x0, y0))) * eps > 0.001:</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">    </del>[x0, y0] = np.array([x0, y0]) - grad(x0, y0) * eps</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">    </ins>[x0, y0] = np.array([x0, y0]) - grad(x0, y0) * eps</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">    </del>L.append([x0, y0])</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">    </ins>L.append([x0, y0])</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del>print L[-1]</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>print L[-1]</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline"></python></ins></div></td></tr>
</table>
Kkovacs
http://wiki.math.bme.hu/index.php?title=Informatika2-2016/Gyakorlat13Megold&diff=11663&oldid=prev
Kkovacs, 2016. május 16., 10:40-n
2016-05-16T10:40:09Z
<p></p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr valign='top'>
<td colspan='2' style="background-color: white; color:black;">←Régebbi változat</td>
<td colspan='2' style="background-color: white; color:black;">A lap 2016. május 16., 10:40-kori változata</td>
</tr><tr><td colspan="2" class="diff-lineno">49. sor:</td>
<td colspan="2" class="diff-lineno">49. sor:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>==Gradiens módszer==</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>==Gradiens módszer==</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Egy kétváltozós függvény minimumát a következőképp közelítjük. Elindulunk egy <math>(x_0,y_0)</math> pontból, majd <math>\nabla f(x,y)\cdot \epsilon</math>-t kivonunk belőle. Ezt csináljuk addig, amíg a lépés abszolútértéke 0.0001 alatt nem lesz. Írjuk meg numpy segítségével az <math>f(x,y)=x^2+y^2</math> függvény minimumkeresését! <math>\epsilon = 0.01, (x_0,y_0)=(-1,-1)</math>!</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Egy kétváltozós függvény minimumát a következőképp közelítjük. Elindulunk egy <math>(x_0,y_0)</math> pontból, majd <math>\nabla f(x,y)\cdot \epsilon</math>-t kivonunk belőle. Ezt csináljuk addig, amíg a lépés abszolútértéke 0.0001 alatt nem lesz. Írjuk meg numpy segítségével az <math>f(x,y)=x^2+y^2</math> függvény minimumkeresését! <math>\epsilon = 0.01, (x_0,y_0)=(-1,-1)</math>!</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">* Tároljuk el a lépéseket egy tömbben és plotoljuk ki a pontokat a matplotlib segítségével!</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>  def grad(x, y):</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>  def grad(x, y):</div></td></tr>
<tr><td colspan="2" class="diff-lineno">60. sor:</td>
<td colspan="2" class="diff-lineno">61. sor:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>     L.append([x0, y0])</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>     L.append([x0, y0])</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>  print L[-1]</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>  print L[-1]</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;"></del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">* Tároljuk el a lépéseket egy tömbben és plotoljuk ki a pontokat a matplotlib segítségével!</del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">==Gauss-elimináció kézzel==</del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">Oldjuk meg Gauss-eliminációval az </del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">* <math>3x_1-x_2+x_3-x_4+2x_5=13</math></del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">* <math> x_1-2x_2+3x_3-x_4=5</math></del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">* <math>x_1-x_2-x_3-x_4-x_5=-1</math></del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">* <math>x_2-2x_3+x_4-4x_5=-7</math></del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">* <math>x_1+x_3+3x_4-x_5=5</math> egyenletrendszert!</del></div></td><td colspan="2"> </td></tr>
</table>
Kkovacs
http://wiki.math.bme.hu/index.php?title=Informatika2-2016/Gyakorlat13Megold&diff=11662&oldid=prev
Kkovacs, 2016. május 16., 10:39-n
2016-05-16T10:39:48Z
<p></p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr valign='top'>
<td colspan='2' style="background-color: white; color:black;">←Régebbi változat</td>
<td colspan='2' style="background-color: white; color:black;">A lap 2016. május 16., 10:39-kori változata</td>
</tr><tr><td colspan="2" class="diff-lineno">42. sor:</td>
<td colspan="2" class="diff-lineno">42. sor:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>==Numerikus integrál==</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>==Numerikus integrál==</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Számoljuk ki az <math>e^{-x^2}</math> függvény integrálját a <math>[-2,5]</math>intervallumon téglalap módszerrel!</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Számoljuk ki az <math>e^{-x^2}</math> függvény integrálját a <math>[-2,5]</math>intervallumon téglalap módszerrel!</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"> I = np.arange(-2, 5, 0.01)</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"> I = np.exp(-1 * (I ** 2))</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"> print np.sum(I * 0.01)</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>==Gradiens módszer==</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>==Gradiens módszer==</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Egy kétváltozós függvény minimumát a következőképp közelítjük. Elindulunk egy <math>(x_0,y_0)</math> pontból, majd <math>\nabla f(x,y)\cdot \epsilon</math>-t kivonunk belőle. Ezt csináljuk addig, amíg a lépés abszolútértéke 0.0001 alatt nem lesz. Írjuk meg numpy segítségével az <math>f(x,y)=x^2+y^2</math> függvény minimumkeresését! <math>\epsilon = 0.01, (x_0,y_0)=(-1,-1)</math>!</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Egy kétváltozós függvény minimumát a következőképp közelítjük. Elindulunk egy <math>(x_0,y_0)</math> pontból, majd <math>\nabla f(x,y)\cdot \epsilon</math>-t kivonunk belőle. Ezt csináljuk addig, amíg a lépés abszolútértéke 0.0001 alatt nem lesz. Írjuk meg numpy segítségével az <math>f(x,y)=x^2+y^2</math> függvény minimumkeresését! <math>\epsilon = 0.01, (x_0,y_0)=(-1,-1)</math>!</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"> def grad(x, y):</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">    return np.array([2 * x, 2 * y])</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"> L = []</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"> x0 = -1</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"> y0 = -1</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"> eps = 0.01</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"> while np.sqrt(grad(x0, y0).dot(grad(x0, y0))) * eps > 0.001:</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">    [x0, y0] = np.array([x0, y0]) - grad(x0, y0) * eps</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">    L.append([x0, y0])</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"> print L[-1]</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* Tároljuk el a lépéseket egy tömbben és plotoljuk ki a pontokat a matplotlib segítségével!</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* Tároljuk el a lépéseket egy tömbben és plotoljuk ki a pontokat a matplotlib segítségével!</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>==Gauss-elimináció kézzel==</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>==Gauss-elimináció kézzel==</div></td></tr>
</table>
Kkovacs
http://wiki.math.bme.hu/index.php?title=Informatika2-2016/Gyakorlat13Megold&diff=11661&oldid=prev
Kkovacs: /* Monte-Carlo */
2016-05-16T10:31:32Z
<p><span class="autocomment">Monte-Carlo</span></p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr valign='top'>
<td colspan='2' style="background-color: white; color:black;">←Régebbi változat</td>
<td colspan='2' style="background-color: white; color:black;">A lap 2016. május 16., 10:31-kori változata</td>
</tr><tr><td colspan="2" class="diff-lineno">31. sor:</td>
<td colspan="2" class="diff-lineno">31. sor:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* Most ugyanezt csináljuk meg, csak a véletlent zárjuk ki belőle! Osszuk fel a <math>[0,2]</math> és a <math>[0,4]</math> intervallumokat egyenletesen a linspace függvénnyel. A meshgrid és a ravel segítségével létrehozzuk a <math>[0,2]\times[0,4]</math> rácspontjait. Most ezekre a pontokra csináljuk meg a Monte-Carlot!</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* Most ugyanezt csináljuk meg, csak a véletlent zárjuk ki belőle! Osszuk fel a <math>[0,2]</math> és a <math>[0,4]</math> intervallumokat egyenletesen a linspace függvénnyel. A meshgrid és a ravel segítségével létrehozzuk a <math>[0,2]\times[0,4]</math> rácspontjait. Most ezekre a pontokra csináljuk meg a Monte-Carlot!</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div>   </div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>  <ins class="diffchange diffchange-inline">import numpy as np</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline"> x = np.linspace(0, 2, 500)</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline"> y = np.linspace(0, 4, 500)</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline"> L = np.meshgrid(x, y)</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline"> L[0] = np.ravel(L[0])</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline"> L[1] = np.ravel(L[1])</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline"> K = np.where(L[0] ** 2 > L[1])[0]</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline"> print len(K) / float(len(L[0])) * 2 * 4</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div> </div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>==Numerikus integrál==</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>==Numerikus integrál==</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Számoljuk ki az <math>e^{-x^2}</math> függvény integrálját a <math>[-2,5]</math>intervallumon téglalap módszerrel!</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Számoljuk ki az <math>e^{-x^2}</math> függvény integrálját a <math>[-2,5]</math>intervallumon téglalap módszerrel!</div></td></tr>
</table>
Kkovacs
http://wiki.math.bme.hu/index.php?title=Informatika2-2016/Gyakorlat13Megold&diff=11660&oldid=prev
Kkovacs, 2016. május 16., 10:20-n
2016-05-16T10:20:41Z
<p></p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr valign='top'>
<td colspan='2' style="background-color: white; color:black;">←Régebbi változat</td>
<td colspan='2' style="background-color: white; color:black;">A lap 2016. május 16., 10:20-kori változata</td>
</tr><tr><td colspan="2" class="diff-lineno">22. sor:</td>
<td colspan="2" class="diff-lineno">22. sor:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>==Monte-Carlo==</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>==Monte-Carlo==</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Generáljunk 500,000 véletlen pontot a <math>[0,2]\times[0,4]</math> téglalapba. Szánoljuk meg, hogy hány olyan <math>(x,y)</math> pont van, ahol <math>x^2<y</math>. Ez alapján becsüljük meg az <math>\int_0^2x^2</math> értékét! Segítség az előadás végén.  </div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Generáljunk 500,000 véletlen pontot a <math>[0,2]\times[0,4]</math> téglalapba. Szánoljuk meg, hogy hány olyan <math>(x,y)</math> pont van, ahol <math>x^2<y</math>. Ez alapján becsüljük meg az <math>\int_0^2x^2</math> értékét! Segítség az előadás végén.  </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"> import numpy as np</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"> x = np.random.rand(500000) * 2</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"> y = np.random.rand(500000) * 4</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"> L = np.where(x ** 2 > y)[0]</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"> print len(L) / float(len(x)) * 2 * 4</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* Most ugyanezt csináljuk meg, csak a véletlent zárjuk ki belőle! Osszuk fel a <math>[0,2]</math> és a <math>[0,4]</math> intervallumokat egyenletesen a linspace függvénnyel. A meshgrid és a ravel segítségével létrehozzuk a <math>[0,2]\times[0,4]</math> rácspontjait. Most ezekre a pontokra csináljuk meg a Monte-Carlot!</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* Most ugyanezt csináljuk meg, csak a véletlent zárjuk ki belőle! Osszuk fel a <math>[0,2]</math> és a <math>[0,4]</math> intervallumokat egyenletesen a linspace függvénnyel. A meshgrid és a ravel segítségével létrehozzuk a <math>[0,2]\times[0,4]</math> rácspontjait. Most ezekre a pontokra csináljuk meg a Monte-Carlot!</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"> </ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>==Numerikus integrál==</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>==Numerikus integrál==</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Számoljuk ki az <math>e^{-x^2}</math> függvény integrálját a <math>[-2,5]</math>intervallumon téglalap módszerrel!</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Számoljuk ki az <math>e^{-x^2}</math> függvény integrálját a <math>[-2,5]</math>intervallumon téglalap módszerrel!</div></td></tr>
</table>
Kkovacs
http://wiki.math.bme.hu/index.php?title=Informatika2-2016/Gyakorlat13Megold&diff=11659&oldid=prev
Kkovacs, 2016. május 16., 09:47-n
2016-05-16T09:47:19Z
<p></p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr valign='top'>
<td colspan='2' style="background-color: white; color:black;">←Régebbi változat</td>
<td colspan='2' style="background-color: white; color:black;">A lap 2016. május 16., 09:47-kori változata</td>
</tr><tr><td colspan="2" class="diff-lineno">8. sor:</td>
<td colspan="2" class="diff-lineno">8. sor:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>  M = np.arange(9).reshape(3,3)</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>  M = np.arange(9).reshape(3,3)</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div># Hozzunk létre egy 30 hosszú listát véletlen számokkal 0 és 1 között! Számoljuk ki az elemek átlagát és a szórását! ''(rand, mean, std)''</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div># Hozzunk létre egy 30 hosszú listát véletlen számokkal 0 és 1 között! Számoljuk ki az elemek átlagát és a szórását! ''(rand, mean, std)''</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"> R = np.random.rand(30)</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"> print R.mean()</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"> print R.std()</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>## Hozzunk lérte egy 30 hosszú listát véletlen számokkal -3 és 2 között!</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>## Hozzunk lérte egy 30 hosszú listát véletlen számokkal -3 és 2 között!</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"> R = np.random.rand(30)</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"> R = R * 5</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"> R = R - 3</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div># Hozzunk létre egy véletlen, 5 dimenziós egységvektort! Először egy véletlen vektor, majd gondoskodjunk róla, hogy egység hosszú legyen!</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div># Hozzunk létre egy véletlen, 5 dimenziós egységvektort! Először egy véletlen vektor, majd gondoskodjunk róla, hogy egység hosszú legyen!</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div> </div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline"> E = np.random.rand(5)</ins></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div> </div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline"> E = E / np.sqrt((E.dot(E)))</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
</table>
Kkovacs
http://wiki.math.bme.hu/index.php?title=Informatika2-2016/Gyakorlat13Megold&diff=11657&oldid=prev
Kkovacs, 2016. május 16., 03:40-n
2016-05-16T03:40:08Z
<p></p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr valign='top'>
<td colspan='2' style="background-color: white; color:black;">←Régebbi változat</td>
<td colspan='2' style="background-color: white; color:black;">A lap 2016. május 16., 03:40-kori változata</td>
</tr><tr><td colspan="2" class="diff-lineno">2. sor:</td>
<td colspan="2" class="diff-lineno">2. sor:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Ismerkedésképp néhány egyszerű feladat.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Ismerkedésképp néhány egyszerű feladat.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div># Hozzunk létre egy 10 hosszú, csupa 0 vektort! Módosítsuk a 4. elemét 1-re! ''(zeros)''</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div># Hozzunk létre egy 10 hosszú, csupa 0 vektort! Módosítsuk a 4. elemét 1-re! ''(zeros)''</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"> import numpy as np</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"> L = np.zeros(10)</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"> L[3] = 1</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div># Hozzunk létre egy 3x3-as mátrixot, 0-tól 8-ig növekvő számokkal! ''(reshape)''</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div># Hozzunk létre egy 3x3-as mátrixot, 0-tól 8-ig növekvő számokkal! ''(reshape)''</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"> M = np.arange(9).reshape(3,3)</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div># Hozzunk létre egy 30 hosszú listát véletlen számokkal 0 és 1 között! Számoljuk ki az elemek átlagát és a szórását! ''(rand, mean, std)''</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div># Hozzunk létre egy 30 hosszú listát véletlen számokkal 0 és 1 között! Számoljuk ki az elemek átlagát és a szórását! ''(rand, mean, std)''</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>## Hozzunk lérte egy 30 hosszú listát véletlen számokkal -3 és 2 között!</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>## Hozzunk lérte egy 30 hosszú listát véletlen számokkal -3 és 2 között!</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div># Hozzunk létre egy véletlen, 5 dimenziós egységvektort! Először egy véletlen vektor, majd gondoskodjunk róla, hogy egység hosszú legyen!</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div># Hozzunk létre egy véletlen, 5 dimenziós egységvektort! Először egy véletlen vektor, majd gondoskodjunk róla, hogy egység hosszú legyen!</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>==Monte-Carlo==</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>==Monte-Carlo==</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Generáljunk 500,000 véletlen pontot a <math>[0,2]\times[0,4]</math> téglalapba. Szánoljuk meg, hogy hány olyan <math>(x,y)</math> pont van, ahol <math>x^2<y</math>. Ez alapján becsüljük meg az <math>\int_0^2x^2</math> értékét! Segítség az előadás végén.  </div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Generáljunk 500,000 véletlen pontot a <math>[0,2]\times[0,4]</math> téglalapba. Szánoljuk meg, hogy hány olyan <math>(x,y)</math> pont van, ahol <math>x^2<y</math>. Ez alapján becsüljük meg az <math>\int_0^2x^2</math> értékét! Segítség az előadás végén.  </div></td></tr>
</table>
Kkovacs
http://wiki.math.bme.hu/index.php?title=Informatika2-2016/Gyakorlat13Megold&diff=11656&oldid=prev
Kkovacs: Új oldal, tartalma: „==Bevezető== Ismerkedésképp néhány egyszerű feladat. # Hozzunk létre egy 10 hosszú, csupa 0 vektort! Módosítsuk a 4. elemét 1-re! ''(zeros)'' # Hozzunk létr…”
2016-05-16T02:55:33Z
<p>Új oldal, tartalma: „==Bevezető== Ismerkedésképp néhány egyszerű feladat. # Hozzunk létre egy 10 hosszú, csupa 0 vektort! Módosítsuk a 4. elemét 1-re! ''(zeros)'' # Hozzunk létr…”</p>
<p><b>Új lap</b></p><div>==Bevezető==<br />
Ismerkedésképp néhány egyszerű feladat.<br />
# Hozzunk létre egy 10 hosszú, csupa 0 vektort! Módosítsuk a 4. elemét 1-re! ''(zeros)''<br />
# Hozzunk létre egy 3x3-as mátrixot, 0-tól 8-ig növekvő számokkal! ''(reshape)''<br />
# Hozzunk létre egy 30 hosszú listát véletlen számokkal 0 és 1 között! Számoljuk ki az elemek átlagát és a szórását! ''(rand, mean, std)''<br />
## Hozzunk lérte egy 30 hosszú listát véletlen számokkal -3 és 2 között!<br />
# Hozzunk létre egy véletlen, 5 dimenziós egységvektort! Először egy véletlen vektor, majd gondoskodjunk róla, hogy egység hosszú legyen!<br />
==Monte-Carlo==<br />
Generáljunk 500,000 véletlen pontot a <math>[0,2]\times[0,4]</math> téglalapba. Szánoljuk meg, hogy hány olyan <math>(x,y)</math> pont van, ahol <math>x^2<y</math>. Ez alapján becsüljük meg az <math>\int_0^2x^2</math> értékét! Segítség az előadás végén. <br />
* Most ugyanezt csináljuk meg, csak a véletlent zárjuk ki belőle! Osszuk fel a <math>[0,2]</math> és a <math>[0,4]</math> intervallumokat egyenletesen a linspace függvénnyel. A meshgrid és a ravel segítségével létrehozzuk a <math>[0,2]\times[0,4]</math> rácspontjait. Most ezekre a pontokra csináljuk meg a Monte-Carlot!<br />
==Numerikus integrál==<br />
Számoljuk ki az <math>e^{-x^2}</math> függvény integrálját a <math>[-2,5]</math>intervallumon téglalap módszerrel!<br />
==Gradiens módszer==<br />
Egy kétváltozós függvény minimumát a következőképp közelítjük. Elindulunk egy <math>(x_0,y_0)</math> pontból, majd <math>\nabla f(x,y)\cdot \epsilon</math>-t kivonunk belőle. Ezt csináljuk addig, amíg a lépés abszolútértéke 0.0001 alatt nem lesz. Írjuk meg numpy segítségével az <math>f(x,y)=x^2+y^2</math> függvény minimumkeresését! <math>\epsilon = 0.01, (x_0,y_0)=(-1,-1)</math>!<br />
* Tároljuk el a lépéseket egy tömbben és plotoljuk ki a pontokat a matplotlib segítségével!<br />
==Gauss-elimináció kézzel==<br />
Oldjuk meg Gauss-eliminációval az <br />
* <math>3x_1-x_2+x_3-x_4+2x_5=13</math><br />
* <math> x_1-2x_2+3x_3-x_4=5</math><br />
* <math>x_1-x_2-x_3-x_4-x_5=-1</math><br />
* <math>x_2-2x_3+x_4-4x_5=-7</math><br />
* <math>x_1+x_3+3x_4-x_5=5</math> egyenletrendszert!</div>
Kkovacs