[Çözüldü] Seri sorusu

Başlatan ahmet_matematikci, 16 Mayıs 2016 - 14:22:29

« önceki - sonraki »

0 Üyeler ve 3 Ziyaretçi konuyu incelemekte.

ahmet_matematikci

 S= x-x3/3! + x5/5! -x7/7! +...
Dizisinde takıldım.
Paydalar ardışık gitse
fakt = fakt*i;,
yazacağım ama tek sayılar şeklinde gidiyor.

Yardımcı olursanız sevinirim.


import java.util.Scanner;

public class Hesaplama {
public static void main(String[] args) {
Scanner klavye = new Scanner(System.in);

double x, toplam=0, fakt = 1;
int i,N, isaret =1;
System.out.println("x değerini girinz");
x = klavye.nextDouble();

System.out.println("Toplam terim sayını giriniz");
N= klavye.nextInt();
xpow = 2*N-1;

for (i  = 1; i <=N; i++) {

toplam +=isaret *(Math.pow(x, 2*i+1))/fakt;
isaret =-isaret;
fakt = "Bulamadım";//////

}
System.out.println(toplam);
}

}
♥ Kız tavlamak için kahraman olmak gerekmez. Doğru kadın zaten sizi kahraman yapar ;)

bugra9

O satırı
fakt *= (2*i)*(2*i+1);
şeklinde yazabilirsin. Ayrıca toplamı yanlış hesaplıyorsun. i=1 değeriyle test edersek 2^3 şeklinde devam ediyor ama 2^1 olmalıydı. Ya bunu değiştirmeli ya da döngünü 0 dan başlatıp N-1'de sonlandırmalısın.

Bu işleri kafa karıştırmadan yapmanın en kolayı matematikle birebir gitmek. Eğer ardışık gitmiyorsa sen de döngünü ardışık götürme :)
Örneğin kodlarını fazla değiştirmeden az oynama yapıyorum.

for(i = 1; i < N*2; i += 2) {
    toplam +=isaret *(Math.pow(x, i))/fakt;
    isaret =-isaret;
    fakt *= (i+1)*(i+2);
}

Hatta işaretlerle uğraşmadan direk (-1)^(i+1) yazabilirsin.

ahmet_matematikci

#2
@bugra9 çok teşekkür ederim.
Alıntı YapBu işleri kafa karıştırmadan yapmanın en kolayı matematikle birebir gitmek. Eğer ardışık gitmiyorsa sen de döngünü ardışık götürme :)

Bu cümle bana klavuz oldu.
Kolay gelsin.
Programın tam hali
package Bolum3DenetimYapilari.Alistirmalar;

import java.util.Scanner;

public class Hesaplama {
public static void main(String[] args) {
Scanner klavye = new Scanner(System.in);

double x, toplam=0, fakt = 1, xpow;
int i,N, isaret =1;
System.out.println("x değerini girinz");
x = klavye.nextDouble();

System.out.println("Toplam terim sayını giriniz");
N= klavye.nextInt();
xpow = 2*N-1;


for(i = 1; i < N*2; i += 2) {
    toplam +=isaret *(Math.pow(x, i))/fakt;
    isaret =-isaret;
    fakt *= (i+1)*(i+2);
}

System.out.println(toplam);

}

}
♥ Kız tavlamak için kahraman olmak gerekmez. Doğru kadın zaten sizi kahraman yapar ;)

bugra9

rica ederim, etiket ve kodların son hali için teşekkür ederim.