Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Курсовой 11 вариант Литовченко / 11 Вариант ПРОГРАММА

.txt
Скачиваний:
7
Добавлен:
20.04.2015
Размер:
4.52 Кб
Скачать
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace CourseWork
{
    class Program
    {
        static public double tau(double x)
        {
            return x / (3600 * 0.00445);
        }

        static public double T1(double t)
        {
            return 800 + ((1100 - 800) / (0.96 - 0)) * (t - 0);
        }

        static public double T2(double t)
        {
            return 1100 + ((1400 - 1100) / (3.10 - 0.96)) * (t - 0.96);
        }

        static public double T3(double t)
        {
            return 1400 + ((1200 - 1400) / (3.81 - 3.10)) * (t - 3.10);
        }

        public delegate double function(double x, double y);

        static public double F1(double t, double y)
        {
            return T1(t) - y;
        }

        static public double F2(double t, double y)
        {
            return T2(t) - y;
        }

        static public double F3(double t, double y)
        {
            return T3(t) - y;
        }

        static public double[] RungeKutta(function f, double fa, double a, double b, int n)
        {
            double h = (b - a) / (n - 1);

            double[] res = new double[n + 1];
            res[0] = fa;

            for (int i = 1; i <= n; ++i)
            {
                double x = a + (i - 1) * h,
                       y = res[i - 1];

                double k1 = h * f(x, y),
                       k2 = h * f(x + h / 2, y + h * k1 / 2),
                       k3 = h * f(x + h / 2, y + h * k2 / 2),
                       k4 = h * f(x + h, y + h * k3);
                double D = (k1 + 2 * k2 + 2 * k3 + k4) / 6;

                res[i] = res[i - 1] + D;
            }

            return res;
        }

        static public double Tr (double[] f, double a, double b, int n)
        {
            int m = f.Length;

            double result = (f[0] + f[m - 1]) / 2;
            for (int j = 1; j < m - 1; j++)
            {
                result += f[j];
            }
            result *= (b - a) / n;

            return result;
        }

        static void Main(string[] args)
        {
                   double t1 = tau(0),
                   t2 = tau(15.4),
                   t3 = tau(49.6),
                   t4 = tau(61.0);

           int n = 50;

            double[] z1 = RungeKutta(F1, 20, t1, t2, n);
            double[] z2 = RungeKutta(F2, z1[z1.Length - 1], t2, t3, n);
            double[] z3 = RungeKutta(F3, z2[z2.Length - 1], t3, t4, n);


            double[] G1 = new double[n];
            double[] G2 = new double[n];
            double[] G3 = new double[n];

            for (int i = 0; i < n; ++i)
            {
                double s1 = (t2 - t1) / (n - 1);
                double s2 = (t3 - t2) / (n - 1);
                double s3 = (t4 - t3) / (n - 1);

                G1[i] = (T1(t1 + i * s1) - z1[i]) / (1400 - z1[i]);
                G2[i] = (T2(t2 + i * s2) - z2[i]) / (1400 - z2[i]);
                G3[i] = (T3(t3 + i * s3) - z3[i]) / (1400 - z3[i]);
            }

            double G = (1400 * 0.7 * 3600 * 0.00445) / (0.8 * 20.9 * Math.Pow(10, 6)) * (Tr(G1, t1, t2, n) + Tr(G2, t2, t3, n) + Tr(G3, t3, t4, n));

           
            Console.WriteLine("           РАСПРЕДЕЛЕНИЕ ТЕМПЕРАТУР МЕТАЛЛА ПО ЗОНАМ ПЕЧИ        ");
            Console.WriteLine();
            Console.WriteLine("         ЗОНА 1                    ЗОНА 2                    ЗОНА 3       ");
            Console.WriteLine();
            Console.WriteLine("  Рас-ние    Температура    Рас-ние    Температура     Рас-ние    Температура          ");
            Console.WriteLine("  от входа     металла      от входа     металла       от входа     металла            ");
            Console.WriteLine();
            for (int i = 0; i < n; ++i)
            {
                double x1 = 0,
                       x2 = 15.9,
                       x3 = 49.6,
                       x4 = 61.0;

                Console.WriteLine("  {0,5:f2}     {1,10:f3}       {2,5:f2}     {3,10:f3}       {4,5:f2}     {5,10:f3}  ",
                    x1 + i * (x2 - x1) / n, z1[i],
                    x2 + i * (x3 - x2) / n, z2[i],
                    x3 + i * (x4 - x3) / n, z3[i]);
            }
            Console.WriteLine();
            Console.WriteLine("РАСХОД ТОПЛИВА: G = {0:f6}", G);
            Console.ReadKey();

        }
    }
}
Соседние файлы в папке Курсовой 11 вариант Литовченко