Czy ktoś mógłby wyjaśnić treść zadania? Liczenie całki.

0

Witam!

Dostałem niedawno pierwszy projekt programistyczny na studiach, nie mam prawie żadnego doświadczenia w programowaniu, ale to nie jest główny problem - głównym problemem jest to, że zadanie jest nafaszerowane nieznanymi mi pojęciami przez co nawet nie wiem, jak rozpocząć pisanie kodu. Tutaj wstawiam treść zadania w formie skanu, bo nie widzę innego sposobu na zapisanie tych obliczeń:

user image

Całki, geometrii analityczna przestrzeni, fizyka z użyciem wcześniej wymienionych to tematy które są przede mną, ale dopiero za kilka miesięcy. Domyślam się, że prowadzący to przynajmniej po części rozumie i pewnie dogłębna znajomość ich wcale nie jest wymagana. Rozumiem ideę dzielenia przestrzeni pod wykresem funkcji na 1000 prostokątów, tylko nie wiem, co właściwie jest tutaj tą funkcją? Jak wygląda wzór, który mi pozwoli obliczyć jej wartość w jakimś punkcie x? Czy ktoś mógłby mnie naprowadzić? Z góry dziękuje za pomoc :)

user image

4

Stary weź zmień studia. Garncarstwo, haftowanie czy coś.
W pierwszym równaniu masz dwie całki oznaczone od 0 do r. Czyli masz policzyć pole powierzchni pod funkcją y4 w przedziale od 0 do r. Na dole to samo tylko, że y2. Potem dzielisz to przez siebie, mnożysz przez to co tam Ci pozostało i finito.

W drugim równaniu jest jeszcze prościej. Tam nie ma całek. Mnożysz pierwszy człon przez sumę, wyliczonych funkcji. Jak profesor wspomniał tych wyliczonych funkcji ma być przynajmniej 1000. Czyli jak n = 1000, to pod n wstawiasz 1000, a pod i wartosci od 1 do 1000, oraz wszstko pokolei sumujesz.

0

Dostałeś wzory. Nie musisz ich rozumieć co tam się dzieje fizycznie, żeby obliczyć wynik.

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

int main()
{

    int n=1000;
    double modul, suma1=0, suma2=0, x=0, r=5.0, szerokosc, m=10.0;

    //printf("Podaj promien: ");
    //scanf("%f", &r);
    //printf("Podaj mase: ");
    //scanf("%f", &m);
    //printf("Masa to %f",m);

    szerokosc=r/n;
    while (x<=r)
    {
        x+=szerokosc;
        suma1+=pow((-pow(x,2)+pow(r,2)),2);
        //printf ("Suma 1 to %f\t", suma1);
        suma2+=(-pow(x,2)+pow(r,2));
        //printf ("Suma 2 to %f\n", suma2);
    }
    modul= (1.0/2)* m *(suma1/suma2);
    printf("\nModul to: %f\n", modul);
    return 0;
}

Czy to ma sens? Czy jestem na złej drodze do rozwiązania? Plus prostsze (chyba) pytanie - dlaczego nie działało mi wczytywanie zmiennych? (pierwszy dzień programowania w C)

0
double Calkuj(double xp, double xk, int n, double (*f)(double x))
{
      double dx = (xk-xp)/n;
      double wynik = 0;
      for (int i=1; i<=n; ++i)
      {
           double x = xp + dx*i;
           wynik += f(x);
      }
      wynik *= dx;
      return wynik;
}
0

Dziękuje za gotowy algorytm na całkę, ale właściwie najbardziej mnie interesuje f(x), bo to już zapisałem w swój, mniej przemyślany, ale działający sposób.

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