- Tak właśnie, Masz napisać swojego sinusa na podstawie rozwinięcia w szereg.
- ...
- Rozwijasz wielokrotnie w szereg, najpierw Bierzesz jeden wyraz i Liczysz dokładność, potem dwa wyrazy i dokładność i tak dalej... I wykres będzie
k
(liczba wziętych wyrazów) od błędu bezwzględnego.
Dobra, więc po kolei:
Kopiuj
function[y]=sinus(x,dok)
x=0:dok:2*pi;
plot(x,y=sin(x),'--mo');
axis([0 (2*pi)-dok -1 1]);
s = 0;
for i=1:length(x)
s = s + (-((x(i)^2)/(2*length(x)*(2*length(x)+1))));
end
end
Ogólnie tak wygląda moja funcja tablicująca. Częśc na górze oblicza wartości sinusa dla podanych x-ów i generuje wykres funkcji.
W petli for zamieściłem wzór za sumowanie szeregu. K-tym składnikiem jest ilość elementów w tablicy x, czyli 17, bo:
Columns 1 through 12:
0.00000 0.39270 0.78540 1.17810 1.57080 1.96350 2.35619 2.74889 3.14159 3.53429 3.92699 4.31969
Columns 13 through 17:
4.71239 5.10509 5.49779 5.89049 6.28319
tyle ich mamy po uwzględnieniu początku (0), końca (2*pi) i skoku (dok) argumentów funkcji.
Suma wyszła = -0.19387.
Z tego trzecieg nic nie rozumiem. W jaki sposób mam policzyć dokładność, skoro to ja ją podaję?
Myśle, aby zrobić w ten sposób, żeby do funkcji:
Kopiuj
for i=1:length(x)
s = s + (-((x(i)^2)/(2*length(x)*(2*length(x)+1))));
end
zamiast x-ów podanych na początku jako zakres argumentów funkcji, wstawić po prostu x = pi/8 i wtedy zrobić taki wykres:
plot(-1:length(x)+1, suma kolejnych wyrazów);
Jeżeli pokręciłem to pliss wytłumacz mi to jakoś, bo muszę z tego zrobić sprawozdanie na studia :/