Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Б. Расчеты выполненные с помощью программы на компьютере.
Использован язык программирования C# 4.5. Ниже приведен текст программы.
using System; namespace Lab4_5 { class Program { static void Main(string[] args) { double[] x = {-1.33, -3.84, -3.23, -2.76, -2.22, -1.67, -1.13, -0.6}; double[] y = {2.25, 2.83, 3.44, 4.31, 5.29, 6.55, 8.01, 10.04}; double[] u = new double[8]; double[] v = new double[8]; int n=8, i; // n количество пар в массивах x и y double s=0, s1=0, s2=0, s3=0, s4=0, a, b; // расчет коэффициентов линейной приближающей функции for (i = 0; i < n; i++) { u[i] = x[i]; v[i] = y[i]; s1 = s1 + u[i]; s2 = s2 + v[i]; s3 = s3 + u[i]*v[i]; s4 = s4 + u[i]*u[i]; } s1 = s1 / n; s2 = s2 / n; s3 = s3 / n; s4 = s4 / n; a=(s3-s1*s2)/(s4-s1*s1); b = s2 - s1 * a; for (i = 0; i < n; i++) { v[i] = a * u[i] + b; s = s + (y[i] - v[i]) * (y[i] - v[i]); } Console.WriteLine(" \nУравнение линейной регреcсии\n"); Console.WriteLine(" y = {0: #.###} * x + {1: #.###}\n", a, b); Console.WriteLine(" Сумма квадратов отклонений = {0: #.###}\n", s); Console.Write(" x\t"); for (i = 0; i < n; i++) { Console.Write(x[i] + " \t"); } Console.Write(" \ny*\t"); for (i = 0; i < n; i++) { Console.Write(" {0: #.###}\t", v[i]); } s = 0; s1 = 0; s2 = 0; s3 = 0; s4 = 0; a = 0; b = 0; Console.Write(" \n"); // расчет коэффициентов степенной приближающей функции for (i = 0; i < n; i++) { u[i]= Math.Log(x[i]+10); v[i] = Math.Log(y[i]); s1 = s1 + u[i]; s2 = s2 + v[i]; s3 = s3 + u[i] * v[i]; s4 = s4 + u[i] * u[i]; } s1 = s1 / n; s2 = s2 / n; s3 = s3 / n; s4 = s4 / n; a = (s3 - s1 * s2) / (s4 - s1 * s1); b = s2 - s1 * a; for (i = 0; i < n; i++) { v[i] = a * u[i] + b; v[i] = Math.Exp(v[i]); s = s + (y[i] - v[i]) * (y[i] - v[i]); } Console.WriteLine(" \n\n\nУравнение степенной регресии"); Console.WriteLine(" \ny = {0: #.###} * x ^ {1: #.###}", Math.Exp(b), a); Console.WriteLine(" \nСумма квадратов отклонений = {0: #.###}\n", s); Console.Write(" x\t"); for (i = 0; i < n; i++) { Console.Write(x[i] + " \t"); } Console.Write(" \ny*\t"); for (i = 0; i < n; i++) { Console.Write(" {0: #.###}\t", v[i]); } Console.Write(" \n");
s = 0; s1 = 0; s2 = 0; s3 = 0; s4 = 0; a = 0; b = 0; Console.Write(" \n"); // расчет коэффициентов показательной приближающей функции for (i = 0; i < n; i++) { u[i] = x[i]; v[i] = Math.Log(y[i]); s1 = s1 + u[i]; s2 = s2 + v[i]; s3 = s3 + u[i] * v[i]; s4 = s4 + u[i] * u[i]; } s1 = s1 / n; s2 = s2 / n; s3 = s3 / n; s4 = s4 / n; a = (s3 - s1 * s2) / (s4 - s1 * s1); b = s2 - s1 * a; for (i = 0; i < n; i++) { v[i] = a * u[i] + b; v[i] = Math.Exp(v[i]); s = s + (y[i] - v[i]) * (y[i] - v[i]); } Console.WriteLine(" \n\n\nУравнение экспоненциальной регресии"); Console.WriteLine(" \ny = {0: #.###} * e ^ ({1: #.###}*x)", Math.Exp(b), a); Console.WriteLine(" \nСумма квадратов отклонений = {0: #.###}\n", s); Console.Write(" x\t"); for (i = 0; i < n; i++) { Console.Write(x[i] + " \t"); } Console.Write(" \ny*\t"); for (i = 0; i < n; i++) { Console.Write(" {0: #.###}\t", v[i]); } Console.Write(" \n"); Console.ReadKey(); } } } Результат выполнения программы в среде Microsoft Visual Studio 2012 Express.
|