Jarek Statinowy

Jarek Statinowy Z zapałem do pracy

Temat: 1/0=nie inf???

Witam

Mam taki problem pytanie

licząc
sin(pi)/2
dostaję wynik 6.123032e-17 oczywiście wiem, że przy tym poziomie to jest bliskie zeru, zastanawiam się czy przy poważniejszych operacjach nie zaburzy to wyniku?

Jak się z tym uporać?Ten post został edytowany przez Autora dnia 08.03.17 o godzinie 10:16

Temat: 1/0=nie inf???

Jarek S.:
Witam

Mam taki problem pytanie

licząc
sin(pi)/2
dostaję wynik 6.123032e-17 oczywiście wiem, że przy tym poziomie to jest bliskie zeru, zastanawiam się czy przy poważniejszych operacjach nie zaburzy to wyniku?

Jak się z tym uporać?

To nie jest wina R tylko tego, jak skonstruowane są procesory. Niezależnie od języka programowania liczby zmiennoprzecinkowe mają ograniczoną precyzję i nie da się tego obejść, bo komputer nie zna i nie rozumie pojęcia nieskończoności.
Jarek Statinowy

Jarek Statinowy Z zapałem do pracy

Temat: 1/0=nie inf???

Tak tak wiem o tym
ale jestem w stanie policzyć
1/(sin(pi))
a to już staje się niebezpieczne

Wiem, że np w Mathematice jest pewna komenda która zwraca "zaokragloną wartość" znaczy poprawną 0 lub inf w zależności co powinno wyjść

Dlatego pytam czy R nie posiada takich opcji? zabezpieczeń?

bo
sin(pi)*9999999999999999999=1224.606
a powinno zadać zero.
Mam więc "ostro" zły wynik a przy dalszych obliczeniach wychodzą bzdury

A dla wszystkich kobiet na forum :) z okazji 8 marca

#włącz pakiet plotrix
dat<- data.frame(t=seq(0, 60*pi, by=0.1) )

R=10
r=1.25
h=10

xhrt <- function(t) (R+r)*cos(t)+h*cos(((R+r)*t)/r)
yhrt <- function(t) (R+r)*sin(t)-h*sin(((R+r)*t)/r)
dat$y=yhrt(dat$t)
dat$x=xhrt(dat$t)

with(dat, plot(x,y, type="l",col="red",lwd = 1))
draw.circle(0, 0, R, nv = 1000, border = "red", col = "yellow", lty = 1, lwd = 3)

Można pobawić się wartosciami R,r,h oraz kolorami w dwóch ostatnich linijkach

Temat: 1/0=nie inf???


round(sin(pi),12) * 9999999999999999999


Na przyklad tak.

Temat: 1/0=nie inf???

Po prostu wymaga to pewnej świadomości użytkownika. Jeśli wiesz, że będziesz operował na czymś, co w wyniku wartość infitezymalną, odpowiednio to zabezpiecz.

Jeśli wykonuje się obliczenia nieświadomie, to niestety, dostaje się problematyczne wyniki. Czasem ważne jest np., czy się mnoży razy 0.01^2 czy 0.0001...

Przykład: http://stats.stackexchange.com/questions/160711/how-to...

Następna dyskusja:

maksymalizacja funkcji - co...




Wyślij zaproszenie do