Fresnelin integraalit potenssisarjakehitelmin

Ohjema laskee fresnelin integraalit (http://fi.wikipedia.org/wiki/Fresnelin_integraalit) potenssisarjakehitelmän avulla. Kyllä tietysti integraalit voi laskea pelkällä kynällä ja paperilla mutta tarkan arvon saamiseksi pitäisi laskea kymmeniä tai satoja alkoita.

Kylläpä bc toimii hyvin äärevien lukujen kanssa, toisin kuin perl joka antaa tarkkoja vastauksia vain 5.3 asti, kuten käytännössä nähtiin:

http://keskustelu.suomi24.fi/node/9868988

Ohjelma antaa integraalit tyyppi ykkösenä laskinten tapaan. Tulokset voi tarkistaa täältä:

http://keisan.casio.com/has10/SpecExec.cgi?path=08000000.Special Function/07000600.Fresnel integral/10000300.Fresnel integral S(x),C(x) (chart)/default.xml&charset=utf-8


#!/usr/bin/bc -q # fresnelin integraalit bc-kielisesti.
scale=12; # laskentatarkkuus.
pi=3.14159265359;

define f(x) { # kertoma (rekursio)
if (x typ0.(http://people.math.sfu.ca/~cbm/aands/frameindex.htm sivu 301)
n=0;edellinen=1;
while (fcos!=edellinen){ # kun muutos hukkuu laskentaepätarkkuuteen, tulos on valmis.
fcos=fcos xk^(4*n 1)/((4*n 1)*f(2*n));
n=n 1;
edellinen=fcos;
fcos=fcos-xk^(4*n 1)/((4*n 1)*f(2*n));
n=n 1;}
fcos=sqrt(2/pi)*fcos; #muunnos typ1 -> typ0
return fcos;
}

define fsin(x) { # fresnelin sini-integraali.
fsin=0;xk=(1/sqrt(2/pi))*x; #muunnos typ1 -> typ0
n=0;edellinen=1;
while (fsin!=edellinen){
fsin=fsin xk^(4*n 3)/((4*n 3)*f(2*n 1));
n=n 1;
edellinen=fsin;
fsin = fsin - xk^(4 * n 3) / ((4 * n 3)*f(2 * n 1));
n=n 1;}
fsin=sqrt(2/pi)*fsin; #muunnos typ1 -> typ0
return fsin;
}
x=0.5;
for (x=6.0;x
0232
Äänestä

Muut lukivat myös

Vastaukset

Vanhimmat

Ei vielä vastauksia

Aloittaja odottaa vastauksia. Kerro oma näkemyksesi ensimmäisenä.

Kommentoi aloitusta


Matti.W kirjoitti:

Ohjema laskee fresnelin integraalit (http://fi.wikipedia.org/wiki/Fresnelin_integraalit) potenssisarjakehitelmän avulla. Kyllä tietysti integraalit voi laskea pelkällä kynällä ja paperilla mutta tarkan arvon saamiseksi pitäisi laskea kymmeniä tai satoja alkoita.

Kylläpä bc toimii hyvin äärevien lukujen kanssa, toisin kuin perl joka antaa tarkkoja vastauksia vain 5.3 asti, kuten käytännössä nähtiin:

http://keskustelu.suomi24.fi/node/9868988

Ohjelma antaa integraalit tyyppi ykkösenä laskinten tapaan. Tulokset voi tarkistaa täältä:

http://keisan.casio.com/has10/SpecExec.cgi?path=08000000.Special Function/07000600.Fresnel integral/10000300.Fresnel integral S(x),C(x) (chart)/default.xml&charset=utf-8


#!/usr/bin/bc -q # fresnelin integraalit bc-kielisesti.
scale=12; # laskentatarkkuus.
pi=3.14159265359;

define f(x) { # kertoma (rekursio)
if (x typ0.(http://people.math.sfu.ca/~cbm/aands/frameindex.htm sivu 301)
n=0;edellinen=1;
while (fcos!=edellinen){ # kun muutos hukkuu laskentaepätarkkuuteen, tulos on valmis.
fcos=fcos xk^(4*n 1)/((4*n 1)*f(2*n));
n=n 1;
edellinen=fcos;
fcos=fcos-xk^(4*n 1)/((4*n 1)*f(2*n));
n=n 1;}
fcos=sqrt(2/pi)*fcos; #muunnos typ1 -> typ0
return fcos;
}

define fsin(x) { # fresnelin sini-integraali.
fsin=0;xk=(1/sqrt(2/pi))*x; #muunnos typ1 -> typ0
n=0;edellinen=1;
while (fsin!=edellinen){
fsin=fsin xk^(4*n 3)/((4*n 3)*f(2*n 1));
n=n 1;
edellinen=fsin;
fsin = fsin - xk^(4 * n 3) / ((4 * n 3)*f(2 * n 1));
n=n 1;}
fsin=sqrt(2/pi)*fsin; #muunnos typ1 -> typ0
return fsin;
}
x=0.5;
for (x=6.0;x

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu