Метод левых прямоугольников java

Приведем пример реализации численного интегрирования методом левых и правых прямоугольников. На вход алгоритму подается набор точек, по которым требуется найти приближенное значение интеграла неизвестной функции. На выходе алгоритм выдает найденное приближенное значение. Заметим, что эти два метода практически идентичны, единственное отличие заключается в том, ординату какой точки взять в качестве высоты прямоугольника (см. комментарии). Все вычислительные операции производятся с типом данных double в целях повышения точности вычислений.

import java.io.PrintWriter;
import java.util.Scanner;

public class Solution <
public static void main(String[] args) <
// Для считывания воспользуемся классом Scanner
// Для вывода – классом PrintWriter
Scanner scanner = new Scanner(System.in);
PrintWriter printWriter = new PrintWriter(System.out);

// Объявляем и считываем число точек,
// по которым будем вычислять приближенное
// значение интеграла функции
int pointsCount;
pointsCount = scanner.nextInt();

// Точки будем хранить в массиве структур;
// его размер, очевидно, равен pointsCount
Point[] points;
points = new Point[pointsCount];

// Считываем абсциссы и ординаты точек
for (int i = 0; i

В ргр есть задание написать программу для вычисления определенного интеграла (f(x) = sqrt(2 – x^2) dx) в пределах от 1 до sqrt(2) методом средних прямоугольников, то есть найти суму f(xi + h / 2) * h , h = (b – a) / n, xi = a + i*h. И вывести время работи программы.

Проблема состоит в том,что эту тему как-бы для самообучения дали (ознакомительная). А предидущие задания были по полиморфизму, наследованию и интерфейсам. Прочитал в интернете разные статьи. Тема оказалась сложной.

Была попытка написать код, но я сам понимаю, что это полный бред. Но все равно осмелюсь попросить помощи (ведь задание в ргр и очень нужное). Поскольку класс не наследуеться от других, использовал наследование от Thread .

Читайте также:  Мотив безлимит на соцсети

Знаю прошу многого, но вынуждают обстоятельства.

Please note that GitHub no longer supports your web browser.

We recommend upgrading to the latest Google Chrome or Firefox.

Join GitHub today

GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.

JavaStepIC / IntegrateRectangles.java

Users who have contributed to this file

/*
Реализуйте метод, выполняющий численное интегрирование заданной функции на заданном интервале по формуле левых прямоугольников.
Функция задана объектом, реализующим интерфейс java.util.function.DoubleUnaryOperator. Его метод applyAsDouble() принимает значение аргумента и возвращает значение функции в заданной точке.
Интервал интегрирования задается его конечными точками a и b, причем a
Пример. Вызов
integrate(x -> 1, 0, 10)
должен возвращать значение 10.
*/
public static double integrate( DoubleUnaryOperator f, double a, double b) <
int i;
int n = 1000000 ;
double result, h;
result = 0 ;
h = (b – a) / n; // Шаг сетки
for (i = 0 ; i n; i ++ ) <
result += f . applyAsDouble(a + h * (i + 0.5 )); // Вычисляем в средней точке и добавляем в сумму
>
result *= h;
return result;
// return f.applyAsDouble(a)*(b-a);
>
  • © 2019 GitHub, Inc.
  • Terms
  • Privacy
  • Security
  • Status
  • Help

You can’t perform that action at this time.

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.

Читайте также:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock detector