版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、. 西安交通大学 计算方法上机实验 班级:(xxx)姓名:(xxx) 学号:21116010041.按两种顺序计算y,哪个接近真值?Y = 1000 + + + + 用java 语言编写:public class Add public static void main(String args)double s=0,y=1000;for(double a=1001.0;a=1001.0;a-)s+=1.0/a; s=s+1000;System.out.println(正序和+s);System.out.println(逆序和+y);运行结果:结论:显然假设是double类型的数据时,先算大数的过
2、程吃掉了末尾的小数被进位所埋没,导致了大数吃小数的误差,按从小到大(从右向左)的计算顺序所得的结果与真值相近,而按从大到小(从左到右)的计算顺序所得的结果与真值的误差较大。1-18.设(x) = 1 + x + + + + , 计算(-5)和1/(5),哪个接近 ?解法一: 用JAVA 语言编写:public class second public static void main(String args) double s1=1 ,s2=1; double e=1,sum=1; /e的初值为1,sum用来存放n! int a=1; while(sumMath.pow(10, 1000000)
3、 sum=a*sum; e=1.0/sum+e; a+; double b=1.0/(e*e*e*e*e); System.out.println(较为精确的值1/e5=+b); for(int i=1;i=1;i-)xi=xi*(5.0/i);return xi; public static double cimi2(int ai)double xi=1;for(int i=ai;i=1;i-)xi=xi*(-5.0/i);return xi; 运行结果:解法二:用matlab编程并运行,如下:(1) 计算(-5) 运行结果如下:(2) 计算1/(5)运行结果如下:而的真是结果为0.0067
4、37946 比较得1/(5)的计算结果与真实值更接近解法三:也可以用C+编写:#include stdafx.h#includestdio.h#include iostreamusing namespace std;int main(int argc, char* argv) int func1(int ); double func2(int);double y=0;int i;for(i=1;i25;i+) int z=func1(i);double e=func2(i);y+=z/e;cout-endl; cout1/S(5)的运算结果是: 1.0/(y+1)endl; cout-endl
5、;return 0;int func1(int x) int y=1; int k; for (k=0;kx;k+) y*=5; return y;double func2(int n) double y=1; int j; for (j=1;j=n;j+) y*=j; return y;运行结果如下图:结论:通过比较上述的几种编程结果,可以看出1/S(5),更接近真实值,而且用matlab更为简便,可以直接利用函数库,并可以轻松的嵌入秦九韶算法,大大减少运算量和时间。1. 已知方程组 + + = + + = + + = 的真解 = = = 1,且令a = ,b = ,c = ,d = 时利用
6、克莱姆法则可将真解表示为G = 0.45a - - 0.1125 = (0.2a 0.0625)b + (0.25a 0.1)c + (0.125 - )d/G = -(0.1 0.25a)b + ( - 0.2)c + (0.25 0.5a)d/G = (0.125 - )b + (0.5a 0.25)c +(a 0.25)d/G试将a,b,c,d依次取26位近似有效数,分别计算, 。解:用matlab编程如下: 将a,b,c,d依次取26位近似有效数取2位有效近似有效数取3位有效近似有效数取4位有效近似有效数取5位有效近似有效数取6位有效近似有效数结论:随着所选取的近似有效位越多,计算的结
7、果越接近真解 2. 将选主元和不选主元高斯消去法编程程序。解方程组: + = 7 + + = 15 + 6 + = 15 + 6 + = 15 + 6 + = 156 + = 14并且比较将结果与真实值比较。public class daI /* * param args */public static void main(String args) / TODO Auto-generated method stubdouble a;double x;double L;double c = 0.0, sum = 0.0;a = new double8586;x = new double85;L=
8、new double86;for (int i = 1; i 85; i+) for (int j = 1; j 86; j+) aij = 0;a11 = 6;a12 = 1;a8483 = 8;a8484 = 6;a185 = 7;a8485 = 14;for (int i = 2; i 84; i+) aii = 6;aii + 1 = 1;aii - 1 = 8;ai85 = 15;for (int k = 1; k 84; k+) for (int i = k + 1; i 85; i+) c = aik / akk;for (int j = k + 1; j 0; k-) for
9、(int j = k + 1; j 85; j+) sum = sum + akj * xj;xk = (ak85 - sum) / akk; sum=0.0;for (int i = 1; i 85; i+) System.out.println(x + i + = + xi);运行如下:解:将不选主元法用matlab编程如下:将选主元法用matlab编程如下: 输入系数阵A和常数项b,计算得方程组的结果为 x=1,1,1,1,1,1,1,1,1.。用methematican 语言实现选主元过程及其结果如下:结论:通过选主元与不选主元计算出的结果与真实结果比较,得出:用选主元得到的结果与真实
10、值相近,原因是用选主元的方法可以避免在计算时出现小除数的现象,从而避免了病态问题的出现。所以用选主元法比不选主元法计算出的结果准确。3. 已知函数f(x) = 1/(1+),x1,节点 = -1+0.2i(i = 0 10)。(1) 计算f(x)和拉格朗日插值多项式(x)的值,=-1+0.05k(k=040).(2) 求三次自然插值样条函数S(x)的M表示中(i=0),计算S(x),x=-1+0.05k, k=040.(3) 画出y=f(x),y=(x),y=S(x)的图形。解:(1)用mathematica语言进行编程,方便作图: 计算f(x)和(x):(2) 三次自然插值样条函数S(x),用mathemati
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度环境污染治理与修复合同
- 2024年版建筑项目合同样本
- 永磁同步电机的课程设计
- 企业建筑施工安全生产管理制度汇编
- 花瓶插花课程设计
- 中国石化安全风险评估指导意见
- 部编版八年级《道德与法治》上册同步练习(全册,含答案)
- 系统文件监控课程设计
- 网红饮料制作课程设计
- 股市基金课程设计
- 2024年加油站的年度工作总结范文(2篇)
- 甲醇制氢生产装置计算书
- T-JSREA 32-2024 电化学储能电站消防验收规范
- 2025年上半年江苏省常州市文广旅局下属事业单位招聘4人重点基础提升(共500题)附带答案详解
- 2023-2024学年福建省泉州市石狮市三年级(上)期末数学试卷
- 新时代高校马克思主义学院内涵式发展的现状和现实进路
- (新版)广电全媒体运营师资格认证考试复习题库(含答案)
- 铜工岗位安全操作规程(2篇)
- 擦玻璃安全责任合同协议书范本
- 【MOOC】隧道工程-中南大学 中国大学慕课MOOC答案
- 2024-2025学年人教PEP版英语五年级上册期末试题
评论
0/150
提交评论