实验要求
**1、**选择充分小的 ess,反复进行上述实验,记录结果的变化并分析它们。如果扰动项的系数 ε 很小,我们自然感觉(1.1)和(1.2)的解应当相差很小。计算中你有什么出乎意料的发现?表明有些解关于如此的扰动敏感性如何?
令ess分别等于0.000000001(1e-8)、0.000000000001(1e-11)和0.000000000000001(1e-14),计算式(1.2)中的解,并使用MATLAB在坐标轴中将各点分别使用绿色、红色和蓝色连接起来。图示如下:

从图中可以看到,随着ess值变小,(1.2)的解的变化幅度也越来越小。
当ess=0.000000000000001(1e-14)时,如图中蓝线所示,此时扰动项的系数ε 很小,式(1.0)和(1.2)的解相差很小。
当解x<=6时,此时无论扰动项的系数ε 怎样变化,式(1.2)的解值不变与(1.1)相同,所有线段均呈直线。说明这些解的扰动敏感性较低。
代码如下:

ess = 0.000000001;
ve = zeros(1,21);
ve(2) = ess;
a=poly(1:20)+ve;
b=roots(poly(1:20)+ve);
ess = 0.000000000001;
ve = zeros(1,21);
ve(2) = ess;
c=poly(1:20)+ve;
d=roots(poly(1:20)+ve);
ess = 0.000000000000001;
ve = zeros(1,21);
ve(2) = ess;
e=poly(1:20)+ve;
f=roots(poly(1:20)+ve);
n=1:20;
plot(n,b,'g',n,d,'r',n,f,'b');
xlabel('n','FontSize',18);ylabel('x','FontSize',18);title('式(1.2)的解','FontSize',16);

2、将方程(1.2)中的扰动项改成εx^18或其它形式,实验中又有怎样的现象出现?
改变方程的扰动项为εx^18后,令ess分别等于0.000000001、0.000000000001和0.000000000000001,得到的图形如下:

从图中可以看出,相较于扰动项为εx^19,此时解的变化幅度小了很多。
改变方程的扰动项为εx^20后,图像如下:

思考题一:(上述实验的改进)
在上述实验中我们会发现用 roots 函数求解多项式方程的精度不高,为此你可以考虑用符号函数 solve 来提高解的精确度,这需要用到将多项式转换为符号多项式的函数 poly2sym,函数的具体使用方法可参考 MATLAB 的帮助。
使用solve提高精度的代码如下:

ess = 0.000000001;
ve = zeros(1,21);
ve(2) = ess;
g=poly(1:20);          %不添加扰动
h=roots(poly(1:20));
n=1:20;
c=poly(1:20)+ve;          %得到多项式方程的系数保存于c中
eqn=poly2sym(c);           %使用poly2sym把方程表示出来保存于eqn中
s=solve(eqn);              %求出方程eqn的解
s=vpa(s);                  %将解去root(解的数量较多时,出现root问题)
s=flipud(s);               %把解从大到小排列
plot(n,s,'r',n,h,'g');  %绘图

得到的图形如下:

绿色为不加扰动项图形,红色为使用solve添加扰动项的图形。
将使用roots和solve计算的解结果图绘于同一图形中,如下:

绿色为使用roots添加扰动项图形,红色为使用solve添加扰动项的图形。
结果显示区别并不明显。

思考题二:(二进制产生的误差)
计算公式的代码如下:
t=0;
for n=1:1000
t=t+0.1;
end
l=t-100; %l为计算的结果
得到的结果l为-1.4069e-12,与理论值0不同。

思考题三:(一个简单公式中产生巨大舍入误差的例子)
由于n很大时,数据量较大,所以采取分段的思想。
首先在n=1~1e50之间取10整数倍幂,即:1、10、100……1e49、1e50,并将对应的误差:f(n)-exp(1)的值存入数组Sn,得到如下图所示图形:

从图中可以看出,误差最大值大约在n=1e15附近。
代码如下:

