Математические методы / ДЗ / ДЗ №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();
}
}
}
Висновок:В цій домашній роботі я навчилася лінеаризувати функції, знаходити коефіцієнти для лінійної функції та написала програму, яка рахує значення функції в залежності від значення аргументу.