灵敏度分析实验报告

灵敏度分析实验报告
灵敏度分析实验报告

实验报告

课程名称:运筹学

实验项目名称:应用Excel对线性规划进行灵敏度分析班级与班级代码:

实验室名称(或课室):809

专业:信息管理与信息系统

任课教师:

学号:

姓名:

实验日期:2010 年10 月18 日

广东商学院教务处制

姓名实验报告成绩

评语:

指导教师(签名)

年月日说明:指导教师评分后,实验报告交院(系)办公室保存。

实验二应用Excel对线性规划的灵敏度分析

一、实验目的与要求

1.了解线性规划模型中各参数的变化对最优解的影响。

2.会用Excel中提供的敏感性报告对目标函数系数进行灵敏度分析。

3.会用Excel中提供的敏感性报告对约束条件右端值的灵敏度分析。

二、实验步骤与方法

1.可以在电子表格中采取试验的方法,不断增加或减少的

c值,直到最优

j 解发生改变,以找到最优解发生变化时对应的

c值.但是,这样计算太

j

麻烦了。

2.在Excel求得最优解之后,在其右边列出了它可以提供的三个报告。

选择第二项敏感性报告的选项,就可以得到灵敏度的分析报告,它显示在模型的工作表之前。

3.当几个价值系数同时变动时,注意使用百分之百法则。

4.对约束条件限定数的灵敏度分析同上:选择第二项“敏感性报告”的

选项,就可以得到灵敏度的分析报告,其中“约束”表即是。

5.若几个约束限定数同时变动,也要注意使用百分之百法则。

三、实验内容

第1题.

医院放射科目前可以开展X线平片检查和CT检查业务,现拟购买磁共振仪,以增A

设磁共振检查业务。为此A医院收集了有关信息,从医院获取最大利润角度出发,问是否应购买磁共振仪?经过资料收集,A医院估计今后放射科如果开展此3项业务,在现有放射科医务人员力量和病人需求的情况下,每月此3项业务的最多提供量为1800人次。平均每人次检查时间、每月机器实际可使用时间、平均每人次检查利润如下表

放射科业务

项目X线平片检查CT检查磁共振检查平均每人次检查时间(小时/次)0.1 0.25 0.5

每月机器实际可使用时间(小时)300 120 120

平均每人次检查利润(元/次)20 60 10

1、建立模型

设123,,x x x 分别表示进行X 线平片检查,CT 检查,磁共振检查的人次,z 表示总利润,建立模型为:

123

123123123max 2060100.1 300 0.25 120.. 0.5120 1800

,,0

z x x x x x s t x x x x x x x =++≤??

≤??

≤??++≤??≥?

(1)Excel 规划求解过程

得到规划求解结果及敏感性报告表如下: 规划求解结果

敏感性报告表

(2)灵敏度分析

1)、目标函数系数变动分析

①单个目标函数系数变动情况:

由以上得到的灵敏度报告表中可以看到:

c1 的现值: 20

c1 允许的增量:40

c1 允许的减量:10

c1 的允许变化范围:10≤c1≤60

所以在目标函数系数c2、c3不变时,c1在10≤c1≤60范围内变化,问题最优解不变;同理,目标函数系数c1、c3不变时,c2在20≤c2范围内变化,问题的最优解不变;由灵敏度报告表可看出,核共振项目的终值为0,即不增设这个项目的检查,系数c3在c3≤20 的范围内变化都不影响最优解。

②全部目标函数系数同时变动情况:

如果X 线平片检查项目的单位利润由原来的20增加到30 ,CT 检查项目的单位利润由原来的60减少到50,核共振项目的单位利润由10变动到15,采用百分之百法则求解判断最优解变化情况如下:

1c 、2c 、

3c 三个目标函数系数同时变化时变动百分数的相加之和等于100%,所以最优解不发生改变。

如果X 线平片检查项目的单位利润由原来的20增加到50,CT 检查项目的单位利润由原来的60减少到30,核共振项目的单位利润由10变动到18,采用百分之百法则求解判断最优解变化情况如下:

1c 、2c 、

3c 三个目标函数系数同时变化时变动百分数的相加之和等于230%,超过100%所以最优解发生改变,通过改变原来规划求解模型中目标函数的系数进行新的规划求解得到新的最优解,求解结果如下:

30

20:1→c %25%100402030?????

??-=占允许增加量的百分比50

60:2→c %25%100405060????? ??-=占允许减少量的百分比%,

100=百分比总和15

10:3→c %50%100101015????? ??-=占允许增加量的百分比50

20:1→c %

75%100402050?????

??-=占允许增加量的百分比30

60:2→c %75%100403060????

?

??-=占允许减少量的百分比%,

230=百分比总和1810:3→c %80%100101018????? ??-=占允许增加量的百分比

敏感度报告表:

2)、约束右端值变动分析

①单个约束右端值变动

b1 的现值:300

b1 允许的增量:1E+30

b1 允许的减量:168

b1 的允许变化范围:132≤b1

b1的影子价格为零,因为在规划求解结果中,X线平片检查的实际使用量小于最大使用量,也就是在b1可变范围内,每增加1个参加检查的人其总利润不变。

b2 的现值:120

b2 允许的增量:330

b2 允许的减量:120

b2 的允许变化范围:0≤b2≤450

第二个约束条件b2的影子价格为160,说明在允许的范围[0,450]内,增加(或减少)

一个参加检查的人,其总利润不变。

b3 的现值: 120 b3 允许的增量:1E+30 b3 允许的减量:120 b3 的允许变化范围:0≤b3 同理b3的影子价格也为了0。 ②多个约束条件右端值同时变动

b1 =300 b2=120 b3=120 b4 =1800 当四个右边值的变化情况如下时

b1 =200 b2=150 b3=100 b4 =1500 运用百分之百法则计算其

b4的变动比例为无穷小

所以b1、b2、b3、b4的变动百分比之和为59.23%<100%,所以四个右边值这样的变动情况下,其影子价格没有发生改变 第二题:习题二 2.12

