Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Furman_word_74.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
463.94 Кб
Скачать

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 с.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]