Задача Коши, метод Эйлера, разделить на несколько параллельных потоков - C#
Формулировка задачи:
Вечер добрый, уважаемые. Не могли бы Вы мне помочь? Мне нужно сделать задачу Коши, методом Эйлера на заданном отрезке 0<x=<0.4. И все это нужно как-то разбить на 2/3 параллельных потока. Знаю, что там вроде бы есть метод Parallel и что потока через Thread thread1 = new Thread(function), но как-то не врублюсь как это воедино спрессовать.
Буду очень благодарен. В приложениях я кинул свою прогу.
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading;
namespace Koshi
{
class Program
{
public static double fun(double x, double y)
{
return x + y;
}
static void Main(string[] args)
{
double b, h, x, y, i, m;
string input;
string[] par;
Console.WriteLine("Input x, b, y0 and value function (m) from space: ");
input = Console.In.ReadLine();
par = input.Split(' ');
try
{
x = Convert.ToDouble(par[0]);
b = Convert.ToDouble(par[1]);
y = Convert.ToDouble(par[2]);
m = Convert.ToDouble(par[3]);
}
catch (Exception e)
{
Console.WriteLine("Default input value");
x = 0;
b = 0.4;
y = 1;
m = 4;
}
h = (b - x) / m;
Console.WriteLine(" Metod Eiler ");
for (i = 0; i < m; i++)
{
y += h * fun(x, y);
Console.WriteLine("x = " + (x + h) + " y = " + y);
x += h;
}
Console.WriteLine(" ");
Console.ReadLine();
}
}
}Решение задачи: «Задача Коши, метод Эйлера, разделить на несколько параллельных потоков»
textual
Листинг программы
ParallelEnumerable.ForAll(0 , m () =>
{
y += h * fun(x, y);
Console.WriteLine("x = " + (x + h) + " y = " + y);
x += h;
})