Функция распределения

Автор работы: Пользователь скрыл имя, 28 Августа 2013 в 14:06, курсовая работа

Описание работы

Одним из основных понятий теории вероятностей является функция распределения случайной величины, характеризующая распределение случайной величины или случайного вектора. Существует множество видов функции распределения. В рамках данной курсовой работы будут рассмотрены три из них: хи квадрат распределение, t-распределение и f-распределение.

Содержание работы

Введение …………………………………………………………………. 3
1. Функции распределения ……………….…………………………….... 4
2. Разработка алгоритма …………………………………………..…..….. 7
3. Программная реализация ………………………..……………..…..… 13
4. Результаты работы программы ……………………………………… 18
Заключение …………………………………………………………….... 19
Список литературы ……………………………………………………... 20

Файлы: 1 файл

Функции распределения.doc

— 746.00 Кб (Скачать файл)


Содержание

Введение  ………………………………………………………………….  3

1. Функции распределения ……………….…………………………….... 4

2. Разработка алгоритма  …………………………………………..…..….. 7

3. Программная реализация  ………………………..……………..…..… 13

4. Результаты работы  программы ……………………………………… 18

Заключение …………………………………………………………….... 19

Список литературы ……………………………………………………... 20

 

Введение.

Теория вероятностей — раздел математики, изучающий закономерности случайных явлений: случайные события, случайные величины, их свойства и операции над ними. Возникновение теории вероятностей как науки относят к средним векам и первым попыткам математического анализа азартных игр. Первоначально её основные понятия не имели строго математического вида, к ним можно было относиться как к некоторым эмпирическим фактам, как к свойствам реальных событий, и они формулировались в наглядных представлениях. Самые ранние работы учёных в области теории вероятностей относятся к XVII веку. Во второй половине XIX века основной вклад внесли русские учёные П. Л. Чебышев, А. А. Марков и А. М. Ляпунов. Современный вид теория вероятностей получила благодаря  Андрею Николаевичу Колмогорову. В результате его работ теория вероятностей приобрела строгий математический вид и окончательно стала восприниматься как один из разделов математики.

Одним из основных понятий  теории вероятностей является функция  распределения случайной величины, характеризующая распределение случайной величины или случайного вектора. Существует множество видов функции распределения. В рамках данной курсовой работы будут рассмотрены три из них: хи квадрат распределение, t-распределение и f-распределение.

 

 

1. Функции распределения.

Случайная величина —  это величина, которая принимает  в результате опыта одно из множества  значений, причем появление того или  иного значения этой величины до её измерения нельзя точно предсказать. Частично задать случайную величину, описав этим все её вероятностные свойства как отдельной случайной величины, можно с помощью функции распределения, плотности вероятности и характеристической функции, определяя вероятности возможных её значений. Функция распределения F(x) является вероятностью того, что значения случайной величины меньше вещественного числа x. Из этого определения следует, что вероятность попадания значения случайной величины в интервал [a, b) равна F(b)-F(a). Преимущество использования функции распределения заключается в том, что с её помощью удаётся достичь единообразного математического описания дискретных, непрерывных и дискретно-непрерывных случайных величин.

Распределение χ2 (хи-квадрат) с k степенями свободы — это распределение суммы квадратов k независимых стандартных нормальных случайных величин. Это распределение обычно используется при проверке статистических гипотез: широко известен критерий согласия, статистика которого имеет распределение χ2, это же распределение используется при оценке дисперсии выборки.

Функция плотности вероятности  распределения χ2 имеет вид:

Функции распределения χ2:

Вычисление P(x/v) выполняется разложением в ряд:

Таким образом, для реализации этих вычислений необходимо вычисление гамма-функции  Г(v/2). Поскольку указанные выше функции обычно вычисляются при целых v, то Г(v/2) можно вычислить по следующему алгоритму:

    1. Если v=1, а=1/2, Г(а)=
    2. Если v – четное число, то Г(а)=(а-1)!
    3. Если v – нечетное число, то Г(а)=(а-1)(а-2)…(1/2)

 

Распределение Стьюдента (t-распределение) в теории вероятностей — это однопараметрическое семейство абсолютно непрерывных распределений.

Пусть  — независимые стандартные нормальные случайные величины, такие что . Тогда распределение случайной величины , где

называется распределением Стьюдента  с  степенями свободы. Её распределение абсолютно непрерывно и характеризуется функцией:

Для четных v I(x, v) вычисляется разложением в ряд: ,

а для нечетных v (кроме v=1, когда I(x, v)=20/ ):

, где

 

Распределение Фишера (f-распределение) в теории вероятностей — это двухпараметрическое семейство абсолютно непрерывных распределений.

Пусть Y1,Y— две независимые случайные величины, имеющие распределение хи-квадрат: , где . Тогда распределение случайной величины:

,

Функция распределения Q(x) для f-распределения:

При целых v1 вычисляется разложением в ряд:

,

а при целых v2

где .

Если целыми являются v1 и v2 берется ряд для меньшего из них.

 

2. Разработка алгоритма.

Согласно описанным  выше формулам были разработаны алгоритмы χ2-, t-, f-распределений, блок-схемы которых приведены ниже.

Рисунок 1. Блок-схема  алгоритма χ2-распределения.

 

Рисунок 2. Блок-схема алгоритма t-распределения.

Рисунок 3. Блок-схема алгоритма  f-распределения.

Рисунок 4. Блок-схема  алгоритма функции Q_b()

Рисунок 5. Блок-схема  алгоритма функции Q_с()

 

3. Программная реализация.

Согласно разработанному алгоритму была написана программа на языке C#, листинг которой приведен ниже:

using System;

using System.Collections.Generic;

