Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#1 06. 11. 2012 01:37

JohnNash
Příspěvky: 62
Reputace:   
 

Taylor_sin(x)

Ahoj, píšu program, který pomocí Taylorova rozvoje spočte hodnotu funkce sin pro nějaký úhel, který zadá uživatel. Uživatel také zadá s jakou to chce přesností. Přesnost honodtím tak, že naše hodnota je přesná pokud součet posledních dvou prvků součtu je menší než epsilon. Můj kód vypadá takto:

Proč mi to prosím nefuguje?

program taylor;

var pomoc:real;
    alfa:integer;
    i:integer;
    x:real;
    epsilon:real;
    suma:real;

    begin

      Writeln('Zadejte velikost uhlu alfa ve stupnich:');
      Readln(alfa);
      Writeln('Zadejte velikost povolene chyby: ');
      Readln(epsilon);


      x:=(alfa*pi/180);

      pomoc:=x;
      suma:=x;
      i:=2;

      while pomoc-pomoc*((i-1)*(i-1)-(i-1))/(x*x)>=epsilon do
            begin
              If  i mod 2 = 1 then begin
                pomoc:=abs(pomoc)*(x/i)*(x/(i-1));
                  If i mod 4 = 3 then pomoc:=-pomoc;
                suma:=suma + pomoc;

              end;
              i:=i+1
            end;
            writeln(suma:2:5);
            readln;

    end.

Offline

 

#2 06. 11. 2012 12:16

Arabela
Příspěvky: 1927
Reputace:   181 
Web
 

Re: Taylor_sin(x)

Ahoj ↑ JohnNash:,
problém bude niekde vo vyhodnocovaní tej presnosti. Ja bz som končila vtedy, keď absolútna hodnota člena, ktorý chcem pripočítať k sume, je menšia než zadané kladné epsilon, prípadne keď absolútna hodnota súčtu posledných dvoch členov je menšia než epsilon... Nechýba tam tá absolútna hodnota?


server.gphmi.sk/~domanyov

Offline

 

#3 07. 11. 2012 00:50

RePRO
Místo: Jihlava
Příspěvky: 363
Škola: AI VŠPJ (09-12, Bc.)
Pozice: programátor
Reputace:   11 
Web
 

Re: Taylor_sin(x)

Zdravím,
několik malých poznámek:

1) Prosím, snaž se kód dávat do tagů code.
2) Pokud deklarujeme proměnné stejného typu, můžeme je dát na jeden řádek a oddělit čárkami.
3) Kde máme definované Ludolfovo číslo?
4) Píšeš, že Ti to nefunguje, ale co nefunguje? Nejde to zkompilovat, nebo to háže špatný výsledek?


Srdcem trochu-programátor, duší rádoby-matematik a povoláním analytik-vývojář.

Offline

 

#4 07. 11. 2012 09:42

Honzc
Příspěvky: 4641
Reputace:   248 
 

Re: Taylor_sin(x)

↑ JohnNash:
Těch chyb je tam více. Např. podmínka, špatně vyčísovaná proměnná pomoc i by se mělo zvětšovat vždy o 2.
Nicméně tady je funkční program. (trochu upravený a o něco málo doplněný)

Offline

 

#5 08. 11. 2012 12:41

JohnNash
Příspěvky: 62
Reputace:   
 

Re: Taylor_sin(x)

↑ RePRO:
Ahoj.
1) OK.
2) Funkčnost to neovlivní, ale budiž.
3) Proč definovat konstantu, když je zabudovaná v Pascalu?
4) Házelo to špatný výsledek, nyní je to funkční. Stačila jedna absolutní hodnota u podmínky ve while cyklu.

Offline

 

#6 08. 11. 2012 12:42

JohnNash
Příspěvky: 62
Reputace:   
 

Re: Taylor_sin(x)

↑ Honzc:
Díky, podmínka byla opravdu špatně, chybělo jedno abs().

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson