PKow: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Przykry (dyskusja | edycje)
Przykry (dyskusja | edycje)
Linia 5: Linia 5:




<div style="margin-top:1em; padding-top,padding-bottom:1em;">
<span  style="display: block; background-color:#fefeee; border-bottom: 1px solid #E5E5E5; line-height: 1.1em; padding-bottom: 0.2em; font-variant:small-caps; color:#1A6ABF;">Ćwiczenie: Ciag dalszy</span>
<div class="exercise">
Spróbuj obniżyć koszt wyznaczania <math>\displaystyle \exp(x)</math> dla dużych <math>\displaystyle x</math>!
<div class="mw-collapsible mw-made=collapsible mw-collapsed"><span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Wskazówka </span><div class="mw-collapsible-content" style="display:none">
<div style="font-size:smaller; background-color:#efe"> Rzecz w tym, że dla dużych <math>\displaystyle x</math>, trzeba wziąć bardzo dużo wyrazów w szeregu
Taylora. Czy można tak wykombinować, by w rezultacie wziąć ich mniej? </div>
</div></div>
</div></div>


<div class="mw-collapsible mw-made=collapsible mw-collapsed"><span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Rozwiązanie </span><div class="mw-collapsible-content" style="display:none"><div style="margin-left:1em">   
<div class="mw-collapsible mw-made=collapsible mw-collapsed"><span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Rozwiązanie </span><div class="mw-collapsible-content" style="display:none"><div style="margin-left:1em">   
W pierwszym odruchu myślimy o szeregu definiującym funkcję wykładniczą,


[[Image:MNkosztexpa.png|thumb|300px|Koszt aproksymacji wielomianem Taylora.]]
Bez zmieniejszenia ogólności, załóżmy, że <math>\displaystyle x\geq 0</math>.
 
Jeśli <math>\displaystyle x = k + t</math>, gdzie <math>\displaystyle t \in [0,1)</math>, a <math>\displaystyle k</math> jest całkowite, to oczywiście
<center><math>\displaystyle
e^x = e^{k+t} = e^k e^t = e^k \exp(t).
</math></center>


</div></div></div>
Tak więc zadanie redukuje się do wyznaczenia <math>\displaystyle \exp(t)</math> dla ''małego'' <math>\displaystyle t</math> oraz
do co najwyżej <math>\displaystyle k</math> dodatkowych mnożeń potrzebnych do wyznaczenia całkowitej
potęgi <math>\displaystyle e^k</math> (ile mnożeń ''naprawdę'' wystarczy?). Pamiętaj, przyjęliśmy, że
znamy reprezentację numeryczną liczby <math>\displaystyle e</math>.


nie pokazuje obrazka, chociaż gdy na tej samej stronie umiescic go bez ukrywajki
<div class="code" style="background-color:#e8e8e8; padding:1em"><pre>
[Wersja B]
function [y, N] <nowiki>=</nowiki> expb(x, epsilon)
k <nowiki>=</nowiki> floor(x); t <nowiki>=</nowiki> x - k;
[y, N] <nowiki>=</nowiki> expa(t, epsilon);
for i <nowiki>=</nowiki> 1:k
y *<nowiki>=</nowiki> e;
end
N +<nowiki>=</nowiki> (k+2);
end
</pre></div>
[[Image:MNkosztexpab.png|thumb|300px|Wersja B, w której sprytnie redukujemy zadanie do
wyznaczania <math>\displaystyle e^t</math> dla <math>\displaystyle t\in [0,1]</math> jest istotnie tańsza.]]


[[Image:MNkosztexpa.png|thumb|300px|Koszt aproksymacji wielomianem Taylora.]]
</div></div></div>

Wersja z 14:02, 29 sie 2006

Wyznaczanie wektorów i wartości własnych

Przykład Moj przykład

Tekst

Algorytm Nie robiący nic


 Leż


Ćwiczenie: Ciag dalszy

Spróbuj obniżyć koszt wyznaczania exp(x) dla dużych x!

Wskazówka
Rozwiązanie