Całkowanie Numeryczne!!

0

witam, mam taki problem a mianowicie jak za pomocą met. SImpsona policzyć współrzędne momentu bezwładności figury ogr. całką z góry na odp. przedziale. Jeżeli chodzi samego Simpsona to mamy już napisany program który liczy pole pod całką w zadanym przedziale. Jest ktos w stanie pomoc?? wzory na By i Bx posiadamy ale nie wiemy jak to zrobic...?

0

przypomniał byś jakieś wzory
całka z 1/3f(x)? nie pamiętam

0

http://imageshack.us/photo/my-images/263/wzoryo.jpg/ - wzory
zamieszczam tutaj czesc programu ktora mam i bylbym wdzieczny gdyby ktos byl w stanie mi pomoc...

 #include <iomanip>
#include <iostream>

using namespace std;

int a,b,c,d;

double f(double x)
{

  return(a * x * x * x + b * x * x + c * x + d);
}

main()
{
  const int N = 10;
  double xp,xk,simpson,st,dx,x;
  int i;


  cout.precision(3);
  cout.setf(ios::fixed);

  cout <<"Obliczanie wartosci calki metoda Simpsona\n\n"
         "Funkcje zapisujemy w postaci : a*x^3 + b*x^2 + c*x + d \n"
         "Podaj kolejno wartosci a, b, c i d \n";
  cin >> a >> b >> c >> d;

  cout << "f(x) = "<<a<<"*x^3 + "<<b<<"*x^2 + "<<c<<"*x + "<<d<<"\n\n"
          "Poczatek przedzialu calkowania\n\n"
          "xp = ";
  cin >> xp;
  cout << "\nKoniec przedzialu calkowania\n\n"
          "xk = ";
  cin >> xk;
  cout << endl;
  simpson  = 0; st = 0;
  dx = (xk - xp) / N;
  for(i = 1; i <= N; i++)
  {
    x = xp + i * dx;
    st += f(x - dx / 2);
    if(i < N) simpson += f(x);
  }
  simpson = dx / 6 * (f(xp) + f(xk) + 2 * simpson + 4 * st);
  cout << "Wartosc calki wynosi : " << setw(8) << simpson;

  getchar();
  getchar();



}

1 użytkowników online, w tym zalogowanych: 0, gości: 1