1 建立模型用Excel 规划求解

(1)Excel 规划求解得到规划求解结果及敏感性报告表如下: 规划求解结果:

灵敏度报告表:

200

300:b 1→%59%100168200300=????

??-=占允许减少量的百分比%0.06%100450120150=???? ??-=占允许减少量的百分比150120:2b →100120:b3 →%17.0%100120100120=???

?

??-=

占允许减少量的百分比

(a)获利最大的产品生产计划为

由得到的线性规划求解结果可以看出,获利最大的生产计划为:只生产A、C两种产品,非别生产5个单位和3个单位。

(b)产品A的利润在什么范围内变动时,上述的最优计划不变

由得出的灵敏度报告表可以看出,

A的现值为:3

A的允许增量为:1.8

A的允许减量为:0.6

A的变化范围为2.4≤A≤4.8

所以产品A的利润在2.4≤A≤4.8变动时,上述的最优计划不变。

(c)如果设计一种新产品D,单件劳动消耗为8单位,材料消耗为2单位,每件可获利3元,问该种产品是否值得生产?

在原来的基础上增加一种新产品得到的新的规划模型如下:

规划求解结果为:

由上面得出的规划求解结果及灵敏度报告表与增加前的结果对比可以看出,增加新产品D之后,产品A、B不生产,增加生产C产品两个单位,生产D产品2.5个单位,成本总额还是原来的75,但总利润变为27.5,比原来的27大,所以产品D是值得生产的。

(d)如果劳动数量不增,材料不足时可以从市场购买,每单位是0.4元,问该厂要不要购进原材料扩大生产,以购多少为宜。

由以上得出的灵敏度报告表可以看出,关于材料的约束条件右端值b2的变化范围为22.5≤b2≤45

b的现值为30,在b的可变范围内,在不增加劳动力人数的情况下,增加材料的购买量到31,生产规划结果变为如下

增加材料的购买量到35变化情况如下:

增加购买量到45利润的变动情况如下:

由右边值b2在可变范围内的增加量对总利润的影响情况可以看出,在不增加劳动力的情况下,增加材料的购买量扩大生产能够使总利润增加,适宜的购买量为15。

实验一词法分析实验报告

实验一词法分析 一、实验目的 通过设计编制调试一个具体的词法分析程序,加深对词法分析原理的理解。并掌握在对程序设计语言源程序进行扫描过程中将其分解为各类单词的词法分析方法。 编制一个读单词过程,从输入的源程序中,识别出各个具有独立意义的单词,即基本保留字、标识符、常数、运算符、分隔符五大类。并依次输出各个单词的内部编码及单词符号自身值。(遇到错误时可显示“Error”,然后跳过错误部分继续显示) 二、实验要求 使用一符一种的分法 关键字、运算符和分界符可以每一个均为一种 标识符和常数仍然一类一种 三、实验内容 功能描述: 1、待分析的简单语言的词法 (1)关键字: begin if then while do end (2)运算符和界符: := + –* / < <= <> > >= = ; ( ) # (3)其他单词是标识符(ID)和整型常数(NUM),通过以下正规式定义: ID=letter(letter| digit)* NUM=digit digit * (4)空格由空白、制表符和换行符组成。空格一般用来分隔ID、NUM,运算符、界符和关键字,词法分析阶段通常被忽略。 2、各种单词符号对应的种别码 图 1

程序结构描述: 图 2 四、实验结果 输入begin x:=9: if x>9 then x:=2*x+1/3; end # 后经词法分析输出如下序列:(begin 1)(x 10)(:17)(= 18)(9 11)(;26)(if 2)……如图3所示:

图3 输入private x:=9;if x>0 then x:=2*x+1/3; end#后经词法分析输出如下序列:(private 10)(x 10)(:17)(= 18)(9 11)(;26)(if 2)……如图4所示: 图4 显然,private是关键字,却被识别成了标示符,这是因为图1中没有定义private关键字的种别码,所以把private当成了标示符。 输入private x:=9;if x>0 then x:=2*x+1/3; @ end#后经词法分析输出如下序列:(private 10)(x 10)(:17)(= 18)(9 11)(;26)(if 2)……如图5所示

有限元分析实验报告

武汉理工大学 学生实验报告书 实验课程名称机械中的有限单元分析 开课学院机电工程学院 指导老师姓名 学生姓名 学生专业班级机电研 1502班 2015—2016 学年第2学期

实验一方形截面悬臂梁的弯曲的应力与变形分析 钢制方形悬臂梁左端固联在墙壁,另一端悬空。工作时对梁右端施加垂直向下的30KN的载荷与60kN的载荷,分析两种集中力作用下该悬臂梁的应力与应变,其中梁的尺寸为10mmX10mmX100mm的方形梁。 1.1方形截面悬臂梁模型建立 建模环境:DesignModeler 15.0。 定义计算类型:选择为结构分析。 定义材料属性:弹性模量为2.1Gpa,泊松比为0.3。 建立悬臂式连接环模型。 (1)绘制方形截面草图:在DesignModeler中定义XY平面为视图平面,并正视改平面,点击sketching下的矩形图标,在视图中绘制10mmX10mm的矩形。(2)拉伸:沿着Z方向将上一步得到的矩阵拉伸100mm,即可得到梁的三维模型,建模完毕,模型如下图1.1所示。 图1.1 方形截面梁模型 1.2 定义单元类型: 选用6面体20节点186号结构单元。 网格划分:通过选定边界和整体结构,在边界单元划分数量不变的情况下,通过分别改变节点数和载荷大小,对同一结构进行分析,划分网格如下图1.2所示:

图1.2 网格划分 1.21 定义边界条件并求解 本次实验中,讲梁的左端固定,将载荷施加在右端,施以垂直向下的集中力,集中力的大小为30kN观察变形情况,再将力改为50kN,观察变形情况,给出应力应变云图,并分析。 (1)给左端施加固定约束; (2)给悬臂梁右端施加垂直向下的集中力; 1.22定义边界条件如图1.3所示: 图1.3 定义边界条件 1.23 应力分布如下图1.4所示: 定义完边界条件之后进行求解。

