fortran - fibonaciho metoda

Vývojová prostředí, aplikace, skripty, http://www... síťové programy, internet, sdílení...
Odpovědět
seuss
Začátečník
Začátečník
Uživatelský avatar
Registrován: 13. zář 2004
Bydliště: Praha, London, Amsterdam
Kontaktovat uživatele:

fortran - fibonaciho metoda

Příspěvek od seuss »

zdravím, mám takovej problém, potřeboval bych algortimus na fibonachiho metodu, abych zjistil minimum jedný funkce. Přesně tak jak je to tady http://mathews.ecs.fullerton.edu/n2003/ ... lnk_4.html nevíte někdo jak na to, nebo nevíte kde bych mohl najít zdrojovej kod? Nic nemuzu najít..
1. PChomemade cpu AMD Athlon 64 X2 Dual Core 3800+ (2009MHz) non OC, mb Epox 9NPA+Ultra-nForce4 Ultra s939, gpu Gainward BLISS 7600GS PCX 512MB DD Silent FX pci-e , ram 2*1024 MB A-Data, hdd 250 GB Maxtor sata + 320 GB Seagette sata II + 20 GB Western Digital (gnu testing), dvd DVD-R/RW: LG GSA-4120B, zdroj ZM-400HP 400W, crt 17´Compaq V710. + LCD os Win XP SP3 Professional 2.Notebook: HP Pavilion tx2000 tablet PC, cpu AMD Turion 64 X2 Dual Core TL-66 2.3GHz, ram 2GB DDR2, gpu nVidia GeForce Go 6150, hdd 250GB, lcd 12.1" WXGA touchscreen display (1280x800 resolution) os Ubuntu Karmic Koala 9.10 Kernelem 2.6.31-19, Gnome 2.28.1 + (virtualizace XP SP2) &dual boot& Windows Vista Home SP1
seuss
Začátečník
Začátečník
Uživatelský avatar
Registrován: 13. zář 2004
Bydliště: Praha, London, Amsterdam
Kontaktovat uživatele:

Příspěvek od seuss »

ja jsem programek napsal, ale nejak nefunguje tak jak ma.. znáte někdo Fortran?
Naposledy upravil(a) seuss dne pon 6. lis 2006, 15:02, celkem upraveno 1 x.
1. PChomemade cpu AMD Athlon 64 X2 Dual Core 3800+ (2009MHz) non OC, mb Epox 9NPA+Ultra-nForce4 Ultra s939, gpu Gainward BLISS 7600GS PCX 512MB DD Silent FX pci-e , ram 2*1024 MB A-Data, hdd 250 GB Maxtor sata + 320 GB Seagette sata II + 20 GB Western Digital (gnu testing), dvd DVD-R/RW: LG GSA-4120B, zdroj ZM-400HP 400W, crt 17´Compaq V710. + LCD os Win XP SP3 Professional 2.Notebook: HP Pavilion tx2000 tablet PC, cpu AMD Turion 64 X2 Dual Core TL-66 2.3GHz, ram 2GB DDR2, gpu nVidia GeForce Go 6150, hdd 250GB, lcd 12.1" WXGA touchscreen display (1280x800 resolution) os Ubuntu Karmic Koala 9.10 Kernelem 2.6.31-19, Gnome 2.28.1 + (virtualizace XP SP2) &dual boot& Windows Vista Home SP1
seuss
Začátečník
Začátečník
Uživatelský avatar
Registrován: 13. zář 2004
Bydliště: Praha, London, Amsterdam
Kontaktovat uživatele:

Příspěvek od seuss »

tady jsem napsal algoritmus, ale pocita mi to hodne divny hodnoty

