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
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
Vastaukset
Vanhimmat
Ei vielä vastauksia
Aloittaja odottaa vastauksia. Kerro oma näkemyksesi ensimmäisenä.