Математические методы / ДЗ / ДЗ №1 Рева
.docМіністерство освіти і науки України
Національний авіаційний університет
Інститут комп’ютерних інформаційних технологій
Домашнє завдання з дисципліни : “Математичні методи дослідження операцій”
Студентки гр ТП-213
Реви Катерини
Київ 2017
Домашнее задание №1
по дисциплине “Математические методы исследования операций”.
Разработать линейную модель двумерной функции, которая задана в виде таблицы чисел, методами линейного программирования.
В процессе выполнения домашнего задания необходимо:
- построить графики для заданного массива чисел;
- минимизировать количество кусочно-линейных участков исходной двумерной поверхности, обеспечивающих допустимую погрешность аппроксимации равную 1% от максимального значения исходной функции;
- рассчитать значение коэффициентов системы линейных уравнений, описывающих двумерную поверхность;
- свести коэффициенты линейных уравнений в таблицу;
- разработать алгоритм вычислительного процесса для определения численного значения функции по любому промежуточному значению ее аргументов;
- написать и отладить программу на любом алгоритмическом языке программирования высокого уровня;
- выполнить контрольные расчеты, подтверждающие правильность работы программы;
- оформить отчет по выполнению домашнего задания №1.
Вариант №21
Таблица mz(,M)
, град М |
0 |
5 |
10 |
15 |
20 |
25 |
0,7 |
0,35 |
0,05 |
-0,1 |
-0,3 |
-0,25 |
-0,2 |
0,8 |
0,4 |
0,15 |
-0,05 |
-0,2 |
-0,15 |
-0,12 |
0,9 |
0,4 |
0,17 |
-0,07 |
-0,22 |
-0,2 |
0,1 |
Побудуємо графіки для заданого масиву чисел:
Розіб’ємо функцію на щонайменше проміжків:
/M |
0 |
10 |
20 |
25 |
0,7 |
0,35 |
-0,1 |
-0,25 |
-0,2 |
0,8 |
0,4 |
-0,05 |
-0,15 |
-0,12 |
0,9 |
0,41 |
-0,07 |
0,2 |
0,1 |
Формула для рівняння лінеаризації функції:
Gi=Gi0+Ki*(M-Mi)+Q*(H-Hi)
Ki=Mi-Mi0
Qj=Hj-Hj0
|
K1 |
K2 |
K3 |
0,7 |
-0,45 |
-0,15 |
0,05 |
0,8
|
-0,45 |
-0,1 |
0,03 |
0,9 |
-0,47 |
0,27 |
-0,1 |
M |
0 |
10 |
20 |
25 |
Q1 |
0,05 |
0,05 |
0,1 |
0,08 |
Q2 |
0,01 |
-0,02 |
0,35 |
0,22 |
-
M=0,7
H=-0,35-0,45*(M*0,7)+0,05(H-5)
H=-0,1-0,15*9M*0,7)-0,1(H-10)
H=-0,25-0,05*(M*0,7)-0,3(H-15)
H=-0,25-0,15*(M*0,7)-0,25(H-20)
H=-0,2-0,05*(M*0,7)-0,2(H-25)
-
M=0,8
H=0,15-0,45*(M*0,8)+0,15(H-5)
H=-0,05-0,1*(M*0,8)-0,05(H-10)
H=0,15-0,05*(M*0,8)-0,15(H-15)
H=-0,15-0,1*(M*0,8)-0,15(H-20)
H=-0,12-0,03*(M*0,8)-0,12(H-25)
-
M=0,9
H=0,4-0,45*(M*0,9)-0,17(H-5)
H=-0,07-0,24*(M*0,9)+0,17(H-10)
H=-0,2-0,15*(M*0,9)+0,2(H-15)
H=0,2-0,1*(M*0,9)+0,2(H-20)
H=0,1-0,22*(M*0,9)+0,1(H-25)
Текст програми:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication6
{
class Program
{
static void Main(string[] args)
{
double M, H, f = 0;
Console.WriteLine("Введите M");
M = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Введите H");
H = Convert.ToDouble(Console.ReadLine());
if (M <= 0.8)
{
if (H <= 5)
{
f = -0.35 - 0.45 * (M * 0.7)+0.05 *(H - 5);
}
else
{
if (H <= 10)
{
f = 0.1 - 0.15 * (M * 0.7)-0.1*(H - 10);
}
else
{
if (H <= 15)
{
f = 0.25 - 0.05 * (M * 0.7)-0.3*(H - 15);
}
else
{
if (H <= 20)
{
f = 0.25 - 0.15 * (M * 0.7)-0.25*(H - 20);
}
else
{
if (H <= 25)
{
f = 0.2 - 0.05 * (M * 0.7)-0.2*(H - 25);
}
}
}
}
}
}
else
{
if (H <= 5)
{
f = 0.15 - 0.45 * (M * 0.8)+0.15*(H - 5);
}
else
{
if (H <= 10)
{
f = 0.05 - 0.1 * (M * 0.8)-0.05*(H - 10);
}
else
{
if (H <= 15)
{
f = 0.15 - 0.05 * (M * 0.8)-0.15*(H - 15);
}
else
{
if (H <= 20)
{
f = 0.15 - 0.1 * (M * 0.8)-0.15*(H - 20);
}
else
{
if (H <= 25)
{
f = 0.12 - 0.03 * (M * 0.8)-0.12*(H - 25);
}
}
}
}
}
}
Console.WriteLine("Ответ: " + f);
Console.ReadKey();
}
}
}
Блок-схема