Форум программистов, компьютерный форум CyberForum.ru

Найти Мат.ожидание M= (1/N) S X(i), дисперсию, сред. кв. отклонение - C++

Восстановить пароль Регистрация
 
Broke777
1 / 1 / 0
Регистрация: 19.09.2013
Сообщений: 43
30.11.2013, 16:25     Найти Мат.ожидание M= (1/N) S X(i), дисперсию, сред. кв. отклонение #1
Друзья, нужна ваша помощь ! Кого не затруднит, пожалуйста, помогите с программкой.

Ввести массив X(N). Найти
• а) Мат.ожидание M= (1/N) S X(i)
• b) Дисперсию D = (1/(N-1)) S (X(i) - M) 2
• c) Среднее квадратическое отклонение sqrt(D)

Спасибо!

Добавлено через 18 часов 40 минут
Решено
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.11.2013, 16:25     Найти Мат.ожидание M= (1/N) S X(i), дисперсию, сред. кв. отклонение
Посмотрите здесь:

C++ Найти математическое ожидание, дисперсию, и среднее квадратичное
C++ Вычислить математическое ожидание, дисперсию и среднеквадратичное отклонение случайной величины
найти среднее арифметическое y и max отклонение от среднего C++
C++ Требования разных сред к простейшим программам С++
C++ Определить параметры распределения (мат.ожидание, дисперсию, СКО, коэф.корреляции)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Taatshi
Администратор
 Аватар для Taatshi
11207 / 4792 / 247
Регистрация: 05.04.2011
Сообщений: 13,322
Записей в блоге: 2
30.11.2013, 19:25     Найти Мат.ожидание M= (1/N) S X(i), дисперсию, сред. кв. отклонение #2
Broke777, Вы молодец, что справились самостоятельно. Поделитесь решением - может, это кому-нибудь будет полезно в будущем
Broke777
1 / 1 / 0
Регистрация: 19.09.2013
Сообщений: 43
01.12.2013, 08:53  [ТС]     Найти Мат.ожидание M= (1/N) S X(i), дисперсию, сред. кв. отклонение #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include "stdafx.h"
#include <conio.h>
#include <iostream>
#include <string>
#include <math.h>
 
using namespace std;
int main()
{ setlocale(0, "");
int N;
float M=0;
float D=0;
cout << "Введите количество элементов в массиве, не более 100: ";
cin >> N;
int X[100];
for (int i = 0; i < N; i++) {
cout << "X[" << i + 1 << "]" << ": ";
cin >> X[i];
M= M + X[i];}
cout << "Мат.ожидание = " << M/N;
for (int i = 0; i < N; i++) {
D=D+(X[i]-M)*(X[i]-M);}
cout << "\nДисперсия = " << D/(N-1);
cout << "\nСреднеквадратичное отклонение = " << sqrt(D);
getch();
}
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
01.12.2013, 11:45     Найти Мат.ожидание M= (1/N) S X(i), дисперсию, сред. кв. отклонение #4
Ну и нифига не правильно! Оценка матожидания это не сумма, а среднее арифметическое! У тебя же сумма делится на N только для вывода М, а в вычислении дисперсии участвует некорректное значение M, так и не поделенное на количество!

Добавлено через 9 минут
Во-вторых, где инициализация массива? Он у тебя так нигде и не заполняется данными!
В связи с этим встает вопрос: неужели ты не заметил, что твоя программа выводит слишком ОГРОМНОЕ значдние дисперсии.
Ты то хоть примерно, на глаз оценить дисперсию можешь?
Broke777
1 / 1 / 0
Регистрация: 19.09.2013
Сообщений: 43
01.12.2013, 21:29  [ТС]     Найти Мат.ожидание M= (1/N) S X(i), дисперсию, сред. кв. отклонение #5
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Ну и нифига не правильно! Оценка матожидания это не сумма, а среднее арифметическое! У тебя же сумма делится на N только для вывода М, а в вычислении дисперсии участвует некорректное значение M, так и не поделенное на количество!

Добавлено через 9 минут
Во-вторых, где инициализация массива? Он у тебя так нигде и не заполняется данными!
В связи с этим встает вопрос: неужели ты не заметил, что твоя программа выводит слишком ОГРОМНОЕ значдние дисперсии.
Ты то хоть примерно, на глаз оценить дисперсию можешь?
Агрессию свою можешь себе оставить. Массив вводится с клавиатуры, если ты не заметил. Значения нормальные получаются
Hoottie_McGOOB
107 / 105 / 5
Регистрация: 04.10.2013
Сообщений: 231
01.12.2013, 21:49     Найти Мат.ожидание M= (1/N) S X(i), дисперсию, сред. кв. отклонение #6
нормальные или ненормальные - это ещё вопрос, на который ты сможешь ответить лишь проверив по введенным данным на сколько характеристики этого распределения отвечают нормальному..
при условии ввода с клавиатуры разных чисел можно считать для дискретной случайной величины мат ожидание как среднее арифметическое - как раз как ты и сделал...

Добавлено через 5 минут
или, если ты точно знаешь, что у тебя нормальный закон распределения, то можно как среднее арифметическое считать... но ты-то изначально не знаешь...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.12.2013, 15:49     Найти Мат.ожидание M= (1/N) S X(i), дисперсию, сред. кв. отклонение
Еще ссылки по теме:

C++ Мат. задача: найти ошибку в коде
Найти максимальное отклонение от среднего арифметического массива C++
C++ В массиве найти отклонение медианы от среднего арифметического

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
30.12.2013, 15:49     Найти Мат.ожидание M= (1/N) S X(i), дисперсию, сред. кв. отклонение #7
Цитата Сообщение от Broke777 Посмотреть сообщение
Агрессию свою можешь себе оставить. Массив вводится с клавиатуры, если ты не заметил. Значения нормальные получаются
Нормальные? Нормальные?!
А какой критерий нормальности? Дай угадаю:
-скомпилировалось, слинковалось
-не вылетело при запуске
-Выдаёт "типа" адекватный результат - неотрицательные, не слишком большие, не слишком малые десятичные дроби с подписью "Дисперсия"
- Слепой препод глянул одним глазом, попыхтел и поставил зачёт?
Это достаточно для нормальности, по-твоему?! LOL!
А ты проверял действительно ли это оценка дисперсии? Или просто похожее число?
Цитата Сообщение от Broke777 Посмотреть сообщение
D=D+(X[i]-M)*(X[i]-M);}
Подсказка. Что такое M в этой формуле?
Yandex
Объявления
30.12.2013, 15:49     Найти Мат.ожидание M= (1/N) S X(i), дисперсию, сред. кв. отклонение
Ответ Создать тему
Опции темы

Текущее время: 18:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru