Şimdi Ara

C Programlama Dilinde İntegral Hesabı

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
4
Cevap
0
Favori
827
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Merhaba arkadaşlar.Başlıkta olduğu gibi bir programla uğraşmaktayım.Bunu daha da geliştirmeyi düşünüyorum ama tabiki de eksikliklerim ve hatalarım var.Bunları düzeltmeme yardımcı olursanız sevinirim.

    #include <stdio.h>
    #include <stdlib.h>
    #include <ctype.h>
    #include <string.h>
    #include <conio.h>
    #include <math.h>
    #define N 1000

    double f(double x);
    double integral(int a, int b);

    int main() {
    double c;
    c = integral(0,5);
    printf("%lf The result of riemann sums.", c);
    getch();
    return 0;
    }
    double f(double x)
    {
    return x*x;
    }
    double integral(int a, int b)
    {
    int i; double sum; double y=0; double x;
    double h;
    h = (b - a) / N;
    for (i = 1; i < N; i++)
    {
    x = x + i;
    y = sqrt(x);
    y+=(a + h*i);
    sum= h*y;
    }
    f(x);
    return 0;
    }



  • Daha önce simpson ile yapmıştım, riemann ile hiç denemedim fakat kodunuzda x'e başlangıç değeri vermemişsiniz.Düzelte düzelte doğruyu bulabileceğinize eminim.
  • Başlangıç değerimizle bitiş değerimizin arasını çok fazla sayıda dikdörtgene bölüyoruz ve çok fazla sayıda olan bu dikdörtgenlerin alanlarını topluyoruz. Böylece gerçeğe en yakın sonucu buluyoruz. Dikdörtgenlerin taban genişlikleri her seferinde "artis" diye bahsettiğim çok küçük bir sayı oluyor. Dikdörtgenlerin yükseklik değeri ise bulunulan x noktasının fonksiyondan return edilen değeri oluyor.

    #include <stdio.h>
    #include <stdlib.h>

    double f(double x){
    return x*x;
    }

    double integral(double baslangic,double son){
    int cokBuyukSayi=100000,i;
    double artis=(son-baslangic)/cokBuyukSayi;
    double toplam=0;

    for(i=0;i<cokBuyukSayi;i++){
    toplam+=artis*f(baslangic+i*artis);
    }

    return toplam;
    }

    int main(){
    double sonuc=integral(0,5);
    printf("x kare'nin 0'dan 5'e integrali : %lf",sonuc);

    return 0;
    }



    < Bu mesaj bu kişi tarafından değiştirildi meteoncu -- 6 Nisan 2017; 22:13:33 >




  • meteoncu M kullanıcısına yanıt
    Yaptığınızı anladım çok teşekkür ederim.Düşündüğüm işlemi programa bu şekilde aktaramamıştım.

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.