Piirretään ja valitaan hiirellä klikkaamalla alkuarvaus nollakohdalle.
Tiedostossa fzero_johdantoesim.m on koodi:
close all % Suljetaan grafiikkaikkunat
f=@(x) 9*sin(x)-x
fplot(f,[0 10]); grid on
title('valitse hiirellä piste nollakohdan läheltä')
[x0,y] = ginput(1);
hold on
plot(x0,0,'o');
x00=fzero(f,x0);
plot(x00,f(x00),'*')
shg % show graphics
gtext('Alkuarvaus')
gtext('Nollakohta')
gtext('fzero:lla laskettuna')
Tässä istunnon ajo kuvineen
(yllä olevan m-tiedoston valinnalla FILE->PUBLISH).
Määritä hyvin pieni väli [a,b] (parhaassa tapauksessa 2 peräkkäistä liukulukua) siten, että f(a)f(b) < 0.Bisektiomenetelmää havainnollistava koodi, mukalma C.van Loanin
ShowBisect.m-koodista. Tehtävä:
debug-valikon valintoja. while-lauseen eteen ja suorita "continue" (F5). Katso muuttujia x,X,a,b työtilassa ja/tai m-tiedostossa pitämällä
osoitinta kevyesti muuttujannimen päällä.
Tee erilaisia kokeiluja, niistä voi olla arvaamaton hyöty "tosi paikan tullen".
tol ja alkuväli on
[a,b], niin n on valittava niin, että
Jos välin pituus on 1 ja tol=eps, niin(b-a)/2n < tol, eli n > log2((b-a)/tol).
>> n=log2(1/eps) % Välin pituus = 1
n =
52
>> n=log2(10/eps) % Välin pituus = 10
n =
55.3219 % (Välin pituus ei juuri näyttele osaa.)
newt1.
Siellä myös annettiin ohjelmointitehtävä, itse asiassa sama koodi on Molerin
kirjan s. 119. (Tosin laskuri k ei ole välttämätön.)Tehtävä
Tehtävä Tutustu, aja ja muokkaa tarvittaessa tätä:
esim/newtonpaha.m
Yleiset suppenemisehdot eivät päde, koska derivaatta menee äärettömyyteen O:ssa.
Newtonin ongelmat
Muokkaa Newtonin menetelmän ohjelmaasi
Käyttämällä "symbolic toolboxia" derivaatan symboliseen muodostamiseen.
Ei ihan helppo. Kannattaa ensialkuun siirtää Maple-puolelle, tai tehdä Matlabin symbolipuolella (Mupad). Ei siis ota onnistuakseen tyyliin
syms u; f=@sin; df=@(u)diff(f(u),u)
Lue lisää:
Tässä ovat Molerin kirjan m-tiedostot Hae fzerogui.m Siinä on hieno havainnollistus fzero:n toiminnasta. Suorita:
fzerogui(@(x)besselj(0,x),[0 3.83])
Seuraa vaiheita Molerin kirjasta.
Yksi sopiva: Hae 10 ensimmäistä nollakohtaa yhtälölle tan x = x. (Vrt. tangentin piirtämisteht.)