Правило Харди

Опубликовано: 17 Февраля, 2022

Правило Харди является расширением формул Ньютона – Котеса. Рассмотрим функцию f (x), табулированную в точках на равном расстоянии от такой, что
Учитывая следующие входные данные
1. Функция , подынтегральное выражение которого необходимо вычислить.
2. Верхний и нижний пределы

Правило Харди может быть получено путем аппроксимации подынтегральной функции f (x)

Пример :

Задача состоит в том, чтобы найти подынтегральное выражение функции по правилу Харди


верхний предел, b = 6,
нижний предел a = 0.

Подход :
Правило Харди - это метод численного интегрирования, позволяющий найти приблизительное значение интеграла.


являются значениями f (x) в соответствующих им интервалах x.
Чтобы интегрировать любую функцию f (x) в интервале (a, b), выполните шаги, указанные ниже:

1. значение n = 6, которое представляет собой количество частей, на которые делится интервал.
2. Вычислить ширину, h = (ba) / 6
3. Вычислить значения от x0 до x6 как
Рассмотрим y = f (x). Теперь найдите значения для соответствующих ценности.
4. Подставьте все найденные выше значения в правило Харди, чтобы вычислить интегральное значение.

Below is the implementation of the above approach:

// C program to implement Hardy"s Rule
// on the given function
  
#include <math.h>
#include <stdio.h>
  
// In order to represent the implementation,
// a function f(x) = 1/(1 + x) is considered
// in this program
  
// Function to return the value of f(x)
// for the given value of x
float y(float x)
{
    return (1 / (1 + x));
}
  
// Function to computes the integrand of y
// at the given intervals of x with
// step size h and the initial limit a
// and final limit b
float Hardyrule(float a, float b)
{
    // Number of intervals
  
    int n = 6;
    int h;
  
    // Computing the step size
    h = ((b - a) / n);
    float sum = 0;
  
    // Substituing a = 0, b = 4 and h = 1
    float hl = (28* y(a) + 162 * y(a + h)
  
                + 220 * y(a + 3 * h)
                +  162* y(a + 5 * h)
                +28* y(a + 6*h))*h/100
                ;
  
    sum = sum + hl;
    return sum;
}
  
// Driver code
int main()
{
    float lowlimit = 0;
    float upplimit = 6;
    printf("f(x) = %.4f",
           Hardyrule(0, 6));
    return 0;
}
Output:
f(x) = 1.9500

Вниманию читателя! Не переставай учиться сейчас. Ознакомьтесь со всеми важными концепциями теории CS для собеседований по SDE с помощью курса теории CS по доступной для студентов цене и будьте готовы к работе в отрасли.

РЕКОМЕНДУЕМЫЕ СТАТЬИ