Задача: вычисление площади криволинейной трапеции (ф-лы Прямоуг., Трап

Тема в разделе "C/C++/C#", создана пользователем dimon131, 9 дек 2010.

Статус темы:
Закрыта.
  1. dimon131

    dimon131 Member

    Регистрация:
    8 дек 2010
    Сообщения:
    13
    Симпатии:
    0
    Программа:
    Написать программу которая будет вычислять площадь криволенейной трапеции ограниченой отрезком [a.b], графиком функции и вертикальными прямыми х=а и х=b, применив формулы прямоугольников и трапеций. Сравнить результаты, полученые за разными формулами.

    Формула прямоугольников для приближенного вычисления площади имеет вид:

    b
    ∫ f(x)dx≈h*(f(a+h/2)+f(a+h/2+h)+⋯+f(a+h/2+(n-1)*h))〗
    а

    формула трапеций

    b
    ∫ f(x)dx≈h*(f(a)/2+f(a+h)+f(a+2h)+...+f(a+(n-1)*h)+f(a+n*h)/2)
    а

    формула которую нужно вычислить:

    Пи
    ∫ ln(5-4*cosx)dx;
    0

    n-количество равных частей на которые разбивается отрезок [a.b]
    h=(b-a)/n
    n>=20 - по условию

    Код программы:

    Код (C++):
    #include<conio.h>
    #include<stdio.h>
    #include<math.h>
    int main()
    {
    double a,b,h,n;          //Обьявление переменных
    float x,y;
    printf("Введите a,a=");
    scanf("%f",&a);          //Ввод данных
    printf("Введите b, b=");
    scanf("%f",&b);          //Ввод данных
    printf("Введите n>20, n=");
    scanf("%f",&n);          //Ввод данных
    h=(b-a)/n;               
    printf("x-Площадь через прямоугольник\n");
    x=h*(log(h/2+a+(n-1)*h));        //Вычесление площади через прямоугольник     
    printf("%f",x);                  //Вывод результата
    printf("y-Площадь через трапецию\n");
    y=h*(log(a+(n-1)*h)+log(n*h+a)/2);       // Вычесление площади через трапецию
    printf("%f",y);                         //Вывод результата
    if(y<x)                                 //условие
    printf("y<x");                   //Вывод результата
    else
    printf("y>x");      //Вывод результата
    getch();
    return 0;
    }
     
  2. DarkKnight

    DarkKnight Well-Known Member
    C\C++ Team

    Регистрация:
    1 авг 2010
    Сообщения:
    653
    Симпатии:
    0
    У вас есть ошибки в формулах..... Это раз...
    Ну и подход вычисление вы не поняли.... Вычисляете не то что нужно...
    Код (C++):
    #include<stdio.h>
    #include <conio.h>
    #include<math.h>

    //Эту строку при компиляции уберешь(!!!)
    #include <iostream>

    //У нас функция, так что бы очень не мучатся мы вычисление ее значение заведем как функцию
    double Funct(double x)
    {
    return log(5 - 4 * cos(x));
    }

    int main()
    {
    //И эту строку тоже
    setlocale(LC_ALL,"Russian");
    //Сразу вам скажу, что не вижу у вас сумм членов ряда
    //Следовательно решения у вас уже никакого не получится
    //setlocale(LC_ALL,"Russian");
    double a,b,h,n;          //Обьявление переменных
    double i; //Для цикла
    printf("Введите a, a=");
    scanf("%lf",&a);
    printf("Введите b, b=");
    scanf("%lf",&b);             //Ввод данных
    printf("Введите n>20, n=");
    scanf("%lf",&n);             //Ввод данных
    h=(b-a)/n;               
    //Вот до этого момента с вами абсолютно согласен
    //а теперь заведем переменные суммы для м. прямоугольников и суммы для м. трапеций
    double sRect = 0.0;
    double sTrap = 0.0;
    // f(x)dx≈h*(f(a+h/2)+f(a+h/2+h)+⋯+f(a+h/2+(n-1)*h))
    printf("x-Площадь через прямоугольник\n");
    //И так метод прямоугольника
    //интеграл у нас от a до b, а шаг h => циклим
    for (i = a; i<b; i +=h)
    {
    sRect += Funct(a+h*i);
    }
    sRect *= h; //Завершающим является умножение на h

    printf("y-Площадь через трапецию\n");
    //Метод трапеций
    for (i = a; i<b; i +=h)
    {
    sTrap += Funct(a+h*i); //Найдем сумму членов последовательности
    }
    sTrap = h * ((Funct(a)+Funct(b))/2 + sTrap);

    printf("%f  %f \n",sRect,sTrap);

    if(sTrap < sRect)                                   //условие
    printf("y<x");                   //Вывод результата
    else
    printf("y>x");      //Вывод результата
    getch();
    return 0;
    }
     

    Вложения:

    • scanf1.jpg
      scanf1.jpg
      Размер файла:
      34,9 КБ
      Просмотров:
      19
    • scanf2.jpg
      scanf2.jpg
      Размер файла:
      29,8 КБ
      Просмотров:
      18
Загрузка...
Похожие Темы - Задача вычисление площади
  1. Янчик
    Ответов:
    0
    Просмотров:
    479
  2. TrishaRay
    Ответов:
    1
    Просмотров:
    778
  3. elzim
    Ответов:
    0
    Просмотров:
    929
  4. ShaoKahn
    Ответов:
    0
    Просмотров:
    1.117
  5. eremin-sanek
    Ответов:
    3
    Просмотров:
    1.105
Статус темы:
Закрыта.

Поделиться этой страницей