 
        
        Математические методы / ДЗ / ДЗ №1 Односумов
.docxМІНІСТРЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ АВІЦІЙНИЙ УНИВЕРСИТЕТ
ІНСТИТУТ КОМ'ЮТЕРНИХ ІНФОРМАЦІЙНИХ ТЕХНОЛОГІЙ
Домашнє завдання №1
з дисципліни: «Математичні методи дослідження операцій»
Виконав
Студент групи ТП-213
Односумов М.
Прийняв:
Моржов В.І.
Київ 2017
Домашнее задание №1
по дисциплине “Математические методы исследования операций”.
Разработать линейную модель двумерной функции, которая задана в виде таблицы чисел, методами линейного программирования.
В процессе выполнения домашнего задания необходимо:
- построить графики для заданного массива чисел;
- минимизировать количество кусочно-линейных участков исходной двумерной поверхности, обеспечивающих допустимую погрешность аппроксимации равную 1% от максимального значения исходной функции;
- рассчитать значение коэффициентов системы линейных уравнений, описывающих двумерную поверхность;
- свести коэффициенты линейных уравнений в таблицу;
- разработать алгоритм вычислительного процесса для определения численного значения функции по любому промежуточному значению ее аргументов;
- написать и отладить программу на любом алгоритмическом языке программирования высокого уровня;
- выполнить контрольные расчеты, подтверждающие правильность работы программы;
- оформить отчет по выполнению домашнего задания №1.
Вариант №17
    Таблица  

| H,км | M | ||||||||
| 
 | 0 | 0,1 | 0,2 | 0,4 | 0,5 | 0,6 | 0,7 | 0,9 | 1.0 | 
| 0 | 4700 | 4730 | 4780 | 4830 | 4900 | 4950 | 5000 | 5070 | 5130 | 
| 2 | 4000 | 4070 | 4140 | 4210 | 4310 | 4420 | 4520 | 4620 | 4720 | 
| 4 | 3300 | 3400 | 3500 | 3620 | 3710 | 3870 | 3970 | 4100 | 4230 | 
| 6 | 2580 | 2720 | 2860 | 3000 | 3140 | 3300 | 3440 | 3580 | 3740 | 
| 8 | 1880 | 2040 | 2200 | 2360 | 2530 | 2700 | 2850 | 3030 | 3180 | 
| 10 | 1170 | 1350 | 1560 | 1740 | 1930 | 2110 | 2290 | 2480 | 2660 | 
| 12 | 900 | 1040 | 1170 | 1300 | 1460 | 1600 | 1730 | 1880 | 2040 | 
Профессор кафедры КИТ
____________Моржов В.И.


Встановимо границю лінеаризації. Вона дорівнює10%. Функція має 1 проміжок.

| M H | 0 | 1 | 
| 2 | 4000 | 4720 | 
| 4 | 3300 | 4230 | 
| 6 | 2580 | 3740 | 
| 8 | 1880 | 3180 | 
| 10 | 1170 | 2660 | 
| 12 | 900 | 2040 | 
| H M | 0 | 2 | 4 | 6 | 8 | 10 | 12 | 
| 1 | 5130 | 4720 | 4230 | 3740 | 3180 | 2660 | 2040 | 
Формула для рівняння лінеаризації функції:
Ri=Ri0+Ki*(M-Mi)+Q*(H-Hi)
Ki= Mi-Mi0
Qj= Hj-Hj0
| Ki H | K1 | 
| 2 | 720 | 
| 4 | 930 | 
| 6 | 1160 | 
| 8 | 1300 | 
| 10 | 1490 | 
| 12 | 1140 | 
| H M | Q1 | Q2 | Q3 | Q4 | Q5 | Q6 | 
| 1 | -410 | -490 | -490 | -560 | -520 | -6220 | 
Загальні рівняння:
M = 1
H = 2 : R = 4720+720*(M-1) -410*(H-2)
H = 4 : R = 4230+930*(M-1) -490*(H-4)
H = 6 : R = 3740+1160*(M-1) -490*(H-6)
H = 8 : R = 3180+1300*(M-1) -560*(H-8)
H = 10 : R = 2660+1490*(M-1) -520*(H-10)
H = 12 : R = 2040+1140*(M-1) -6220*(H-12)
Блок-схема

Текст програми:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MMDO_DZ
{
class Program
{
static void Main(string[] args)
{
double M, H,R= 0;
Console.WriteLine("Введите M");
M = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Введите H");
H = Convert.ToDouble(Console.ReadLine());
if (H <= 2)
{
R = 4720 + 720 * (M - 1) - 410 * (H - 2);
}
else
{
if (H <= 4)
{
R = 4230 + 930 * (M - 1) - 490 * (H - 4);
}
else
{
if (H <= 6)
{
R = 3740 + 1160 * (M - 1) - 490 * (H - 6);
}
else
{
if (H <= 8)
{
R = 3180 + 1300 * (M - 1) - 560 * (H - 8);
}
else
{
if (H <= 10)
{
R = 2660 + 1490 * (M - 1) - 520 * (H - 10);
}
else
{
if (H <= 12)
{
R = 2040 + 1140 * (M - 1) - 6220 * (H - 12);
}
}
}
}
}
}
Console.WriteLine("Ответ: " + R);
Console.ReadKey();
}
}
}


Висновок:В цій домашній роботі я навчилася лінеаризувати функції, знаходити коефіцієнти для лінійної функції та написала програму, яка рахує значення функції в залежності від значення аргументу.