实验一词法分析实验报告

实验一词法分析实验报告

实验一词法分析 一、实验目的 通过设计编制调试一个具体的词法分析程序,加深对词法分析原理的理解。并掌握在对程序设计语言源程序进行扫描过程中将其分解为各类单词的词法分析方法。 编制一个读单词过程,从输入的源程序中,识别出各个具有独立意义的单词,即基本保留字、标识符、常数、运算符、分隔符五大类。并依次输出各个单词的内部编码及单词符号自身值。(遇到错误时可显示“Error”,然后跳过错误部分继续显示) 二、实验要求 使用一符一种的分法 关键字、运算符和分界符可以每一个均为一种标识符和常数仍然一类一种 三、实验内容 功能描述: 1、待分析的简单语言的词法 (1)关键字:

begin if then while do end (2)运算符和界符: := + –* / < <= <> > > = = ; ( ) # (3)其他单词是标识符(ID)和整型常数(NUM),通过以下正规式定义: ID=letter(letter| digit)* NUM=digit digit * (4)空格由空白、制表符和换行符组成。空格一般用来分隔ID、NUM,运算符、界符和关键字,词法分析阶段通常被忽略。 2、各种单词符号对应的种别码 图 1

程序结构描述: 是 否 是 调用scanner() 字母 数 其他 运算符、 符号 界符等符号 否 是 图 2 四、实验结果 输入begin x:=9: if x>9 then x:=2*x+1/3; end # 后经词法分析输出如 变量忽略 是否输入返 拼数 syn=11返 对不同报拼字是否关syn 为对syn=10

数据分析实验报告