using System.Drawing;

using System.Windows.Forms;

 

namespace Raspredeleniya

{

/// <summary>

/// Description of MainForm.

/// </summary>

public partial class MainForm : Form

{

double x=0, v=1;

double g, f, a, E, b, d, z, c, s, k, w, q,p, x_a, a_2,i, j, h;

int pr, bz, cz;

public MainForm()

{

//

// The InitializeComponent() call is required for Windows Forms designer support.

//

InitializeComponent();

 

//

// TODO: Add constructor code after the InitializeComponent() call.

//

}

 

void Button2Click(object sender, EventArgs e)

{

if(textBox3.Text!="") x=Convert.ToDouble(textBox3.Text);

else x=0;

if(textBox4.Text!="") v=Convert.ToDouble(textBox4.Text);

else v=1;

g=1; f=1; a=1; E=0; z=0;

x=Math.Atan(x/Math.Sqrt(v));

c=Math.Cos(x)*Math.Cos(x);

pr=Convert.ToInt32(v/2);

if ((v/2-pr)==0){

g=v; d=1;E=E+2;

while(E!=g){

f=f*d/E*c;a=a+f; d=d+2; E=E+2;

}

z=Math.Sin(x)*a;

}

else{

if(v!=1){

b=2*x/Math.PI;

if (v==g) z=b; 

else{

g=v-1; d=3; E=E+2;

while(E!=g){

f=f*E/d*c; a=a+f; d=d+2;E=E+2;

}

z=2/Math.PI*Math.Cos(x)*Math.Sin(x)*a+b;

}

}

else z=20/Math.PI;

}

 

label9.Text="Значение I(x,v) = "+Convert.ToString(z);

}

 

void Button1Click(object sender, EventArgs e)

{

if(textBox1.Text!="") x=Convert.ToDouble(textBox1.Text);

else x=0;

if(textBox2.Text!="") v=Convert.ToDouble(textBox2.Text);

else v=0;

a=v/2; b=x/2; c=a; g=1; d=1;

pr=Convert.ToInt32(a);

if(pr!=0) {

for(int i=1; i<=(a-1); i++)

g=g*i;

}

else{

g=Math.Sqrt(Math.PI);

while(c>1){

d=d*c; c=c-1;

}

}

x_a=Math.Exp((a-1)*Math.Log(x));

a_2=Math.Exp(a*Math.Log(2));

f=x_a/g/Math.Exp(a)/a_2;

label4.Text="Значение F(x^2, v) = "+Convert.ToString(f);

s=0; k=0; w=0; z=0; g=1;

do{

k=k+1; w=w+2; z=s; g=g*(v+w);

x_a=Math.Exp(k*Math.Log(x));

s=s+x_a/g;

}

while(s!=z);

p=2*x*f*(1+s)/v; q=1-p;

label4.Text=label4.Text+"\nЗначение P(x^2, v) = "+Convert.ToString(p);

label4.Text=label4.Text+"\nЗначение Q(x^2, v) = "+Convert.ToString(q);

}

 

double Q_b(){

g=c/(c+x*b); a=1; j=1; k=1; i=0;

z=0; x=0; f=0; E=c; h=1-g;

if((b-2)/2!=k){

k=(b-2)/2; i++;

while(i<k){

f=f+2; j=j*E/f*h;

a=a+j; E=E+2; i++;

}

}

a=a+j*E/(f+2)*h;

x_a=Math.Exp((c/2)*Math.Log(g));

z=a*x_a;

return  z;

}

double Q_c(){

g=c/(c+x*b); a=1; j=1; k=1; i=0;

x=1; f=0; E=b; h=g;

if((c-2)/2!=k){

k=(c-2)/2; i++;

while(i<k){

f=f+2; j=j*E/f*h;

a=a+j; E=E+2; i++;

}

}

a=a+j*E/(f+2)*h;

h=1-g;

x_a=Math.Exp((b/2)*Math.Log(h));

z=1-a*x_a;

return z;

}

 

void Button3Click(object sender, EventArgs e)

{

if(textBox5.Text!="") x=Convert.ToDouble(textBox5.Text);

else x=1;

if(textBox6.Text!="") b=Convert.ToDouble(textBox6.Text);

else b=2;

if(textBox7.Text!="") c=Convert.ToDouble(textBox7.Text);

else c=2;

bz=Convert.ToInt16(b);

cz=Convert.ToInt16(c);

if((b-bz==0)&&(c-cz==0)){

if(b>c) z=Q_c();

else z=Q_b();

}

else{

if((b-bz!=0)&&(c-cz!=0)) z=0;

if((b-bz==0))z=Q_b();

if((c-cz==0))z=Q_c();

}

label13.Text="Значение функции распределения Q(x, v1, v2) = "+Convert.ToString(z);

}

}

}

 

4. Результаты работы программы.

В ходе выполнения курсовой работы была разработана программа, листинг которой приведен выше. При запуске приложения на экране появляется форма для ввода исходных данных соответствующего типа распределения. Введя необходимые данные и нажав кнопку «Найти», можно получить значение функции соответствующего распределения. Вид экранной формы приведен на рисунке 6.

Рисунок 6. Экранная форма приложения.

Заключение

В ходе выполнения данной курсовой работы были изучены основные статистические функции, разработаны блок-схемы алгоритмов, реализующих χ2-, t-, f- распределение, написана программа на языке C#, согласно этим алгоритмам и проведена проверка полученных в результате работы программы данных.

 

 

Список литературы

  1. http://ru.wikipedia.org/
  2. Дьяконов В.П. Справочник по алгоритмам и программам на языке бейсик для персональных ЭВМ. - М.: Наука, 1987.

 


Информация о работе Функция распределения