标签:
一、该程序是用来测输入数据的平均值和方差的
公式:
二、 项目流程:
1. State the problem
假定所有测量数为正数或者0,计算这一系列测量数的平均值和方差。
假定我们预先不知道有多少测量数据被录入,一个负数标志着测量数据输入结束
2. Define the inputs and outputs
程序要求输入的数是未知的正数或者0,程序输出的数是输入数据集的平均值和方差。
除此之外,我们将打印出输入的数据数,因为它对于我们检查输入数据是有用的
3.Define the algorithm
这个程序将被分为三个主要步骤:
Accumulate the input data
Calculate the mean(平均值)和standard deviation(方差)
Write out the mean, standard deviation , and number of points
第一个主要步骤是累计输入的数据,为了达到目的,我们将要求用户输入想要的数据,当每一个数据录入时,累计数量并求和,求平方和
伪代码:
初始化 n, sum_x, and sum_x2为0
请求用户输入
读取输入数x
while x>=0
n <- n+1
sum_x <- sum_x +x;
sum_x2 <- sum_x +x^2;
读取下一个x
end
注意:我们不得不读第一个数在while之前,以便于while循环第一次执行时有值
第二步,我们计算平均值和方差,利用平均值公式和方差公式写伪代码:
x_bar <- sum_x / n
std_dev <-sqrt( (n*sum_x2 - sum_x2^2) /(n*(n-1)) )
第三步,我们输出结果
输出平均值 x_bar
输出方差值 std_dev
输入输入数据的数量n
4.Turn the algorithm into MATLAB statements
% 脚本文件:states.m % % 目标: % 该程序首先累计输入未知的数(正数或者0),然后计算这个数据集的平均值和方差 % % 版本记录 % 日期 编者 描述 % ===== ========= ================ % 2015-10-4 21:21 泡泡 源码 % % 定义变量: % % m --输入样本数量 % std_dev --输入样本的方差 % sum_x --输入样本的和 % sum_x2 --输入样本的平方和 % x --输入样本值 % xbar --输入样本的平均值 % % % %清除变量或指令 clc; %变量初始化 n=0; sum_x=0;sum_x2=0; %读取第一个输入值 x=input (‘请输入第一个数: ‘); %while循环 while x >=0 %累积 n = n+1; sum_x = sum_x +x; sum_x2 = sum_x2 +x^2; %读取下一个值 x=input (‘请输入下一个数: ‘); end %计算方差和平均值 x_bar =sum_x /n; std_dev =sqrt ( (n*sum_x2 - sum_x^2) /(n*(n-1)) ); %输出 fprintf(‘您输入的数据总数为: %f\n‘, n); fprintf(‘平均值是:%f\n‘, x_bar); fprintf(‘方差是: %f\n‘, std_dev);
5.Test the program
假定输入的数为 3 4 5 -1(结束标志)
那么:
输出平均值 4
输出方差值 1
输入输入数据的数量 3
标签:
原文地址:http://www.cnblogs.com/shuqingstudy/p/4855052.html