folder Tahribat.com Forumları
linefolder Programlama Genel
linefolder Fortran ( 3. Dereceden Denklemin Köklerini Bulan Algoritma ) Yardım



Fortran ( 3. Dereceden Denklemin Köklerini Bulan Algoritma ) Yardım

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    csr288
    csr288's avatar
    Kayıt Tarihi: 02/Ekim/2009
    Erkek

    arkadaslar konu başlıgı gayet acık yardımlarınızı beklemekteym :))


    Bu site bağımlılık yapıyor şimdi fark ettim tarih 1 haziran 2011 saat 00:02
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    iQsuz
    iQsuz's avatar
    Kayıt Tarihi: 21/Nisan/2008
    Erkek

    hocam matlab yada microsoft matematik 4.0 var onlara baksana belki yardımcı olur
    düzeltme:algoritma yazmıssın pardon 

  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    zone
    zone's avatar
    Kayıt Tarihi: 28/Ağustos/2009
    Erkek

    skm bu dersi 1.sınıfta kamıştım :|

  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    csr288
    csr288's avatar
    Kayıt Tarihi: 02/Ekim/2009
    Erkek

    üstadım ben geçtm de sevglm mat okuyo fen edb de onlara harbıden bzden ( makıne muh ) agır gosterıyolarmııs 

     


    Bu site bağımlılık yapıyor şimdi fark ettim tarih 1 haziran 2011 saat 00:02
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    zone
    zone's avatar
    Kayıt Tarihi: 28/Ağustos/2009
    Erkek

    ilerde bir işede yaramaz çalışdığına değmez kopyayla geçsin ;)

    edit:

    2.dereceden buldum ama 3. dereceden yok be dostum anlasam yapardım ama ben kopya çektim

    kız anlıyosa az çok bunu editlesin 3.dereceye göre mantık aynıdır zaten



    Kod: ! ---------------------------------------------------
    ! Solve Ax^2 + Bx + C = 0 given B*B-4*A*C >= 0
    ! Now, we are able to detect complex roots and
    ! repeated roots.
    ! ---------------------------------------------------

    PROGRAM QuadraticEquation
    IMPLICIT NONE

    REAL :: a, b, c
    REAL :: d
    REAL :: root1, root2

    ! read in the coefficients a, b and c

    READ(*,*) a, b, c
    WRITE(*,*) 'a = ', a
    WRITE(*,*) 'b = ', b
    WRITE(*,*) 'c = ', c
    WRITE(*,*)

    ! compute the discriminant d

    d = b*b - 4.0*a*c
    IF (d > 0.0) THEN ! distinct roots?
    d = SQRT(d)
    root1 = (-b + d)/(2.0*a) ! first root
    root2 = (-b - d)/(2.0*a) ! second root
    WRITE(*,*) 'Roots are ', root1, ' and ', root2
    ELSE
    IF (d == 0.0) THEN ! repeated roots?
    WRITE(*,*) 'The repeated root is ', -b/(2.0*a)
    ELSE ! complex roots
    WRITE(*,*) 'There is no real roots!'
    WRITE(*,*) 'Discriminant = ', d
    END IF
    END IF

    END PROGRAM QuadraticEquation

  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    YekteranBaymedir
    YekteranBaymedir's avatar
    Kayıt Tarihi: 10/Temmuz/2009
    Homo

    ikinci dereceden kökleri bulan verdiğin kodlarla 3. dereceden'in hiçbir alakası yok.

    3. dereceden denklemler zaten formülle çözülebilse, bu kadar uğraştırıcı olmazdı :)

    3. dereceden nasıl çözdürürsün? bir sınır verirsin programa

    for i 1den 100'e kadar 

    i'yi yerine koysun, denklem misal x^3+x^2+x^1=0 mı? i'yi koydugunda, sıfıra çok yakın bişey çıkıyorsa kabul edersin çözümü

    if sonuç<0.00001 gibi misal. hata payını kendin düşünceksin

  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    zone
    zone's avatar
    Kayıt Tarihi: 28/Ağustos/2009
    Erkek

    dediğim gibi müdür ben hiç anlamıyorum bu dilden anlasam geçerdim..

    x^1 xe eşit zaten ve 3.derecede +d diye bir sayı olmalı. formül ile çözüm yaptırabilirsin 3.dereceden 2.dereceye dönüşümler var ancak yazarken o mantığı otutturmak sıkıntı işte

  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    anubisx
    anubisx's avatar
    Kayıt Tarihi: 21/Ağustos/2005
    Erkek

    Demek istediğin problem denklemin x^3+2 x^2-x-2 olsun.  Deneme yanılmayla 3 kökü bulunabilcek bir denklem var sayalım ilk kökünü buldun (x-1) bu noktada yapman gereken ilk denklemini x-1 e böldürmek olucak. Ondan sonra yapacağın arkadaşın verdiği diskriminant yöntemi. Yani

    3 bilinmeyenli denklemi al

    i değerini -100 + 100 aralığında integer ile sonuç 0 çıkıyor mu bak. Arkadaşın dediğinin aksine tam 0 çıkıyor mu diye bak tam bölüm arıyoruz çünkü integer alırsan float lardaki gibi 0,000001 hata payı uğraşmazsın zaten.

    Eğer 0 çıktıysa -> i değerini root 1 e eşitle yada yazdır direk 1 kök olarak sen bilirsin.

    Asıl problem buradan sonra iki bilinmeyenli denklemi elde etmede,

    O da (ax^3 +bx^2 +cx +d )yi (x+n )e bölebilmek ve benim aklıma şuan hiçbirşey gelmedi bununla ilgili o yüzden edit için şurayı aldım 

    -----------

    ----------

     

    buradan elde ettiğim ux^2+üx+ç yi de arkadaşın verdiği programla köklerine ayırıyorsun. Böylece daha düzenli bir (x-3)(x-0,423212)(2x+ 32,222) gibi yazdırabiliyorsun. 

     

    -------------------------------------------------------------------------------------------------------------

    Lakin i yi - long intten + long inte artık sınır rakamı bilmiyorum . Yaparsın i++ yapıp arttırarak deneyip 0 a yakın olanları yazdırırsın daha abzürd çıkar ama çıkar ennayetinde..


    http://yigitdemirag.com
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    wert
    wert's avatar
    Kayıt Tarihi: 19/Eylül/2005
    Erkek

    anubisx bunu yazdı:
    -----------------------------

    Demek istediğin problem denklemin x^3+2 x^2-x-2 olsun.  Deneme yanılmayla 3 kökü bulunabilcek bir denklem var sayalım ilk kökünü buldun (x-1) bu noktada yapman gereken ilk denklemini x-1 e böldürmek olucak. Ondan sonra yapacağın arkadaşın verdiği diskriminant yöntemi. Yani

    3 bilinmeyenli denklemi al

    i değerini -100 + 100 aralığında integer ile sonuç 0 çıkıyor mu bak. Arkadaşın dediğinin aksine tam 0 çıkıyor mu diye bak tam bölüm arıyoruz çünkü integer alırsan float lardaki gibi 0,000001 hata payı uğraşmazsın zaten.

    Eğer 0 çıktıysa -> i değerini root 1 e eşitle yada yazdır direk 1 kök olarak sen bilirsin.

    Asıl problem buradan sonra iki bilinmeyenli denklemi elde etmede,

    O da (ax^3 +bx^2 +cx +d )yi (x+n )e bölebilmek ve benim aklıma şuan hiçbirşey gelmedi bununla ilgili o yüzden edit için şurayı aldım 

    -----------

    ----------

     

    buradan elde ettiğim ux^2+üx+ç yi de arkadaşın verdiği programla köklerine ayırıyorsun. Böylece daha düzenli bir (x-3)(x-0,423212)(2x+ 32,222) gibi yazdırabiliyorsun. 

     

    -------------------------------------------------------------------------------------------------------------

    Lakin i yi - long intten + long inte artık sınır rakamı bilmiyorum . Yaparsın i++ yapıp arttırarak deneyip 0 a yakın olanları yazdırırsın daha abzürd çıkar ama çıkar ennayetinde..


    -----------------------------

    iyide olaya illede öss manrığı ile bakmamak lazım 

    kökler tam sayı olacak diye bir kaide yok 

     

     

     

    wikipedia da böyle bişi var ama :D 

    bunları yazma uğraşma diyede böyle bişiler buldum ama :D 

     

     

    x1 = -b/(3*a) - (2^(1/3)*(-b^2 + 3*a*c))/(3*a*(-2*b^3 + 9*a*b*c - 27*a^2*d + Sqrt[4*(-b^2 + 3*a*c)^3 + (-2*b^3 + 9*a*b*c - 27*a^2*d)^2])^(1/3)) + (-2*b^3 + 9*a*b*c - 27*a^2*d + Sqrt[4*(-b^2 + 3*a*c)^3 + (-2*b^3 + 9*a*b*c - 27*a^2*d)^2])^(1/3)/(3*2^(1/3)*a) 

    x2 = -b/(3*a) + ((1 + i*Sqrt[3])*(-b^2 + 3*a*c))/(3*2^(2/3)*a*(-2*b^3 + 9*a*b*c - 27*a^2*d + Sqrt[4*(-b^2 + 3*a*c)^3 + (-2*b^3 + 9*a*b*c - 27*a^2*d)^2])^(1/3)) - (1 - i*Sqrt[3])*(-2*b^3 + 9*a*b*c - 27*a^2*d + Sqrt[4*(-b^2 + 3*a*c)^3 + (-2*b^3 + 9*a*b*c - 27*a^2*d)^2])^(1/3)/(6*2^(1/3)*a)

    x3 = -b/(3*a) + ((1 - i*Sqrt[3])*(-b^2 + 3*a*c))/(3*2^(2/3)*a*(-2*b^3 + 9*a*b*c - 27*a^2*d + Sqrt[4*(-b^2 + 3*a*c)^3 + (-2*b^3 + 9*a*b*c - 27*a^2*d)^2])^(1/3)) - (1 + i*Sqrt[3])*(-2*b^3 + 9*a*b*c - 27*a^2*d + Sqrt[4*(-b^2 + 3*a*c)^3 + (-2*b^3 + 9*a*b*c - 27*a^2*d)^2])^(1/3)/(6*2^(1/3)*a) 


    |sadece aptalların başarısı ders notu ile ölçülür|
  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    anubisx
    anubisx's avatar
    Kayıt Tarihi: 21/Ağustos/2005
    Erkek

    Wert öyle diosunda abi demek istediğim şuydu benim, 

     

    Bu adam zaten kökleri bulmak istese benim altta dediğim yöntemden sıfıra hata payından düşük olan kökleri alır ama elde edeceği işte sonunda şöyle birşey olur 

    (x+0,222325)  (2x- 5,223115) (9x+8954,5555555)

    Bende diyorum ki integerları denerse 

    (x-1)(x+8,33333222)(2x-444,888888) gibi daha düzenli en azından varsa daha düzenli çıkaracak bir algoritma olur.

    Tabi en alttaki yazdığın korkunç şey çalışıyorsa problem yok onu kullansın :)


    http://yigitdemirag.com
  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Gecmis Olsun
    ajan1111
    ajan1111's avatar
    Kayıt Tarihi: 25/Ağustos/2005
    Erkek

    bu çalışma performansını serbes piyasada yapsanız varya kafadan 1500 tl +sigorta+yemek+yol bilmem ne kazanırsınız :D bu ne lan. ne işe yarıyo bunlar. mantık bunun neresinde


    Kayalardan kayarım yoktur benim ayarım (;
Toplam Hit: 6437 Toplam Mesaj: 16