- 1、本文档共23页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验1:Erlang B公式计算器 实验报告
实验1:Erlang B公式计算器实验报告学院:信息与通信工程学院班级:姓名: 学号: 一、实验目的Erlang B公式通信网理论基础这门课程的学习重点之一,其表达了电话交换系统的时间阻塞率B(s,a)与到达的呼叫量a以及中继线的数目s之间的关系,为电话网络的规划和中继线容量配置奠定了基础。本次实验要求用计算机语言编写ErlangB公式计算器,实现给定任意两个变量求解第三个变量的功能,使学生掌握ErlangB公式的计算方法,培养数值分析计算与算法设计能力。二、实验原理Erlang即时拒绝系统用于建模电话交换系统,设电话呼叫流的到来服从Poisson过程,λ为呼叫的到达率,呼叫的持续时间服从参数μ的负指数分布。系统有s条中继线,呼叫到来时,如系统中有空闲的中继线,则呼叫可到达任意一个空闲的中继线,如果没有空闲的中继线,就拒绝该呼叫。在这样的情况下,该交换系统的排队系统模型为。利用生灭过程稳态分布的结论,可求解M/M/s(s)系统的时间阻塞率为,该公式给出了a,s,与B之间的关系。本次实验要求编写Erlang B公式的计算器,实现给定任意两个变量求解第三个变量的功能:(1) 给定到达的呼叫量a和中继线的数目s,求解系统的时间阻塞率B;(2) 给定系统的时间阻塞率的要求B和到达的呼叫量a,求解中继线的数目s,以实现网络规划;(3) 给定系统的时间阻塞率要求B以及中继线的数目s,判断该系统能支持的最大的呼叫量a。三、实验内容1. 设计语言及开发工具:(1)计算器:界面生成采用C++语言(MFC),函数采用C语言在vs2013编译(2)作图程序:C语言和MATLAB语言,采用MATLAB开发。2. 计算器主要功能函数以下三个函数共同使用如下三个变量,但它们的使用方式不同,可能作为输出也可能是输入:到达呼叫量(a,非负双精度浮点数);时间阻塞率(b,浮点数,取值范围0~1);中继线数(s,非负整数)。(1) double calculate_b(double a,int s)功能:已知到达的呼叫量a和中继线的数目s,求时间阻塞率eB;算法原理:计算时间阻塞率可以用爱尔兰B公式本身实现,但这种算法不仅麻烦,还可能产生数据溢出。有一个更为简便的迭代算法。这个算法可表示为其中表示阻塞率,表示中继线数,表示到达呼叫量。这个算法表明在到达呼叫量一定时,s条中继线的阻塞率可以用(s-1)条中继线的阻塞率表示。若要求s条中继线的阻塞率,使用这个算法只需s次迭代就可以实现,大大减少了运算次数,而且也不会出现溢出问题。算法流程图:(2)double calculate_a(int s,double b)功能:已知中继线数s、时间阻塞率b,求到达呼叫量a算法原理:首先输入s、b,设a的初值为0,以a此时值与s做calculate_b运算,得到的值与输入值b作差,当差值小于精确值时则此时a值为运算结果,否则a以0.001为间隔递增循环计算,直到满足条件,输出此时a值。算法流程图:(3)int calculate_s(double b double a)函数功能:已知到达呼叫量a、时间阻塞率eb和精确度ec,求中继线数s。算法原理:与求解到达呼叫量a相同,采用穷举法逐次逼近结果首先设s值为1,计算此时s与输入值a对应eb减去输入值eb结果是否小于精度,是则输出s,否则s加1循环运算知道符合精确度。算法流程图:(4)函数具体代码// ErlangBDlg.cpp : 实现文件//#includestdafx.h#includeErlangB.h#includeErlangBDlg.h#includeafxdialogex.hchar A, B, C, D;char lll = A;#ifdef_DEBUG#definenewDEBUG_NEW#endif// 用于应用程序“关于”菜单项的 CAboutDlg 对话框classCAboutDlg : publicCDialogEx{public:CAboutDlg();// 对话框数据enum { IDD = IDD_ABOUTBOX };protected:virtualvoid DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持// 实现protected:DECLARE_MESSAGE_MAP()};CAboutDlg::CAboutDlg() : CDialogEx(CAboutDlg::IDD){}voidCAboutDlg::DoDataExchange(CDataExchange* pDX){CDialogEx::DoDataExchange(pDX);}BEGIN_MESSAGE_MAP(CAboutDlg, CDialogEx)END_MES
文档评论(0)