• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Octave nie porównuje zmiennych w odpowiedni sposób.

Object Storage Arubacloud
0 głosów
222 wizyt
pytanie zadane 30 kwietnia 2022 w Inne języki przez xTMx3 Obywatel (1,560 p.)

Witam,

rozwiązując sobie jedno z zadań na Metody Numeryczne trafiłem na pewien problem, który nie do końca rozumiem z czego wynika. Jeden z ostatnich kroków zadania mówi, abym obliczył błąd rzeczywisty, a następnie sprawdził czy jest on na poziomie epsilonu maszynowego.

Błąd wychodzi mi taki: b_rz = 1.343834447586900e-05

A kiedy sprawdzam wartość eps pojawia się taka liczba: eps = 2.220446049250313e-16

Cały problem pojawia się w momencie kiedy wpisuję następującą linijkę:

b_rz <= eps

Wynikiem tego ciągle jest 0, a wydaje mi się, że powinno być 1.

Czy jest tu może osoba, która byłaby w stanie mi wytłumaczyć czemu tak się dzieje? Czy to błąd Octave, czy ja coś źle robię lub źle rozumiem działanie porównań w tym programie?

 

 

1 odpowiedź

0 głosów
odpowiedź 30 kwietnia 2022 przez Wiciorny Ekspert (269,590 p.)

no dlatego, że EPS nie jest większy ? zauważ że b_rz jest e-05, jest większe niz e-16
to są wartości po przecinku więc potęgi -16 są znacznie mniejszymi liczbami niż potęgi liczb do -5 

0.0001 > niz 0.0000001 np. 
 

x <= y

True if x is less than or equal to y.

Jeśli analizujesz pełne wartości a nie ich odcięcia, to program działa prawidłowo.  

komentarz 30 kwietnia 2022 przez xTMx3 Obywatel (1,560 p.)
Dziękuję za odpowiedź, jest tak jak mówisz .. siedzę z tym od rana i myślenie się chyba już samo wyłącza.

Jednak skoro wynik który pokazuje Octave jest poprawny, oznacza to, że musiałem zrobić gdzieś błąd w obliczeniach, bo zgodnie z komentarzem który usłyszałem na zajęciach "błąd powinien być na poziomie epsilonu maszynowego". Czy byłbyś w stanie pomóc mi zlokalizować go gdybym wstawił polecenie ze wzorem i swoje obliczenia? Bo ja już siedzę i siedzę, ale błędu za nic w świecie znaleźć nie mogę.
komentarz 30 kwietnia 2022 przez Wiciorny Ekspert (269,590 p.)

postarać się mogę, nie obiecuje że pomogę wrzuć co masz- przeanalizujemy. Aktualnie wartości wyraźnie wskazują  

b_rz = 1.343834447586900e-05  ( e-05)

eps = 2.220446049250313e-16  (e-16)
w oby przypadkach  -> tutaj istotne jest ze epsilony sa ujemne 

 

komentarz 30 kwietnia 2022 przez xTMx3 Obywatel (1,560 p.)
edycja 2 maja 2022 przez xTMx3
OK, udało mi się jakoś ogarnąć. Dzięki mimo wszystko za poprzednią odpowiedź.

Podobne pytania

0 głosów
0 odpowiedzi 94 wizyt
pytanie zadane 10 grudnia 2021 w Inne języki przez Ok Nowicjusz (120 p.)
0 głosów
0 odpowiedzi 119 wizyt
pytanie zadane 2 listopada 2019 w Inne języki przez anonimgall Nowicjusz (120 p.)
0 głosów
1 odpowiedź 267 wizyt
pytanie zadane 6 czerwca 2019 w Inne języki przez Karolito Nowicjusz (120 p.)

92,538 zapytań

141,377 odpowiedzi

319,456 komentarzy

61,923 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...