Цель: Познакомиться с возможностями класса System.Thread платформы .NET Framework.
Результаты: После выполнения работы Вы сможете:
Реализовать вычисление определенного интеграла методом трапеции в несколько потоков.
Отрезок, на котором происходит вычисление, разбивается на отрезки по количеству потоков. Для каждого отрезка значение
интеграла считается в отдельном потоке, после завершения вычисоения полученный рельтаты суммирутся.
Указание.
//
// Вычисление определенного интеграла
//
class DefiniteIntegral
{
//
// a, b - границы отрезка, на котором происходит вычисление опредленного интеграла
// function - функция, для которой вычисляется определнный интеграл
// step - размер одного шага разбиения
// threadsNumber - число потоков, которые используются для вычислений
//
public static double Solve(double a, double b, Func<double, double> function, double step, int threadsnumber)
{
// отсюда надо начинать реализацию задачи
return 0.0;
}
}
using Xunit;
var X = (double x) => x;
var SIN = (double x) => Math.Sin(x);
Assert.Equal(0, DefiniteIntegral.Solve(-1, 1, X, 1e-4, 2), 1e-4);
Assert.Equal(0, DefiniteIntegral.Solve(-1, 1, SIN, 1e-5, 8), 1e-4);
Assert.Equal(10, DefiniteIntegral.Solve(0, 5, X, 1e-6, 8), 1e-5);
Ознакомьтесь с источниками, указанными в списке литературы в конце данного задания.
Напишите тесты для проверки работоспособности.
Напишите код, для вычисления определенного интеграла.
Литература.