Kód: Vybrat vše

                Program Fibonachiho metoda


        implicit none
        double precision Abig,Ce,Cl,Cp,Cpa,Fa,deltaHc,P,deltaT,U,Vt
        double precision Wd,Wo,min,x1,x2,I
        
        open(1,file='data.txt')
        read(1,*) Abig,Ce,Cl,Cp,Cpa,Fa,deltaHc,P,deltaT,U,Vt,Wd,Wo

        write(*,*) 'Zvolte interval x1,x2, kde bude extrem vypocitan'
        read(*,*) x1,x2
        write(*,*) 'Zvolte interval neurcitosti'
        read(*,*) I


        call fib(x1,x2,I,min)
        read(*,*)
        end


        subroutine model(x,y)
        implicit none

        double precision Abig,Ce,Cl,Cp,Cpa,Fa,deltaHc,P,deltaT,U,Vt,Wd
        double precision Wo,C,beta,first,scnd,thrd,T,x,y

        beta=(-0.2631125+0.0028958*T)*Wo**(-0.2368125+0.000966*T)
        first=(1.767*log(Wo/Wd))/(beta*Vt)
        scnd=(Fa*Cpa+U*Abig)*(T-deltaT)*Cp
        thrd=(deltaHc+P*Ce+Cl)

        C=(first*scnd)/thrd
        end

        subroutine fcislo(x,y)
        double precision x,y
        y=((((1+5**0.5)/2)**(x+1)-((1-5**0.5)/2)**(x+1))/5**0.5)
        end
               
c       Fibonachiho metoda
        subroutine fib(x1,x2,I,min)
        implicit none
        double precision x1,x2,I,min,r,x,y,n,k,d1,d2,a,b,c,d,podil
        integer hodnota

        do n=1,10000
         call fcislo(n,y)
          r=(x2-x1)/I*1
         if(y.GT.r) goto 53
        enddo        
53      write(*,*) 'pocet kroku metody',(n-1)

        hodnota=1
        do k=n,2,-1
        call fcislo(k-1,d1)
        call fcislo(k,d2)
        podil=d1/d2
        I=x2-x1
        a=x2-podil*I
        b=x1+podil*I
        if (a.EQ.c) then
               a=a-I/6
               c=c+I/6
         endif

        if (hodnota.EQ.1.AND.hodnota.EQ.2) call model(a,b)
        if (hodnota.EQ.1.AND.hodnota.EQ.3) call model(c,d)


        if (b.LT.d) then
              x2=c
              c=b
              hodnota=2
         elseif (b.GT.d) then
              x1=a
              b=c
              hodnota=3
         endif
        enddo

        write(*,*) 'Konecny interval',x1,x2
        write(*,*) 'Hodnota ucelove funkce',(b+d)/2
        end





pokud to nekdo chcete zkusit, tak si do souboru data.txt ulozte tyhle hodnoty
153.84 0.0253 15 0.18 1046.75 338000 46400000 188 390 45 56 0.1765 0.500
1. PChomemade cpu AMD Athlon 64 X2 Dual Core 3800+ (2009MHz) non OC, mb Epox 9NPA+Ultra-nForce4 Ultra s939, gpu Gainward BLISS 7600GS PCX 512MB DD Silent FX pci-e , ram 2*1024 MB A-Data, hdd 250 GB Maxtor sata + 320 GB Seagette sata II + 20 GB Western Digital (gnu testing), dvd DVD-R/RW: LG GSA-4120B, zdroj ZM-400HP 400W, crt 17´Compaq V710. + LCD os Win XP SP3 Professional 2.Notebook: HP Pavilion tx2000 tablet PC, cpu AMD Turion 64 X2 Dual Core TL-66 2.3GHz, ram 2GB DDR2, gpu nVidia GeForce Go 6150, hdd 250GB, lcd 12.1" WXGA touchscreen display (1280x800 resolution) os Ubuntu Karmic Koala 9.10 Kernelem 2.6.31-19, Gnome 2.28.1 + (virtualizace XP SP2) &dual boot& Windows Vista Home SP1
Odpovědět

Zpět na „Programování a web“