Рубрики

Трапециевидное правило для приближенного значения определенного интеграла

В области численного анализа правило трапеции используется для нахождения аппроксимации определенного интеграла. Основная идея в правиле трапеции состоит в том, чтобы считать область под графиком данной функции трапецией и вычислить ее площадь.
Это следует из того:


Для более точных результатов область графика делится на n сегментов одинакового размера, как показано ниже:

Шаг сетки или размер сегмента h = (ba) / n.
Поэтому приблизительное значение интеграла может быть задано как:

C ++

// C ++ программа для реализации правила трапеции
#include<stdio.h>

  
// Пример функции, чей определенный интеграл
// приблизительное значение вычисляется с использованием трапеции
// правило

float y(float x)

{

    // Объявление функции f (x) = 1 / (1 + x * x)

    return 1/(1+x*x);

}

  
// Функция для оценки значения интеграла

float trapezoidal(float a, float b, float n)

{

    // Шаг сетки

    float h = (b-a)/n;

  

    // Вычисляем сумму первого и последнего членов

    // в приведенной выше формуле

    float s = y(a)+y(b);

  

    // Добавляем средние термины в формулу выше

    for (int i = 1; i < n; i++)

        s += 2*y(a+i*h);

  

    // h / 2 обозначает (ba) / 2n. Умножение ч / 2

    // с с.

    return (h/2)*s;

}

  
// Программа драйвера для проверки вышеуказанной функции

int main()

{

    // Диапазон определенного интеграла

    float x0 = 0;

    float xn = 1;

  

    // Количество сеток. Более высокое значение означает

    // больше точности

    int n = 6;

  

    printf("Value of integral is %6.4f\n",

                  trapezoidal(x0, xn, n));

    return 0;

}

Джава

// Java-программа для реализации правила трапеции

  

class GFG

{

    // Пример функции, определенный

    // приблизительное значение интеграла

    // вычисляется с использованием трапеции

    // правило

    static float y(float x)

    {

        // Объявление функции

        // f (x) = 1 / (1 + x * x)

        return 1 / (1 + x * x);

    }

      

    // Функция для оценки значения интеграла

    static float trapezoidal(float a, float b, float n)

    {

        // Шаг сетки

        float h = (b - a) / n;

      

        // Вычисляем сумму первого и последнего членов

        // в приведенной выше формуле

        float s = y(a) + y(b);

      

        // Добавляем средние термины в формулу выше

        for (int i = 1; i < n; i++)

            s += 2 * y( a + i * h);

      

        // h / 2 обозначает (ba) / 2n. Умножение ч / 2

        // с с.

        return (h / 2) * s;

    }

      

    // Код драйвера

    public static void main (String[] args)

    {

        // Диапазон определенного интеграла

        float x0 = 0;

        float xn = 1;

      

        // Количество сеток. выше

        // значение означает большую точность

        int n = 6;

      

        System.out.println("Value of integral is "+

                           Math.round(trapezoidal(x0, xn, n) 

                           * 10000.0) / 10000.0);

    }

}

  
// Этот код предоставлен Anant Agarwal.

python3

# Python3 код для реализации правила трапеции

  
# Пример функции, чья определенная
Приблизительное значение # интеграла
# вычисляется с использованием правила трапеции

def y( x ):

      

    # Объявление функции

    # f (x) = 1 / (1 + x * x)

    return (1 / (1 + x * x))

      
# Функция для оценки значения интеграла

def trapezoidal (a, b, n):

      

    # Интервал сетки

    h = (b - a) / n

      

    # Вычисление суммы первого и последнего слагаемых

    # в приведенной выше формуле

    s = (y(a) + y(b))

  

    # Добавление средних терминов в формуле выше

    i = 1

    while i < n:

        s += 2 * y(a + i * h)

        i += 1

          

    # h / 2 обозначает (ba) / 2n.

    # Умножение h / 2 на s.

    return ((h / 2) * s)

  
# Код драйвера для проверки вышеуказанной функции
# Диапазон определенного интеграла

x0 = 0

xn = 1

  
# Количество сеток. Более высокое значение означает
# больше точности

n = 6

print ("Value of integral is ",

     "%.4f"%trapezoidal(x0, xn, n))

  

  
# Этот код предоставлен "Sharad_Bhardwaj".

C #

// C # программа для реализации трапеции
// правило.

using System;

  

class GFG {

      

    // Пример функции, определенный

    // приблизительное значение интеграла

    // вычисляется с использованием трапеции

    // правило

    static float y(float x)

    {

          

        // Объявление функции

        // f (x) = 1 / (1 + x * x)

        return 1 / (1 + x * x);

    }

      

    // Функция для оценки значения

    // из интеграла

    static float trapezoidal(float a, 

                       float b, float n)

    {

          

        // Шаг сетки

        float h = (b - a) / n;

      

        // Вычисляем сумму первого и

        // последние условия в приведенной выше формуле

        float s = y(a) + y(b);

      

        // Добавляем средние термины выше

        // формула

        for (int i = 1; i < n; i++)

            s += 2 * y( a + i * h);

      

        // h / 2 обозначает (ba) / 2n.

        // Умножение h / 2 на s.

        return (h / 2) * s;

    }

      

    // Код драйвера

    public static void Main ()

    {

          

        // Диапазон определенного интеграла

        float x0 = 0;

        float xn = 1;

      

        // Количество сеток. выше

        // значение означает большую точность

        int n = 6;

      

        Console.Write("Value of integral is "

          + Math.Round(trapezoidal(x0, xn, n) 

                        * 10000.0) / 10000.0);

    }

}

  
// Этот код предоставлен нитин митталь.

PHP

<?php
// PHP-программа для реализации правила трапеции

  
// Пример функции, определенный
// приблизительное значение интеграла
// вычисляется с использованием правила трапеции

function y($x)

{

      

    // Объявление функции

    // f (x) = 1 / (1 + x * x)

    return 1 / (1 + $x * $x);

}

  
// Функция для оценки
// значение интеграла

function trapezoidal($a, $b, $n)

{

      

    // Шаг сетки

    $h = ($b - $a) / $n;

  

    // Вычисляем сумму первого

    // и последние условия

    // в приведенной выше формуле

    $s = y($a) + y($b);

  

    // Добавляем средние термины

    // в приведенной выше формуле

    for ($i = 1; $i < $n; $i++)

        $s += 2 * Y($a + $i * $h);

  

    // h / 2 обозначает (ba) / 2n.

    // Умножение h / 2 на s.

    return ($h / 2) * $s;

}

  

    // Код драйвера

    // Диапазон определенного интеграла

    $x0 = 0;

    $xn = 1;

  

    // Количество сеток.

    // Более высокое значение означает

    // больше точности

    $n = 6;

  

    echo("Value of integral is ");

    echo(trapezoidal($x0, $xn, $n));

      
// Этот код предоставлен нитин митталь
?>


Выход:

Value of integral is 0.7842

Ссылки:
https://en.wikipedia.org/wiki/Trapezoidal_rule

Эта статья предоставлена Суровым Агарвалом . Если вы как GeeksforGeeks и хотели бы внести свой вклад, вы также можете написать статью с помощью contribute.geeksforgeeks.org или по почте статьи contribute@geeksforgeeks.org. Смотрите свою статью, появляющуюся на главной странице GeeksforGeeks, и помогите другим вундеркиндам.

Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.

Рекомендуемые посты:

Трапециевидное правило для приближенного значения определенного интеграла

0.00 (0%) 0 votes