Dodaj tabelo napak

This commit is contained in:
Martin Vuk 2026-01-04 01:36:13 +01:00
parent c20e72c395
commit a97bee079d
4 changed files with 91 additions and 3 deletions

5
graf_napake.jl Normal file
View file

@ -0,0 +1,5 @@
using Plots
plot(x->sin(x)-(x-x^3/6 + x^5/120), -0.1, 0.1)
savefig("napaka.svg")

View file

@ -1,3 +1,6 @@
#import "@preview/zero:0.5.0": num, set-round
#import "@preview/oxifmt:1.0.0": strfmt
= Numerično računanje kotnih funkcij = Numerično računanje kotnih funkcij
*Naloga*: Izračunati želimo vrednosti kotnih funkcij na *10 decimalnih mest* natančno. *Naloga*: Izračunati želimo vrednosti kotnih funkcij na *10 decimalnih mest* natančno.
@ -7,7 +10,35 @@ Da bo funkcija uporabna, zahtevamo naslednje lastnosti:
- relativna mapaka je enakomerno omejena - relativna mapaka je enakomerno omejena
- uporabnik funkciji poda zgolj argument, izbiro algoritma in število potrebnih korakov opravi funkcija sama. - uporabnik funkciji poda zgolj argument, izbiro algoritma in število potrebnih korakov opravi funkcija sama.
Graf prikazuje razliko med sinusno funkcijo in dvema členoma v razvoju okrog 0. Graf prikazuje razliko med sinusno funkcijo in prvimi tremi členi Taylorjeve vrste v točki 0.
//Vstavi sliko! //Vstavi sliko!
#image("napaka.svg")
Uporabimo adicijske izreke za kotne funkcije. Ker želimo izračunati za velike vrednosti, uporabimo formulo za dvojni kot
$
sin(2alpha) = 2sin(alpha)cos(alpha).
$
Težava je, da formula vsebuje tudi vrednost funkcije $cos(alpha)$. Problem rešimo tako, da hkrati računamo obe funkciji $sin(x)$ in $cos(x)$. Napisali bomo funkcijo sincos(x)
// vstavi signaturo
Ekvivalent formule /*vstavi referenco!*/ za dvojni kot za $sin$ je
$
cos(2alpha) = cos^2(alpha)-sin^2(alpha)
$
// vstavi tabelo napak
#let x_tab = (0.01, 0.05, 0.1, 0.5)
#let sin_t3(x) = x*(1+x*x*(-(1/6) + x*x/120))
#let cos_t3(x) = 1 + x*x*(-1/2 + x*x/24)
#let fmt(x) = num(strfmt("{:.2e}", x))
#let sin_x = x_tab.map(
(x)=>fmt(calc.sin(x) - sin_t3(x)))
#let cos_x = x_tab.map(
(x)=>fmt(calc.cos(x)-cos_t3(x)))
#set-round(mode: "figures", precision: 3)
#table(columns: x_tab.len() + 1, $x$, ..x_tab.map((x)=>str(x)), $sin(x)-T_(sin)(x)$, ..sin_x, $cos(x)-T_(cos)(x)$, ..cos_x)

41
napaka.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 32 KiB

View file

@ -1,3 +1,14 @@
using Plots """
s, c = sincos(x)
plot(x->sin(x)-(x-x^3/3)) Izračunaj vrednost funkcij `sin` in `cos` za dano vrednost `x`.
"""
function sincos(x)
if (abs(x)< 0.05)
x2 = x^2
return x*(1 + x2*(-1/6 + x2/120)), 1 + x2*(-0.5 + x2/24)
end
x = mod(x, 2pi)
s, c = sincos(x/2)
return 2*s*c, c^2 - s^2
end