数据分析实验报告 文稿归稿存档编号:[KKUY-KKIO69-OTM243-OLUI129-G00I-FDQS58-

第一次试验报告 习题1.3 1建立数据集,定义变量并输入数据并保存。 2数据的描述,包括求均值、方差、中位数等统计量。 分析—描述统计—频率,选择如下: 输出: 统计量 全国居民 农村居民 城镇居民 N 有效 22 22 22 缺失 均值 1116.82 747.86 2336.41 中值 727.50 530.50 1499.50 方差 1031026.918 399673.838 4536136.444 百分位数 25 304.25 239.75 596.25 50 727.50 530.50 1499.50 75 1893.50 1197.00 4136.75 3画直方图,茎叶图,QQ 图。(全国居民) 分析—描述统计—探索,选择如下: 输出: 全国居民 Stem-and-Leaf Plot Frequency Stem & Leaf 5.00 0 . 56788 数据分析实验报告 【最新资料,WORD 文档,可编辑修改】

2.00 1 . 03 1.00 1 . 7 1.00 2 . 3 3.00 2 . 689 1.00 3 . 1 Stem width: 1000 Each leaf: 1 case(s) 分析—描述统计—QQ图,选择如下: 输出: 习题1.1 4数据正态性的检验:K—S检验,W检验数据: 取显着性水平为0.05 分析—描述统计—探索,选择如下:(1)K—S检验

结果:p=0.735 大于0.05 接受原假设,即数据来自正太总体。 (2 )W 检验 结果:在Shapiro-Wilk 检验结果972.00 w ,p=0.174大于0.05 接受原假设,即数据来自正太总体。 习题1.5 5 多维正态数据的统计量 数据:

数值分析实验报告1

实验一误差分析 实验1.1(病态问题) 实验目的:算法有“优”与“劣”之分,问题也有“好”与“坏”之别。对数值方法的研究而言,所谓坏问题就是问题本身对扰动敏感者,反之属于好问题。通过本实验可获得一个初步体会。 数值分析的大部分研究课题中,如线性代数方程组、矩阵特征值问题、非线性方程及方程组等都存在病态的问题。病态问题要通过研究和构造特殊的算法来解决,当然一般要付出一些代价(如耗用更多的机器时间、占用更多的存储空间等)。 问题提出:考虑一个高次的代数多项式 显然该多项式的全部根为1,2,…,20共计20个,且每个根都是单重的。现考虑该多项式的一个扰动 其中ε(1.1)和(1.221,,,a a 的输出b ”和“poly ε。 (1(2 (3)写成展 关于α solve 来提高解的精确度,这需要用到将多项式转换为符号多项式的函数poly2sym,函数的具体使用方法可参考Matlab 的帮助。 实验过程: 程序: a=poly(1:20); rr=roots(a); forn=2:21 n form=1:9 ess=10^(-6-m);

ve=zeros(1,21); ve(n)=ess; r=roots(a+ve); -6-m s=max(abs(r-rr)) end end 利用符号函数:(思考题一)a=poly(1:20); y=poly2sym(a); rr=solve(y) n

很容易的得出对一个多次的代数多项式的其中某一项进行很小的扰动,对其多项式的根会有一定的扰动的,所以对于这类病态问题可以借助于MATLAB来进行问题的分析。 学号:06450210 姓名:万轩 实验二插值法

TEST语言 -语法分析,词法分析实验报告

编译原理实验报告 实验名称:分析调试语义分析程序 TEST抽象机模拟器完整程序 保证能用!!!!! 一、实验目的 通过分析调试TEST语言的语义分析和中间代码生成程序,加深对语法制导翻译思想的理解,掌握将语法分析所识别的语法范畴变换为中间代码的语义翻译方法。 二、实验设计 程序流程图

extern int TESTScan(FILE *fin,FILE *fout); FILE *fin,*fout; //用于指定输入输出文件的指针 int main() { char szFinName[300]; char szFoutName[300]; printf("请输入源程序文件名(包括路径):"); scanf("%s",szFinName); printf("请输入词法分析输出文件名(包括路径):"); scanf("%s",szFoutName); if( (fin = fopen(szFinName,"r")) == NULL) { printf("\n打开词法分析输入文件出错!\n"); return 0; } if( (fout = fopen(szFoutName,"w")) == NULL) { printf("\n创建词法分析输出文件出错!\n"); return 0; } int es = TESTScan(fin,fout); fclose(fin); fclose(fout); if(es > 0) printf("词法分析有错,编译停止!共有%d个错误!\n",es); else if(es == 0) { printf("词法分析成功!\n"); int es = 0;

数值分析实验报告

数值分析实验报告 姓名:周茹 学号: 912113850115 专业:数学与应用数学 指导老师:李建良

线性方程组的数值实验 一、课题名字:求解双对角线性方程组 二、问题描述 考虑一种特殊的对角线元素不为零的双对角线性方程组(以n=7为例) ?????????? ?????? ? ???? ?d a d a d a d a d a d a d 766 55 44 3 32 211??????????????????????x x x x x x x 7654321=?????????? ? ???????????b b b b b b b 7654321 写出一般的n (奇数)阶方程组程序(不要用消元法,因为不用它可以十分方便的解出这个方程组) 。 三、摘要 本文提出解三对角矩阵的一种十分简便的方法——追赶法,该算法适用于任意三对角方程组的求解。 四、引言 对于一般给定的d Ax =,我们可以用高斯消去法求解。但是高斯消去法过程复杂繁琐。对于特殊的三对角矩阵,如果A 是不可约的弱对角占优矩阵,可以将A 分解为UL ,再运用追赶法求解。

五、计算公式(数学模型) 对于形如????? ?? ????? ??? ?---b a c b a c b a c b n n n n n 111 2 2 2 11... ... ...的三对角矩阵UL A =,容易验证U 、L 具有如下形式: ??????? ????? ??? ?=u a u a u a u n n U ...... 3 3 22 1 , ?? ????? ? ?? ??????=1 (1) 1132 1l l l L 比较UL A =两边元素,可以得到 ? ?? ??-== = l a b u u c l b u i i i i i i 111 i=2, 3, ... ,n 考虑三对角线系数矩阵的线性方程组 f Ax = 这里()T n x x x x ... 2 1 = ,()T n f f f f ... 2 1 = 令y Lx =,则有 f Uy = 于是有 ()?????-== --u y a f y u f y i i i i i 1 1 11 1 * i=2, 3, ... ,n 再根据y Lx =可得到

机械零件有限元分析——实验报告

中南林业科技大学机械零件有限元分析 实验报告 专业:机械设计制造及其自动化 年级: 2013级 班级:机械一班 姓名:杨政 学号:20131461 I

一、实验目的 通过实验了解和掌握机械零件有限元分析的基本步骤;掌握在ANSYS 系统环境下,有限元模型的几何建模、单元属性的设置、有限元网格的划分、约束与载荷的施加、问题的求解、后处理及各种察看分析结果的方法。体会有限元分析方法的强大功能及其在机械设计领域中的作用。 二、实验内容 实验内容分为两个部分:一个是受内压作用的球体的有限元建模与分析,可从中学习如何处理轴对称问题的有限元求解;第二个是轴承座的实体建模、网格划分、加载、求解及后处理的综合练习,可以较全面地锻炼利用有限元分析软件对机械零件进行分析的能力。

实验一、受内压作用的球体的有限元建模与分析 对一承受均匀内压的空心球体进行线性静力学分析,球体承受的内压为 1.0×108Pa ,空 心球体的内径为 0.3m ,外径为 0.5m ,空心球体材料的属性:弹性模量 2.1×1011,泊松比 0.3。 承受内压:1.0×108 Pa 受均匀内压的球体计算分析模型(截面图) 1、进入 ANSYS →change the working directory into yours →input jobname: Sphere 2、选择单元类型 ANSYS Main Menu : Preprocessor →Element Type →Add/Edit/Delete →Add →select Solid Quad 4node 42 →OK (back to Element Types window)→ Options… →select K3: Axisymmetric →OK →Close (the Element Type window) 3、定义材料参数 ANSYS Main Menu : Preprocessor →Material Props →Material Models →Structural →Linear →Elastic →Isotropic →input EX:2.1e11, PRXY:0.3→ OK 4、生成几何模型生成特征点 ANSYS Main Menu: Preprocessor →Modeling →Create →Keypoints →In Active CS →依次输入四个点的坐标:input :1(0.3,0),2(0.5,0),3(0,0.5),4(0,0.3)→OK 生成球体截面 ANSYS 命令菜单栏: Work Plane>Change Active CS to>Global Spherical ANSYS Main Menu: Preprocessor →Modeling →Create →Lines →In ActiveCoord → 依次连接 1,2,3,4 点生成 4 条线→OK Preprocessor →Modeling →Create →Areas →Arbitrary →By Lines →依次拾取四条线→OK ANSYS 命令菜单栏: Work Plane>Change Active CS to>Global Cartesian 5、网格划分 ANSYS Main Menu : Preprocessor →Meshing →Mesh Tool →(Size Controls) lines: Set

数据分析实验报告

《数据分析》实验报告 班级:07信计0班学号:姓名:实验日期2010-3-11 实验地点:实验楼505 实验名称:样本数据的特征分析使用软件名称:MATLAB 实验目的1.熟练掌握利用Matlab软件计算均值、方差、协方差、相关系数、标准差与变异系数、偏度与峰度,中位数、分位数、三均值、四分位极差与极差; 2.熟练掌握jbtest与lillietest关于一元数据的正态性检验; 3.掌握统计作图方法; 4.掌握多元数据的数字特征与相关矩阵的处理方法; 实验内容安徽省1990-2004年万元工业GDP废气排放量、废水排放量、固体废物排放量以及用于污染治理的投入经费比重见表6.1.1,解决以下问题:表6.1.1废气、废水、固体废物排放量及污染治理的投入经费占GDP比重 年份 万元工业GDP 废气排放量 万元工业GDP 固体物排放量 万元工业GDP废 水排放量 环境污染治理投 资占GDP比重 (立方米)(千克)(吨)(%)1990 104254.40 519.48 441.65 0.18 1991 94415.00 476.97 398.19 0.26 1992 89317.41 119.45 332.14 0.23 1993 63012.42 67.93 203.91 0.20 1994 45435.04 7.86 128.20 0.17 1995 46383.42 12.45 113.39 0.22 1996 39874.19 13.24 87.12 0.15 1997 38412.85 37.97 76.98 0.21 1998 35270.79 45.36 59.68 0.11 1999 35200.76 34.93 60.82 0.15 2000 35848.97 1.82 57.35 0.19 2001 40348.43 1.17 53.06 0.11 2002 40392.96 0.16 50.96 0.12 2003 37237.13 0.05 43.94 0.15 2004 34176.27 0.06 36.90 0.13 1.计算各指标的均值、方差、标准差、变异系数以及相关系数矩阵; 2.计算各指标的偏度、峰度、三均值以及极差; 3.做出各指标数据直方图并检验该数据是否服从正态分布?若不服从正态分布,利用boxcox变换以后给出该数据的密度函数; 4.上网查找1990-2004江苏省万元工业GDP废气排放量,安徽省与江苏省是 否服从同样的分布?

数值分析实验报告模板

数值分析实验报告模板 篇一:数值分析实验报告(一)(完整) 数值分析实验报告 1 2 3 4 5 篇二:数值分析实验报告 实验报告一 题目:非线性方程求解 摘要:非线性方程的解析解通常很难给出,因此线性方程的数值解法就尤为重要。本实验采用两种常见的求解方法二分法和Newton法及改进的Newton法。利用二分法求解给定非线性方程的根,在给定的范围内,假设f(x,y)在[a,b]上连续,f(a)xf(b) 直接影响迭代的次数甚至迭代的收敛与发散。即若x0 偏离所求根较远,Newton法可能发散的结论。并且本实验中还利用利用改进的Newton法求解同样的方程,且将结果与Newton法的结果比较分析。 前言:(目的和意义) 掌握二分法与Newton法的基本原理和应用。掌握二分法的原理,验证二分法,在选对有根区间的前提下,必是收

敛,但精度不够。熟悉Matlab语言编程,学习编程要点。体会Newton使用时的优点,和局部收敛性,而在初值选取不当时,会发散。 数学原理: 对于一个非线性方程的数值解法很多。在此介绍两种最常见的方法:二分法和Newton法。 对于二分法,其数学实质就是说对于给定的待求解的方程f(x),其在[a,b]上连续,f(a)f(b) Newton法通常预先要给出一个猜测初值x0,然后根据其迭代公式xk?1?xk?f(xk) f'(xk) 产生逼近解x*的迭代数列{xk},这就是Newton法的思想。当x0接近x*时收敛很快,但是当x0选择不好时,可能会发散,因此初值的选取很重要。另外,若将该迭代公式改进为 xk?1?xk?rf(xk) 'f(xk) 其中r为要求的方程的根的重数,这就是改进的Newton 法,当求解已知重数的方程的根时,在同种条件下其收敛速度要比Newton法快的多。 程序设计: 本实验采用Matlab的M文件编写。其中待求解的方程写成function的方式,如下 function y=f(x);

有限元实验报告模板

有限元实验报告 T1013-5 20100130508 蔡孟迪

ANSYS有限元上机报告(一) 班级:T1013-5 学号:20100130508 姓名:蔡孟迪 上机题目: 图示折板上端固定,右侧受力F=1000N,该力均匀分布在边缘各节点上;板厚t=2mm 材料选用低碳钢,弹性模量E=210Gpa,μ=0.33. 一、有限元分析的目的: 1.利用ANSYS构造实体模型; 2.根据结构的特点及所受载荷的情况,确定所用单元类型;正确剖分网格并施加外界条件;3.绘制结构的应力和变形图,给出最大应力和变形的位置及大小;并确定折板角点A处的应力和位移; 4.研究网格密度对A处角点应力的影响; 5.若在A处可用过渡圆角,研究A处圆角半径对A处角点应力的影响。 二、有限元模型的特点: 1.结构类型 本结构属于平面应力类型 2.单位制选择 本作业选择N(牛),mm(毫米),MPa(兆帕)。 3.建模方法 采用自左向右的实体建模方法。 4.定义单元属性及类型 1)材料属性:弹性模量:EX=2.10E5MPa, 泊松比:PRXY=0.33 2)单元类型:在Preferences选Structural,Preprocessor>ElemmentType>Add/Edit/Delete中定义单元类型为:Quad4 node 182,K3设置为:平面薄板问题(Plane strs w/thk) 3)实常数:薄板的厚度THK=2mm 5.划分网格 在MeshTool下选set,然后设置SIZE Element edge length的值,再用Mesh进行网格划分。6.加载和约束过程:在薄板的最上端施加X、Y方向的固定铰链,在薄板的最右端施加1000N 的均匀布置的载荷。

词法分析器实验报告

词法分析器实验报告 词法分析器设计 一、实验目的: 对C语言的一个子集设计并实现一个简单的词法分析器,掌握利用状 态转换图设计词法分析器的基本方法。利用该词法分析器完成对源程 序字符串的词法分析。输出形式是源程序的单词符号二元式的代码, 并保存到文件中。 二、实验内容: 1. 设计原理 词法分析的任务:从左至右逐个字符地对源程序进行扫描,产生一个个单词符号。 理论基础:有限自动机、正规文法、正规式 词法分析器(Lexical Analyzer) 又称扫描器(Scanner):执行词法分析的程序 2. 词法分析器的功能和输出形式 功能:输入源程序、输出单词符号 程序语言的单词符号一般分为以下五种:关键字、标识符、常数、运算符,界符 3. 输出的单词符号的表示形式: 单词种别用整数编码,关键字一字一种,标识符统归为一种,常数一种,各种符号各一种。 4. 词法分析器的结构 单词符号 5. 状态转换图实现

三、程序设计 1.总体模块设计 /*用来存储目标文件名*/ string file_name; /*提取文本文件中的信息。*/ string GetText(); /*获得一个单词符号,从位置i开始查找。并且有一个引用参数j,用来返回这个单词最后一个字符在str的位置。*/ string GetWord(string str,int i,int& j); /*这个函数用来除去字符串中连续的空格和换行 int DeleteNull(string str,int i); /*判断i当前所指的字符是否为一个分界符,是的话返回真,反之假*/ bool IsBoundary(string str,int i); /*判断i当前所指的字符是否为一个运算符,是的话返回真,反之假*/ bool IsOperation(string str,int i);

(完整版)哈工大-数值分析上机实验报告

实验报告一 题目:非线性方程求解 摘要:非线性方程的解析解通常很难给出,因此线性方程的数值解法就尤为重要。本实验采用两种常见的求解方法二分法和Newton法及改进的Newton法。 前言:(目的和意义) 掌握二分法与Newton法的基本原理和应用。 数学原理: 对于一个非线性方程的数值解法很多。在此介绍两种最常见的方法:二分法和Newton法。 对于二分法,其数学实质就是说对于给定的待求解的方程f(x),其在[a,b]上连续,f(a)f(b)<0,且f(x)在[a,b]内仅有一个实根x*,取区间中点c,若,则c恰为其根,否则根据f(a)f(c)<0是否成立判断根在区间[a,c]和[c,b]中的哪一个,从而得出新区间,仍称为[a,b]。重复运行计算,直至满足精度为止。这就是二分法的计算思想。

Newton法通常预先要给出一个猜测初值x0,然后根据其迭代公式 产生逼近解x*的迭代数列{x k},这就是Newton法的思想。当x0接近x*时收敛很快,但是当x0选择不好时,可能会发散,因此初值的选取很重要。另外,若将该迭代公式改进为 其中r为要求的方程的根的重数,这就是改进的Newton法,当求解已知重数的方程的根时,在同种条件下其收敛速度要比Newton法快的多。 程序设计: 本实验采用Matlab的M文件编写。其中待求解的方程写成function的方式,如下 function y=f(x); y=-x*x-sin(x); 写成如上形式即可,下面给出主程序。 二分法源程序: clear %%%给定求解区间 b=1.5; a=0;

%%%误差 R=1; k=0;%迭代次数初值 while (R>5e-6) ; c=(a+b)/2; if f12(a)*f12(c)>0; a=c; else b=c; end R=b-a;%求出误差 k=k+1; end x=c%给出解 Newton法及改进的Newton法源程序:clear %%%% 输入函数 f=input('请输入需要求解函数>>','s') %%%求解f(x)的导数 df=diff(f);

词法分析的实验报告

《词法分析》实验报告

目录 目录错误!未定义书签。 1 实验目的错误!未定义书签。 2 实验内容错误!未定义书签。 TINY计算机语言描述错误!未定义书签。 实验要求错误!未定义书签。 3 此法分析器的程序实现错误!未定义书签。状态转换图错误!未定义书签。 程序源码错误!未定义书签。 实验运行效果截图错误!未定义书签。 4 实验体会错误!未定义书签。

实验目的 1、学会针对DFA转换图实现相应的高级语言源程序。 2、深刻领会状态转换图的含义,逐步理解有限自动机。 3、掌握手工生成词法分析器的方法,了解词法分析器的内部工作原理。 实验内容 TINY计算机语言描述 TINY计算机语言的编译程序的词法分析部分实现。 从左到右扫描每行该语言源程序的符号,拼成单词,换成统一的内部表示(token)送给语法分析程序。 为了简化程序的编写,有具体的要求如下: 1、数仅仅是整数。 2、空白符仅仅是空格、回车符、制表符。 3、代码是自由格式。 4、注释应放在花括号之内,并且不允许嵌套 TINY语言的单词 要求实现编译器的以下功能 1、按规则拼单词,并转换成二元式形式 2、删除注释行 3、删除空白符(空格、回车符、制表符) 4、列表打印源程序,按照源程序的行打印,在每行的前面加上行号,并且打印出每行包含的记号的二元形式 5、发现并定位错误 词法分析进行具体的要求 1、记号的二元式形式中种类采用枚举方法定义;其中保留字和特殊字符是每个都一个种类,标示符自己是一类,数字是一类;单词的属性就是表示的字符串值。 2、词法分析的具体功能实现是一个函数GetToken(),每次调用都对剩余的字符串分析得到一个单词或记号识别其种类,收集该记号的符号串属性,当识别一个单词完毕,采用返回值的形式返回符号的种类,同时采用程序变量的形式提供当前识别出记号的属性值。这样配合语法分析程序的分析需要的记号及其属性,生成一个语法树。

数据分析实验报告

数据分析实验报告 【最新资料,WORD文档,可编辑修改】 第一次试验报告 习题1.3 1建立数据集,定义变量并输入数据并保存。 2数据的描述,包括求均值、方差、中位数等统计量。 分析—描述统计—频率,选择如下: 输出:

方差1031026.918399673.8384536136.444百分位数25304.25239.75596.25 50727.50530.501499.50 751893.501197.004136.75 3画直方图,茎叶图,QQ图。(全国居民) 分析—描述统计—探索,选择如下: 输出: 全国居民Stem-and-Leaf Plot Frequency Stem & Leaf 9.00 0 . 122223344 5.00 0 . 56788 2.00 1 . 03 1.00 1 . 7 1.00 2 . 3 3.00 2 . 689

1.00 3 . 1 Stem width: 1000 Each leaf: 1 case(s) 分析—描述统计—QQ图,选择如下: 输出: 习题1.1 4数据正态性的检验:K—S检验,W检验数据: 取显着性水平为0.05 分析—描述统计—探索,选择如下:(1)K—S检验 单样本Kolmogorov-Smirnov 检验 身高N60正态参数a,,b均值139.00

标准差7.064 最极端差别绝对值.089 正.045 负-.089 Kolmogorov-Smirnov Z.686 渐近显着性(双侧).735 a. 检验分布为正态分布。 b. 根据数据计算得到。 结果:p=0.735 大于0.05 接受原假设,即数据来自正太总体。(2)W检验

数值分析实验报告

实验一、误差分析 一、实验目的 1.通过上机编程,复习巩固以前所学程序设计语言及上机操作指令; 2.通过上机计算,了解误差、绝对误差、误差界、相对误差界的有关概念; 3.通过上机计算,了解舍入误差所引起的数值不稳定性。 二.实验原理 误差问题是数值分析的基础,又是数值分析中一个困难的课题。在实际计算中,如果选用了不同的算法,由于舍入误差的影响,将会得到截然不同的结果。因此,选取算法时注重分析舍入误差的影响,在实际计算中是十分重要的。同时,由于在数值求解过程中用有限的过程代替无限的过程会产生截断误差,因此算法的好坏会影响到数值结果的精度。 三.实验内容 对20,,2,1,0 =n ,计算定积分 ?+=10 5dx x x y n n . 算法1:利用递推公式 151--=n n y n y , 20,,2,1 =n , 取 ?≈-=+=1 00182322.05ln 6ln 51dx x y . 算法2:利用递推公式 n n y n y 51511-= - 1,,19,20 =n . 注意到 ???=≤+≤=10 10202010201051515611261dx x dx x x dx x , 取 008730.0)12611051(20120≈+≈y .: 四.实验程序及运行结果 程序一: t=log(6)-log(5);

n=1; y(1)=t; for k=2:1:20 y(k)=1/k-5*y(k-1); n=n+1; end y y =0.0884 y =0.0581 y =0.0431 y =0.0346 y =0.0271 y =0.0313 y =-0.0134 y =0.1920 y =-0.8487 y =4.3436 y =-21.6268 y =108.2176 y =-541.0110 y =2.7051e+003 y =-1.3526e+004 y =6.7628e+004 y =-3.3814e+005 y =1.6907e+006 y =-8.4535e+006 y =4.2267e+007 程序2: y=zeros(20,1); n=1; y1=(1/105+1/126)/2;y(20)=y1; for k=20:-1:2 y(k-1)=1/(5*k)-(1/5)*y(k); n=n+1; end 运行结果:y = 0.0884 0.0580 0.0431 0.0343 0.0285 0.0212 0.0188 0.0169

词法分析实验报告

编译原理实验一 姓名:朱彦荣 学号: 专业:软件工程2 实验题目:词法分析 完成语言:C/C++ 上级系统:VC++6.0 日期:2015/11/7 词法分析 设计题目:手工设计c语言的词法分析器 (可以是c语言的子集) 设计内容: 处理c语言源程序,过滤掉无用符号,判断源程序中单词的合法性,并分解出正确的单词,以二元组形式存放在文件中。 设计目的: 了解高级语言单词的分类,了解状态图以及如何表示并识别单词规则,掌握状态图到识别程序的编程。 结果要求:课程设计报告。 完成日期:第十五周提交报告 一.分析 要想手工设计词法分析器,实现C语言子集的识别,就要明白什么是词法

主要是对源程序进行编译预处理(去除注释、无用的回车换行找到包含的文件等)之后,对整个源程序进行分解,分解成一个个单词,这些单词有且只有五类,分别是标识符、保留字、常数、运算符、界符。以便为下面的语法分析和语义分析做准备。可以说词法分析面向的对象是单个的字符,目的是把它们组成有效的单词(字符串);而语法的分析则是利用词法分析的结果作为输入来分析是否符合语法规则并且进行语法制导下的语义分析,最后产生四元组(中间代码),进行优化(可有可无)之后最终生成目标代码。可见词法分析是所有后续工作的基础,如果这一步出错,比如明明是‘<=’却被拆分成‘<’和‘=’就会对下文造成不可挽回的影响。因此,在进行词法分析的时候一定要定义好这五种符号的集合。下面是我构造的一个C语言子集。 第一类:标识符letter(letter | digit)* 无穷集 第二类:常数(digit)+ 无穷集 第三类:保留字(32) auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while 第四类:界符‘/*’、‘//’、() { } [ ] " " ' 等 第五类:运算符<、<=、>、>=、=、+、-、*、/、^、等 对所有可数符号进行编码: <$,0> ... <+,33> <-,34> <*,35> <<,37> <<=,38> <>,39> <>=,40>

数值分析2016上机实验报告

序言 数值分析是计算数学的范畴,有时也称它为计算数学、计算方法、数值方法等,其研究对象是各种数学问题的数值方法的设计、分析及其有关的数学理论和具体实现的一门学科,它是一个数学分支。是科学与工程计算(科学计算)的理论支持。许多科学与工程实际问题(核武器的研制、导弹的发射、气象预报)的解决都离不开科学计算。目前,试验、理论、计算已成为人类进行科学活动的三大方法。 数值分析是计算数学的一个主要部分,计算数学是数学科学的一个分支,它研究用计算机求解各种数学问题的数值计算方法及其理论与软件实现。现在面向数值分析问题的计算机软件有:C,C++,MATLAB,Python,Fortran等。 MATLAB是matrix laboratory的英文缩写,它是由美国Mathwork公司于1967年推出的适合用于不同规格计算机和各种操纵系统的数学软件包,现已发展成为一种功能强大的计算机语言,特别适合用于科学和工程计算。目前,MATLAB应用非常广泛,主要用于算法开发、数据可视化、数值计算和数据分析等,除具备卓越的数值计算能力外,它还提供了专业水平的符号计算,文字处理,可视化建模仿真和实时控制等功能。 本实验报告使用了MATLAB软件。对不动点迭代,函数逼近(lagrange插值,三次样条插值,最小二乘拟合),追赶法求解矩阵的解,4RungeKutta方法求解,欧拉法及改进欧拉法等算法做了简单的计算模拟实践。并比较了各种算法的优劣性,得到了对数值分析这们学科良好的理解,对以后的科研数值分析能力有了极大的提高。

目录 序言 (1) 问题一非线性方程数值解法 (3) 1.1 计算题目 (3) 1.2 迭代法分析 (3) 1.3计算结果分析及结论 (4) 问题二追赶法解三对角矩阵 (5) 2.1 问题 (5) 2.2 问题分析(追赶法) (6) 2.3 计算结果 (7) 问题三函数拟合 (7) 3.1 计算题目 (7) 3.2 题目分析 (7) 3.3 结果比较 (12) 问题四欧拉法解微分方程 (14) 4.1 计算题目 (14) 4.2.1 方程的准确解 (14) 4.2.2 Euler方法求解 (14) 4.2.3改进欧拉方法 (16) 问题五四阶龙格-库塔计算常微分方程初值问题 (17) 5.1 计算题目 (17) 5.2 四阶龙格-库塔方法分析 (18) 5.3 程序流程图 (18) 5.4 标准四阶Runge-Kutta法Matlab实现 (19) 5.5 计算结果及比较 (20) 问题六舍入误差观察 (22) 6.1 计算题目 (22) 6.2 计算结果 (22) 6.3 结论 (23) 7 总结 (24) 附录

有限元实验报告

一、实验目的 通过上机对有限元法的基本原理和方法有一个更加直观、深入的理解;通过对本实验所用软件平台Ansys 的初步涉及,为将来在设计和研究中利用该类大型通用CAD/CAE 软件进行工程分析奠定初步基础。 二、实验设备 机械工程软件工具包Ansys 三、实验内容及要求 1) 简支梁如图3.1.1所示,截面为矩形,高度h=200mm ,长度L=1000mm ,厚 度t=10mm 。上边承受均布载荷,集度q=1N/mm2,材料的E=206GPa ,μ=0.29。平面应力模型。 X 方向正应力的弹性力学理论解如下: 图3.1.1 ①在Ansys 软件中用有限元法探索整个梁上x σ,y σ的分布规律。 ②计算下边中点正应力x σ的最大值;对单元网格逐步加密,把x σ的计算值与理论解对比,考察有限元解的收敛性。 ③针对上述力学模型,对比三节点三角形平面单元和4节点四边形平面等参元的求解精度。 2) 一个正方形板,边长L = 1000mm ,中心有一小孔,半径R = 100mm ,左右边 受均布拉伸载荷,面力集度q = 25MPa ,如图 3.2.1所示。材料是 206E GPa =,0.3μ=,为平面应力模型。当边长L 为无限大时,x = 0截面上理论解为: ) 534()4 (6222 23-+-=h y h y q y x L h q x σ

)32(2|44 220r R r R q x x ++==σ 其中R 为圆孔半径,r 为截面上一点距圆心的距离。x = 0截面上孔边(R r =)应力q x 3=σ。所以理论应力集中系数为3.0。 图3.2.1 用四边形单元分析x = 0截面上应力的分布规律和最大值,计算孔边应力集中系数,并与理论解对比。利用对称性条件,取板的四分之一进行有限元建模。 3) 如图3.3.1所示,一个外径为0.5m ,内径为0.2m ,高度为0.4m 的圆筒,圆 筒的外壁施加100MPa 的压强,圆筒的内部约束全部的自由度,材料参数是密度。 使用平面单元,依照轴对称的原理建模分析。 q

词法分析器实验报告

词法分析器实验报告 一、实验目的及要求 本次实验通过用C语言设计、编制、调试一个词法分析子程序,识别单词,实现一个C语言词法分析器,经过此过程可以加深对编译器解析单词流的过程的了解。 运行环境: 硬件:windows xp 软件:visual c++6.0 二、实验步骤 1.查询资料,了解词法分析器的工作过程与原理。 2.分析题目,整理出基本设计思路。 3.实践编码,将设计思想转换用c语言编码实现,编译运行。 4.测试功能,多次设置包含不同字符,关键字的待解析文件,仔细察看运行结果,检测该分析器的分析结果是否正确。通过最终的测试发现问题,逐渐完善代码中设置的分析对象与关键字表,拓宽分析范围提高分析能力。 三、实验内容 本实验中将c语言单词符号分成了四类:关键字key(特别的将main说明为主函数)、普通标示符、常数和界符。将关键字初始化在一个字符型指针数组*key[]中,将界符分别由程序中的case列出。在词法分析过程中,关键字表和case列出的界符的内容是固定不变的(由程序中的初始化确定),因此,从源文件字符串中识别出现的关键字,界符只能从其中选取。标识符、常数是在分析过程中不断形成的。 对于一个具体源程序而言,在扫描字符串时识别出一个单词,若这个单词的类型是关键字、普通标示符、常数或界符中之一,那么就将此单词以文字说明的形式输出.每次调用词法分析程序,它均能自动继续扫描下去,形成下一个单词,直到整个源程序全部扫描完毕,从而形成相应的单词串。 输出形式例如:void $关键字

流程图、程序流程图:

程序: #include #include #include #include //定义关键字 char *Key[10]={"main","void","int","char","printf","scanf","else","if","return"}; char Word[20],ch; // 存储识别出的单词流 int IsAlpha(char c) { //判断是否为字母 if(((c<='z')&&(c>='a'))||((c<='Z')&&(c>='A'))) return 1; else return 0; } int IsNum(char c){ //判断是否为数字 if(c>='0'&&c<='9') return 1; else return 0; } int IsKey(char *Word){ //识别关键字函数 int m,i; for(i=0;i<9;i++){ if((m=strcmp(Word,Key[i]))==0) { if(i==0) return 2; return 1; } } return 0; } void scanner(FILE *fp){ //扫描函数 char Word[20]={'\0'}; char ch; int i,c; ch=fgetc(fp); //获取字符,指针fp并自动指向下一个字符 if(IsAlpha(ch)){ //判断该字符是否是字母 Word[0]=ch; ch=fgetc(fp);

相关文档
最新文档