Задача Коши, метод Эйлера, разделить на несколько параллельных потоков - 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;
            })

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.727 из 5
Похожие ответы