Задачка: Создайте приложение, позволяющие численно рассчитать определенный интеграл, разбив его вычисление на несколько потоков. Выберите метод интегрирования – метод прямоугольников. Выполните сравнение скорости выполнения расчета для одного, двух, трех и четырех потоков. Проверьте правильность численного расчета с аналитическим результатом.
Решить интеграл получилось, но с другой частью задания всё плохо. Не могли бы подсказать с чего начать и как это реализовать?
UPD!
using System;
using System.Linq;
namespace _13
{
class Program
{
static void Main(string[] args)
{
int[] count = new int[] { 5, 10, 15, 20 };
var result = from n in count.AsParallel()
select Func(n);
foreach (var item in result)
Console.WriteLine("Результат: " + item);
Console.ReadLine();
}
static double Func(int n)
{
var watch = System.Diagnostics.Stopwatch.StartNew();
double pi = Math.PI;
double h, func;
double s = 0;
double a = -pi / 4;
double b = 0;
h = (b - a) / n;
for (double x1 = 0, x = a; x <= b; x += h)
{
if (x < b)
{
x1 = x + h / 2;
if (x1 >= 2)
continue;
func = x1 / Math.Pow(Math.Cos(x1), 2);
s += func;
}
}
watch.Stop();
var elapsed = watch.ElapsedTicks;
Console.WriteLine("Данный интеграл равен: {0:0.0000}. Кол-во тиков: {1}", s * h, elapsed);
return s * h;
}
}
}
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости