-
Data: 2012-11-14 00:06:51
Temat: Re: Simpson vs. Niski Cotes
Od: bartekltg <b...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]W dniu 2012-11-13 23:33, kenobi pisze:
> W dniu poniedziałek, 12 listopada 2012 10:47:02 UTC+1 użytkownik AK napisał:
>> Użytkownik "slawek" <s...@h...pl> napisał:
>>
>>
>> Poza tym to co zamiesciles to nie zadne C
>>
>> Top jakis potworek programisty niedouka.
>>
>
> ciekawe moze by bylo uslyszec co z tym kodem
> jest nie tak, ale szczerze mowiac nie
> podejrzewam że tak sie wyraże 'możliwosci
> sensownej odpowiedzi w tym temacie'
>
> (Imo jest to kawałek zupełnie normalnego/dobrego kodu w c
"Normalny", bo się kompiluje. Ale nie jest poprawny.
Błąd jest tutaj:
> #define NPTS 10000 /* NPTS must be even! */
> double x[NPTS+1];
> double y[NPTS+1];
Tak, liczba przedziałów ma być parzysta.
Tak, to oznacza, że liczba punktów powinna
być o jeden większa. Tyle, że sławek następnie
konsekwentnie używa wyłącznie zmiennych x[1]..x[NPTS]
W żadnej jogo funkcji nie użył x[0].
Pomylił się czy przepisał bezrefleksyjnie z języka o tablicach
indeksowanych od 1, nieistotne. Skutek jest taki:
Mamy 999 przedziałów!
x[1] = a //OK
x[n] = b //ok
Funkcje całkujące są niby poprawne, ale przez nieparzystą
liczbę przedziałów dwie ostatni wagi są zawyżone!
Funkcja jest tam lekko ujemna, stąd przekłamanie wyniku.
Chętni mogą łatwo oszacować o ile:)
sin(5)exp(-5)=-0.00646
Drobna poprawka i wszystko bangla:
#define NPTS 10001 /* NPTS must be even! */
double x[NPTS+1];
double y[NPTS+1];
i mamy
exact 0.5022749400837604
tapez 0.5022749194248539
simpson 0.5022749400837597
exact od simpsona różni się o 7 na ostatniej
wypluwanej liczbie:) 7*10^-16 !
Kod, kompilator i wynik:
http://codepad.org/ohuGkmiC
OT, literówka, ale wykłócać się na grupie, że oto
obalił to i owo to mógł.
pzdr
bartekltg
Następne wpisy z tego wątku
- 14.11.12 00:17 AK
- 14.11.12 00:43 bartekltg
- 14.11.12 07:53 kenobi
- 14.11.12 08:30 kenobi
- 14.11.12 09:01 kenobi
- 14.11.12 09:06 AK
- 14.11.12 12:02 slawek
- 14.11.12 12:05 Michoo
- 14.11.12 12:07 slawek
- 14.11.12 12:28 slawek
- 14.11.12 12:31 slawek
- 14.11.12 12:31 Michoo
- 14.11.12 12:41 slawek
- 14.11.12 12:46 Roman W
- 14.11.12 12:47 slawek
Najnowsze wątki z tej grupy
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
- Ada 2022 Language Reference Manual to be Published by Springer
- Press Release - AEiC 2023, Ada-Europe Reliable Softw. Technol.
Najnowsze wątki
- 2024-09-02 Wzór
- 2024-09-01 Polska-Chorwacja 650zł elektrykiem
- 2024-09-01 odrdzewiacz do amelinium
- 2024-09-01 Elektryczna łapka i szerszeń
- 2024-09-01 Jakie podatki za wynajem?
- 2024-09-02 Warszawa => Key Account Manager <=
- 2024-09-02 Warszawa => Projektant/Programista React Native <=
- 2024-09-02 Gdańsk => Head of International Freight Forwarding Department <=
- 2024-09-02 Warszawa => Sales Development Representative (in German) <=
- 2024-09-01 1. wrzesnia po niemiecku
- 2024-09-01 Od setki do setki...
- 2024-08-31 wpadłem w siodło
- 2024-08-25 cenka opada
- 2024-08-30 Elektryki takie bezpieczne cd.
- 2024-08-31 Warszawa => International freight forwarder <=