C: Izračunavanje korijena broja primjenom Njutnove formule

Teme vezane za console/GUI programiranje u C/C++ jeziku
1 post • Stranica: 1/1.

C: Izračunavanje korijena broja primjenom Njutnove formule

PostPostao/la displayerror » 29 stu 2015, 12:10

Sljedeći program treba da izračuna m-ti korijen pozitivnog realnog broja na četiri decimale primjenom Njutnove formule:

Xo=(X+1)/m
X{n+1}=((m-1)Xn+X/Xn^(m-1))/m,n=0,1,2,...

Program stalno ispisuje 0.0000:
Kod: Označi sve
#include<stdio.h>
#include<math.h>
#define PRECIZNOST 1e-4

double stepenovanje(double x,int m)//izracunavanje m-tog stepena broja x
{
    double stepen=1;
    int i;
    for(i=1;i<=m;i++)
        stepen=stepen*x;
    return stepen;
}

int main()
{
  double x,xo,xn;//xo je stara vrijednost, xn je azurirana, nakon svake iteracije
  int m;
  double stepen;
  do //ucitavanje pozitivnog realnog broja
  {
      printf("x=");
      scanf("%lf",&x);
  }
  while(x < 0);
  do //ucitavanje m
  {
      printf("m=");
      scanf("%d",&m);
  }
  while(m < 1);
  xn=(x+1)/m; //inicijalizacija xn
  stepen=stepenovanje(xn,m-1); //pozivanje funkcije za stepenovanje
  do // izracunavanje dok apsolutna razlika xn-x0 ne bude veca od trazene
         preciznosti
  {
      xo=xn;
      xn=(1/m)*((m-1)*xo+x/stepen); //koristenje formule u svakoj iteraciji
  }
  while(fabs(xn - xo) > PRECIZNOST);
  printf("%8.4lf",xn);
  return 0;
}
Zadnja izmjena: displayerror; 29 stu 2015, 15:10; ukupno mijenjano 4 put/a.

1 post • Stranica: 1/1.

Na mreži

Trenutno korisnika/ca: / i 1 gost.