Anonymní profil packal – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil packal – Programujte.comAnonymní profil packal – Programujte.com

 

Příspěvky odeslané z IP adresy 62.245.94.–

packal
Pascal › Aproximace sinu/kosinu polyg…
18. 1. 2015   #198153

souhlas a hlavne to neni cesta, kterou bych mel postupovat... trochu me to desi, protoze to je 2. nejlehci ukol co tam mame (pry) a ja kvuli tomu uz po druhe odlozil zkousku (:

packal
Pascal › Aproximace sinu/kosinu polyg…
18. 1. 2015   #198146

#3 q
Hodnoty maji byt mezi -4..4, Taylor udela pekne jen jednu vlnu tehle rady a to pro n=1 (myslim nejaky rozumny, 9 radu). Ta zelena rada na obrazku je pro n=33, tam je to myslim na uz uplne nerealne. Teoreticky mi to prislo ok, ale po prakticke strance to je neuspokojive reseni (muzu ho sem hodit), kazdopadne jak pisi, nejsem zadny programator, takze by se urcite dalo poladit. Jinak predpokladam, ze by mi reseni pomoci Taylora stejne vratil...

Připojen obrázek.

Připojen obrázek.

packal
Pascal › Aproximace sinu/kosinu polyg…
18. 1. 2015   #198144
packal
Pascal › Aproximace sinu/kosinu polyg…
18. 1. 2015   #198143

Zdravim, mel bych takovy dotaz, doufam, ze jiz neni v nejakem vlaknu zodpovezen. Jsem tak trochu v koncich, je to zakladni ukol na programko a ja to nejak nedavam... Potrebuji aproximovat radu (v priloze), ve ktere se vyskytuji goniometricke funkce, ale nesmim vyuzit funkci sinus/kosinus ci vnorene cykly. Jen scitani, nasobeni, deleni, souctove vzorce. Rady se kresli pro ruzna n (napr. 3, 10, 42). Puvodne jsem zkousel zohybat paraboly a napojit je na sebe, to vedlo k mnoha promarnenym hodinam (: Pak jsem klasicky sahl po aproximaci Taylorem, ktery se take ukazal jako neefektivni, protoze pro velka n bohuzel utika, musel by byt moc vysokych radu. Rada je pouzit de facto souctove vzorce (sin(a+b)=...) pac argumenty rostou aritmetickou radou. Umim udelat "polygonalni kruznici" (viz. nize), ale tim bohuzel koncim. Pokud ji uzitim IF klauzule rozdelim na ctvrtky, tak jde pospojovat do neceho jako sinus/kosinus, ale je to dosti neohrabane a hlavne to neni funkce, je to vypis tabelovanych hodnot. Kazdopadne nejak takhle by se na to asi melo jiti. Nemohl by me prosim nekdo trochu nasmerovat? Vim, ze to neni uplne programovaci task jako spise matematicky, ale ja jsem spatny matematik a jeste mnohem horsi programator, takze to zkousim tady. Diky moc za jakekoli podnetne rady!

program pol_kruz;

const N = 1000;
      uhel = 2*Pi/N;
var cos_u,sin_u : real;
    cosf, sinf  : real;
             i  : integer;
    new_cosf    : real;

begin
  cos_u := cos(uhel);
  sin_u := sin(uhel);

  cosf := 1;
  sinf := 0;

  for i:= 0 to N do begin

    writeln(cosf:9:3, ' ', sinf:9:3);

    new_cosf := cosf*cos_u-sinf*sin_u;
    sinf := cosf*sin_u+sinf*cos_u;
    cosf := new_cosf;
  end;

  readln;

end.

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý