Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Б. Расчеты выполненные с помощью программы на компьютере.






Использован язык программирования 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.

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.