- •Курсова робота
- •1.2 Вибір емпіричної формули……………………..………………..………….6
- •1 Метод найменших квадратів
- •1.1 Постановка задачі
- •1.2 Вибір емпіричної формули
- •1.3 Обчислення параметрів емпіричної формули методом найменших квадратів
- •2 Методи розв’язування систем лінійних рівнянь
- •2.1 Метод Крамера
- •2.2 Метод оберненої матриці
- •2.3 Розв’язування систем лінійних рівнянь на пк
- •3 Побудова емпіричної формули
- •3.1 Вибір двох апроксимуючих функцій
- •3.1.1 Лінійна функція
- •3.1.2 Степенева функція
- •3.2 Розрахунки у середовищі ms Excel
- •3.2.1 Розрахунки для лінійної функції
- •3.2.2 Розрахунки для степеневої функції
3.1.2 Степенева функція
Як було вище сказано, при розв’язку рівняння методом найменших квадратів, функція, яка буде мати найменший результат – достатньо точна. Степенева функція – досить точна функція, про це я переконався з розв’язків в MS Excel.
Функція має ряд переваг, а саме:
Ця функція дає найкращі значення при розв’язку.
Не дуже складна у використанні.
Отже, дві функції, вибрані мною, дають хорошу точність результатів і легкість у користуванні. Тому, раджу користуватися цими двома функціями.
3.2 Розрахунки у середовищі ms Excel
3.2.1 Розрахунки для лінійної функції
Проведемо
всі необхідні розрахунки, припускаючи,
що апроксимуючою функцією є лінійна
функція
.
Таблиця MS Excel з результатами розрахунків (методом Крамера) показана на рисунку 3.2. На рисунку 3.3 показана ця сама таблиця, в режимі формул.
Рисунок 3.2 – Розрахунок для лінійної функції в MS Excel.
Рисунок
3.3 – Розрахунок для лінійної функції в
MS Excel (режим формул).
Графіки заданої та апроксимуючої лінійної функції, зображені на рисунку 3.4
Рисунок 3.4 – Графіки заданої та апроксимуючої (лінійної) функції.
На основі проведених розрахунків отримаємо емпіричну формулу y = -0,0145x + 0,4903 , для якої значення суми квадратів відхилення дорівнює 0,0019.
3.2.2 Розрахунки для степеневої функції
Проведемо всі необхідні розрахунки, припускаючи, що апроксимуючою функцією є степенева функція
Таблиця MS Excel з результатами розрахунків (методом Крамера) показана на рисунок 3.5. На рисунку 3.6. показана ця сама таблиця, в режимі формул.
Рисунок 3.5 – Розрахунок для степеневої функції в MS Excel.
Рисунок 3.6 – Розрахунок для степеневої функції в MS Excel (режим формул).
Графіки заданої та апроксимуючої функції – степеневої функції, виконані засобами MS Excel, подані на рисунку 3.7
Рисунок 3.7 – Графіки заданої та апроксимуючої степеневої функції функції (MS Excel).
На основі вище проведених розрахунків отримаємо наступну емпіричну формулу y = 0,5041x-0,135 .Для отриманої емпіричної формули значення суми квадратів відхилення дорівнює 0,0002068.
Як ми переконались, дві функції є точними і мають використовуватись. Суми квадратів відхилень дорівнюють 0,0019 для лінійної функції і 0,0002068, для степеневої функції.
3.3 Розрахунки у середовищі MS Visual Studio (мовою C#)
Розв’язок мовою C# має наступний вигляд:
double a4 = 0.0, b4 = 0.0, Sx4 = 0.0, Sx24 = 0.0, Sy4 = 0.0, Sxy4 = 0.0;
int i, N = 9;
double[] Yroz = new double[N];
// Оголошення та ініціалізація заданого масиву x
double[] masX = { 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0 };
// Оголошення та ініціалізація заданого масиву Y
double[] masY = { 0.51, 0.45, 0.43, 0.42, 0.41, 0.40, 0.39, 0.38, 0.37 };
double[] opt = new double[9];
double S_linijna;
for (i = 0; i < N; i++)
{
Sx4 = Sx4 + masX[i];
Sx24 = Sx24 + Math.Pow(masX[i], 2);
Sy4 = Sy4 + masY[i];
Sxy4 = Sxy4 + masX[i] * masY[i];
}
a4 = (Sx24 * Sy4 - Sx4 * Sxy4) / (N * Sx24 - Math.Pow(Sx4, 2));
b4 = (N * Sxy4 - Sx4 * Sy4) / (N * Sx24 - Math.Pow(Sx4, 2));
Console.WriteLine("==== Апроксимуючою є лiнiйна функцiя ====");
Console.WriteLine("a4= " + "{0:f4}", a4);
Console.WriteLine("b4= " + "{0:f4}", b4);
Console.WriteLine("Формула має вигляд:");
Console.Write("y= {0:f4}+{1:f4}*x", a4, b4);
Console.WriteLine();
Console.WriteLine(" == Таблиця значень ==");
Console.WriteLine(" X Yтабл. Yрозрах.");
S_linijna = 0;
for (i = 0; i < N; i++)
{
//Обчислюїмо за формулою (iз одержаними параметрами) розрахунковi значення Y
Yroz[i] = a4 + b4 * masX[i];
//Обчислюїмо суму квадратiв вiдхилення
S_linijna = S_linijna + Math.Pow((masY[i] - Yroz[i]), 2);
Console.Write(" " + "{0:F4}", masX[i]);
Console.Write(" " + "{0:F4}", masY[i]);
Console.Write(" " + "{0:F4}", Yroz[i]);
Console.WriteLine();
}
Console.WriteLine("Сума квадратiв вiдхилення рiвна " + "{0:f4}", S_linijna);
double a = 0.0, b = 0.0, Sx = 0.0, Sx2 = 0.0, Sy = 0.0, Sxy = 0.0;
double[] ken = new double[9];
double S_stepeneva;
double g;
for (i = 0; i < N; i++)
{
Sx = Sx + Math.Log(masX[i]);
Sx2 = Sx2 + Math.Pow(Math.Log(masX[i]), 2);
Sy = Sy + Math.Log(masY[i]);
Sxy = Sxy + Math.Log(masX[i]) * Math.Log(masY[i]);
//Невiдомi параметри iз отримано• системи шукаїмо методом Крамера}
}
g = (Sx2 * Sy - Sx * Sxy) / (N * Sx2 - Math.Pow(Sx, 2));
b = (N * Sxy - Sx * Sy) / (N * Sx2 - Math.Pow(Sx, 2));
a = Math.Exp(g);
Console.WriteLine("==== Апроксимуючою є степенева функцiя ====");
Console.WriteLine("a= " + "{0:f4}", a);
Console.WriteLine("b= " + "{0:f4}", b);
Console.WriteLine("Формула має вигляд:");
Console.Write("y= {0:f4}*x^{1:f4}", a, b);
Console.WriteLine();
Console.WriteLine(" == Таблиця значень ==");
Console.WriteLine(" X Yтабл. Yрозрах.");
S_stepeneva = 0;
for (i = 0; i < N; i++)
{
//Обчислюїмо за формулою (iз одержаними параметрами) розрахунковi значення Y}
Yroz[i] = a * Math.Exp(b * Math.Log(masX[i]));
//Обчислюїмо суму квадратiв вiдхилення
S_stepeneva = S_stepeneva + Math.Pow((masY[i] - Yroz[i]), 2);
Console.Write(" " + "{0:f4}", masX[i]);
Console.Write(" " + "{0:f4}", masY[i]);
Console.Write(" " + "{0:f4}", Yroz[i]);
Console.WriteLine();
}
Console.WriteLine("Сума квадратiв вiдхилення рiвна " + "{0:f4}", S_stepeneva);
if (S_stepeneva > S_linijna)
{
Console.WriteLine("Шукана функція - лінійна");
}
else
{
Console.WriteLine("Шукана функція - степенева");
}
Console.ReadKey();
Рисунок
3.3.1 – Результати роботи програми
ВИСНОВКИ
Метою виконання курсової роботи було інтегроване використання широкого спектра методів та засобів автоматизованої обробки інформації при розв’язуванні науково-інженерних задач (текстовий редактор MS Word, табличний процесор MS Excel, мова програмування C#), а також технологій DLE I OLE.
На основі розрахунків, виконаних засобами MS Excel та C#, ми отримали дві емпіричних формули:
1. y= -0,0145x + 0,4903 апроксимуючою функцією була лінійна.
2. y = 0,5041x-0,135 апроксимуючою функцією була степенева
Значення суми квадратів відхилення у першому випадку дорівнює 0,0019, у другому 0,0002068.
Оскільки сума квадратів відхилення у першому випадку є меншою, то емпірична формула y= -0,0145x + 0,4903, при апроксимуючій лінійній функції є кращою ніж y = 0,5041x-0,135 - при апроксимуючій степеневій функції.
Практика використання засобів Excel та C# потрібна, оскільки робота в цих програмних продуктах полегшує роботу для інженера й тим самим пришвидшує її.
ПЕРЕЛІК ПОСИЛАНЬ
1. Інформатика: Комп’ютерна техніка. Комп’ютерні технології. Посібник. / За ред. О. І. Пушкаря.- К.: Видавн. центр “Академія”, 2001.- 696 с.
2. Л. М. Дибкова. Інформатика та комп’ютерна техніка: Посіб.- К.: Видавничий центр “Академія”, 2002.- 320 с.
3. Колесников А. Exсel 97 (русифицированная версия) - К.: Изд. группа BHV, 1997.- 528
4. Фултон Д. Освой самостоятельно Microsoft Excel 2000 за 10 минут на урок: Пер. с англ.- М.: Вильямс, 2000.- 224 с.
5. Информатика. Базовый курс: Учеб. пособ. / Под ред. С. В. Симоновича.- СПб.:Питер, 2001 (2002).- 640 с.
6. Информатика для юристов и экономистов: Учеб. пособ. / Под ред. С. В. Симоновича.- СПб.:Питер, 2001.- 688 с.
7. Локазюк В. М., Спиридонов В. І., Джулій В. М. Основи інформатики.- Х.: ХНУ, 2004.
8. В. Г. Войтков. Лабораторний практикум з інформатики. Ч. 1. – Хмельницький: ТУП, 2001.- 108 с.
9. Абрамов С. А., Зима Е. В. Начала информатики. – М.: Наука, 1989. – 256 с.
10. Жалдак М. І., Рамський Ю. С. Інформатика. – Київ: Вища школа, 1991. – 318 с.
11. Мороз В. В. Обчислювальна математика : Навч. посібник [Електронний ресурс] / В. В. Мороз, Л. М. Трасковецька // Електронна бібліотека ХНУ. – Режим доступу:http://library.tup.km.ua/EL_LIBRARY/Book_do_2006/Moroz/zmist.htm
12. Пушкар О. І. Інформатика: Комп’ютерна техніка. Комп’ютерні технології : Посіб. / О. І. Пушкар. – К. : Вид. центр “Академія”, 2001. – 696 с.
13. Дибкова Л. М. Інформатика та комп’ютерна техніка : Посіб. / Л. М. Дибкова. – К. : Вид. центр “Академія”, 2002. – 320 с.