Sn= zeros(0,3000);
t = 0:50;
m=1;
n=1;
for h =0:50Sn(m) = (1+1/n)^n-exp(1);m=m+1;n=n*10;
endfigure;
plot(t(1:50),Sn(1:50));
xlabel('t/10的幂次数','FontSize',18);ylabel('Sn/误差,'FontSize',18);title('tu','FontSize',16);

为准确计算出n的值,接下来把区间(1e14, 1e16)等分成100000份,一份为1e11,计算误差f(n)-exp(1)的值存入数组Sn。结果如下:

结果显示,误差在区间份数的第89070份时有最大值,即此时n=9.901e15,误差最大为4.671。
代码如下:

Sn= zeros(1,300000);
t = 1:100000;
m=1;
for n =1e14:1e11:1e16Sn(m) = (1+1/n)^n-exp(1);m=m+1;
end
figure;
plot(t,Sn(1:100000));
xlabel('t/(1e14,1e16)的等分份数','FontSize',18);ylabel('Sn/误差','FontSize',18);title('tu','FontSize',16);

舍入误差是计算机进行实数计算时所产生的。之所以产生舍入误差是因为机器中进行的算术运算所涉及的数是有限位的,从而导致计算只能用实际数值的近似表示式来完成。在典型的计算机中,仅实数系统的一个相对小的子集用来表示所有的实数。这个子集包含了正负有理数,且存储了小数和指数部分。

数值计算方法”上机实验指导书——实验一 误差分析相关推荐

  1. 数据库原理与应用实验指导书 实验四:数据查询

    数据库原理与应用 实验指导书 实验四:数据查询 一.实验目的 掌握SELECT语句的基本语法: 熟练掌握模糊查询的用法: 熟练掌握连接查询的用法: 熟练掌握子查询的用法. 二.实验内容 表数据的查询 ...

  2. 数据库原理与应用实验指导书 实验一:熟悉SQL Server 2012数据库管理系统

    数据库原理与应用实验指导书 实验一:熟悉SQL Server 2012数据库管理系统 实验类型: 综合性 实验要求: 必修 适用对象: 信息管理与信息系统.计算机科学与技术.软件工程.物联网工程 一. ...

  3. java实验指导书(实验四)答案_java程序设计实验指导书答案

    ? 狗生活在陆地上(是一种陆生动物),既是哺乳类的也是肉食性的.狗通常的时候和人 打招呼会通过"摇摇尾巴",在被抚摸感到舒服的时候,会"旺旺叫",而在受到惊吓情 ...

  4. 2018年春季《大学计算机基础》(理科)实验指导书 实验3 问题的描述—数据结构(1)

    1. 实验目的 (1)了解如何用简单的数据结构描述问题 (2)掌握用Python 语言内置的几种基本数据结构(列表.元组.字典)解决问题的方法. 2. 实验任务 实验任务3-1  GPA计算 题目描述 ...

  5. 计算机网络实验指导书实验报告,计算机网络实验一 熟悉常用的网络命令实验报告模板...

    实验一熟悉常用的网络命令实验报告 序号:姓名:学号:成绩指导教师: 1.实验目的: 学会使用常用ping ,ipconfig, nslookup, arp ,tracert等常用网络测试命令检测网络连 ...

  6. 数据库实验指导书+实验报告(2015)

    预备实验(选做) 实验名称:SQL Server 2005的安装与系统设置 实验目的和要求:掌握SQL Server 2005的安装和配置方法,熟悉SQL Server的系统环境,主要是对" ...

  7. shell的建立与执行实验报告_实验指导书--实验02 Linux Shell用户接口

    实验二:Linux Shell用户接口 实验学时:2 实验类型:验证 实验要求:必修 一.实验目的 通过本实验的学习,使学生掌握Linux Shell的使用方法. 二.实验内容 实验内容:实践Linu ...

  8. matlab 控制实验指导,智能控制系统-实验指导书-实验一-BP算法的MATLAB实现

    实验一.BP算法的MATLAB实现 一.实验目的 1.了解MATLAB集成开发环境 2.了解MATLAB编程基本方法 3.加深对BP算法的理解和掌握 二.实验内容 1.MATLAB基本指令和语法. 2 ...

  9. 讨论生活中什么样东西可以何种变量描述找出生活中顺序执行事情用c语言,《C语言程序设计》实验指导书...

    <C语言程序设计>实验指导书 (25页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.90 积分 <C语言程序设计>实验指导书实 ...

  10. c语言指数常熟的正确表达形式,C语言程序设计实验实验指导书及答案

    5 <C语言程序设计>实验指导书 常熟理工学院 电气与自动化工程学院 分析结果是否正确? (3)对上面程序进行修改,当输入一个非法的边长(负数或零),会给出提示而不计算矩形的面积. 输入- ...

最新文章

  1. java打开db文件_java 读取DB.properties文件方式 | 学步园
  2. dart系列之:如丝滑般柔顺,操作文件和目录
  3. 揭秘阿里云 RTS SDK 是如何实现直播降低延迟和卡顿
  4. 机器学习中的度量——字符串距离
  5. Django中使用缓存
  6. java string 栈_Java堆和栈的区别(String类)
  7. [转] Figuring out why my SVCHOST.EXE is at 100% CPU without complicated tools in Windows 7
  8. Android APK系列3-------使用platform密钥来给apk文件签名
  9. rest_framework之解析器、路由控制、分页
  10. 李开复:无人驾驶必须一步到位,没有所谓的人机协同
  11. qq发压缩文件服务器拒绝,QQ不能接收和发送RAR压缩文件是怎么回事?急求解决方法!...
  12. Docker 网易镜像仓库使用
  13. 数学建模——人口预测模型
  14. 华为OSPF多区域配置实例
  15. 寻找春天nbsp;九宫格日记-2014.07.14
  16. Oracle ORA-01033: 错误解决办法
  17. ISP Pipeline
  18. 通过图分析分散股票投资组合并降低风险增加收益
  19. 随缘刷题算法学习笔记
  20. edvac是商用计算机吗,EDVAC(eniac与edvac的区别)

热门文章

  1. JeDate日期控件,未选择日,出现undefined错误
  2. 宏杉科技:存储创新之路需要决心与耐心
  3. 博弈论笔记:重复博弈
  4. html5小游戏抓包,wireshark抓包分析
  5. 关于UnityHub更换位置后找不到编辑器以及登录界面白屏的问题
  6. LSTM神经网络图解
  7. 使用MATLAB的trainNetwork设计一个简单的LSTM神经网络
  8. 京东发布《未来科技趋势白皮书》,101页详解5大关键技术(附PDF下载)
  9. 联想服务器远程管理模块,联想慧眼远程管理模块-Lenovo服务网站.PDF
  10. C# 线程安全的单例模式