期末考试数值计算方法15道程序题详解
计算方法试题集和答案解析[新]
1.*x 为精确值x 的近似值;()**x f y =为一元函数()x f y =1的近似值;()**,*y x f y =为二元函数()y x f y ,2=的近似值,请写出下面的公式:**e x x =-:***r x xe x -=()()()*'1**y f x x εε≈⋅ ()()()()'***1**r r x f x y x f x εε≈⋅()()()()()**,**,*2**f x y f x y y x y x yεεε∂∂≈⋅+⋅∂∂()()()()()****,***,**222r f x y e x f x y e y y x y y y ε∂∂≈⋅+⋅∂∂ 2、 计算方法实际计算时,对数据只能取有限位表示,这时所产生的误差叫 舍入误差 。
3、 分别用2.718281,2.718282作数e 的近似值,则其有效数字分别有6 位和7 1.73≈(三位有效数字)-211.73 10 2≤⨯。
4、 设121.216, 3.654x x ==均具有3位有效数字,则12x x 的相对误差限为 0.0055 。
5、 设121.216, 3.654x x ==均具有3位有效数字,则12x x +的误差限为 0.01 。
6、 已知近似值2.4560A x =是由真值T x 经四舍五入得到,则相对误差限为 0.0000204 .7、 递推公式,⎧⎪⎨⎪⎩0n n-1y =y =10y -1,n =1,2,如果取0 1.41y =≈作计算,则计算到10y 时,误差为8110 2⨯;这个计算公式数值稳定不稳定 不稳定 . 8、 精确值 14159265.3*=π,则近似值141.3*1=π和1415.3*2=π分别有 3 位和 4 位有效数字。
9、 若*2.71828x e x =≈=,则x 有 6 位有效数字,其绝对误差限为1/2*10-5。
10、 设x*的相对误差为2%,求(x*)n的相对误差0.02n11、近似值*0.231x =关于真值229.0=x 有( 2 )位有效数字;12、计算方法主要研究( 截断 )误差和( 舍入 )误差;13、为了使计算 ()()2334610111y x x x =++---- 的乘除法次数尽量地少,应将该表达式改写为11,))64(3(10-=-++=x t t t t y ,为了减少舍入误差,应将表达式19992001-改写为199920012+。
c语言编程题期末考试题及答案
c语言编程题期末考试题及答案1. 编写一个C语言程序,计算并输出100以内(包括100)的所有奇数的和。
```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i += 2) {sum += i;}printf("100以内所有奇数的和是:%d\n", sum);return 0;}```答案:100以内所有奇数的和是:2500。
2. 编写一个C语言程序,实现字符串的反转。
```c#include <stdio.h>#include <string.h>void reverseString(char* str) {int length = strlen(str);for (int i = 0; i < length / 2; i++) {char temp = str[i];str[i] = str[length - i - 1];str[length - i - 1] = temp;}}int main() {char str[] = "Hello, World!";reverseString(str);printf("Reversed string: %s\n", str);return 0;}```答案:Reversed string: !dlroW ,olleH3. 编写一个C语言程序,计算并输出1到100之间所有数字的阶乘之和。
```c#include <stdio.h>long factorial(int n) {if (n == 0)return 1;elsereturn n * factorial(n - 1);}int main() {long sum = 0;for (int i = 1; i <= 100; i++) {sum += factorial(i);}printf("1到100之间所有数字的阶乘之和是:%ld\n", sum); return 0;}```答案:1到100之间所有数字的阶乘之和是:9332621544394415268169923885626670049071596826438162146859296 3895217599993229915608941463976156518286253697920827223758251 185210916864000000000000000000000。
数值计算方法习题答案
《数值计算方法》课后题答案详解吉 林 大 学第一章 习 题 答 案1. 已知(1)2,(1)1,(2)1f f f −===,求()f x 的Lagrange 插值多项式。
解:由题意知:()01201212001020211012012202121,1,2;2,1,1()()(1)(2)()()6()()(1)(2)()()2()()(1)(1)()()3(1)(2)(1)(2)()2162nj j j x x x y y y x x x x x x l x x x x x x x x x x l x x x x x x x x x x l x x x x x x x x L x y l x ==−=====−−−−==−−−−+−==−−−−−+−==−−−−+−==×+×−∴∑()2(1)(1)131386x x x x +−+×=−+2. 取节点01210,1,,2x x x ===对x y e −=建立Lagrange 型二次插值函数,并估计差。
解11201201210,1,;1,,2x x x y y e y e −−======1)由题意知:则根据二次Lagrange插值公式得:02011201201021012202110.510.520.51()()()()()()()()()()()()()2(1)(0.5)2(0.5)4(1)(224)(43)1x x x x x x x x x x x x L x y y y x x x x x x x x x x x x x x x x e x x e e e x e e x −−−−−−−−−−−−=++−−−−−−=−−+−−−=+−+−−+22)Lagrange 根据余项定理,其误差为(3)2210122()1|()||()||(1)(0.5)|3!61max |(1)(0.5)|,(0,1)6()(1)(0.5),()330.5030.2113()61()0.2113(0.21131)(0.21130.5)0.008026x f R x x e x x x x x x t x x x x t x x x x t x R x ξξωξ−+≤≤==−−≤−−∈′=−−=−+=−==≤××−×−=∴取 并令 可知当时,有极大值3. 已知函数y =在4, 6.25,9x x x ===处的函数值,试通过一个二次插值函数求的近似值,并估计其误差。
数值计算方法试题和答案解析
数值计算方法试题和答案解析(总22页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--数值计算方法试题一一、 填空题(每空1分,共17分)1、如果用二分法求方程043=-+x x 在区间]2,1[内的根精确到三位小数,需对分( )次。
2、迭代格式)2(21-+=+k k k x x x α局部收敛的充分条件是α取值在( )。
3、已知⎪⎩⎪⎨⎧≤≤+-+-+-≤≤=31)1()1()1(2110)(233x c x b x a x x x x S 是三次样条函数,则a =( ),b =( ),c =( )。
4、)(,),(),(10x l x l x l n 是以整数点n x x x ,,,10 为节点的Lagrange 插值基函数,则∑==nk kx l0)(( ),∑==nk k jk x lx 0)(( ),当2≥n 时=++∑=)()3(204x l x x k k n k k ( )。
5、设1326)(247+++=x x x x f 和节点,,2,1,0,2/ ==k k x k 则=],,,[10n x x x f 和=∆07f 。
6、5个节点的牛顿-柯特斯求积公式的代数精度为 ,5个节点的求积公式最高代数精度为 。
7、{}∞=0)(k kx ϕ是区间]1,0[上权函数x x =)(ρ的最高项系数为1的正交多项式族,其中1)(0=x ϕ,则⎰=14)(dx x x ϕ 。
8、给定方程组⎩⎨⎧=+-=-221121b x ax b ax x ,a 为实数,当a 满足 ,且20<<ω时,SOR 迭代法收敛。
9、解初值问题00(,)()y f x y y x y '=⎧⎨=⎩的改进欧拉法⎪⎩⎪⎨⎧++=+=++++)],(),([2),(]0[111]0[1n n n n n n n n n n y x f y x f h y y y x hf y y 是阶方法。
(完整word版)数值计算方法期末复习答案终结版
一、 名词解释1.误差:设*x 为准确值x 的一个近似值,称**()e x x x =-为近似值*x 的绝对误差,简称误差。
2.有效数字:有效数字是近似值的一种表示方法,它既能表示近似值的大小,又能表示其精确程度。
如果近似值*x 的误差限是1102n -⨯,则称*x 准确到小数点后n 位,并从第一个不是零的数字到这一位的所有数字均称为有效数字。
3. 算法:是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。
计算一个数学问题,需要预先设计好由已知数据计算问题结果的运算顺序,这就是算法。
4。
向量范数:设对任意向量n x R ∈,按一定的规则有一实数与之对应,记为||||x ,若||||x 满足 (1)||||0x ≥,且||||0x =当且仅当0x =; (2)对任意实数α,都有||||||x αα=||||x ; (3)对任意,n x y R ∈,都有||||||||||||x y x y +≤+ 则称||||x 为向量x 的范数。
5. 插值法:给出函数()f x 的一些样点值,选定一个便于计算的函数形式,如多项式、分段线性函数及三角多项式等,要求它通过已知样点,由此确定函数()x ϕ作为()f x 的近似的方法。
6相对误差:设*x 为准确值x 的一个近似值,称绝对误差与准确值之比为近似值*x 的相对误差,记为*()r e x ,即**()()r e x e x x=7。
矩阵范数:对任意n 阶方阵A ,按一定的规则有一实数与之对应,记为||||A .若||||A 满足 (1)||||0A ≥,且||||0A =当且仅当0A =; (2)对任意实数α,都有||||||A αα=||||A ;(3)对任意两个n 阶方阵A ,B,都有||||||||||||A B A B +≤+; (4)||||||||AB A =||||B称||||A 为矩阵A 的范数.8. 算子范数:设A 为n 阶方阵,||||•是n R 中的向量范数,则0||||||||||||maxx Ax A x ≠=是一种矩阵范数,称其为由向量范数||||•诱导出的矩阵范数,也称算子范数.9。
数值计算方法期末考试题精选版
数值计算方法期末考试题Document serial number【KKGB-LBS98YT-BS8CB-BSUT-BST108】一、单项选择题(每小题3分,共15分)1. 和分别作为π的近似数具有( )和( )位有效数字. A .4和3 B .3和2 C .3和4 D .4和42. 已知求积公式()()211211()(2)636f x dx f Af f ≈++⎰,则A =( )A . 16B .13C .12D .233. 通过点()()0011,,,x y x y 的拉格朗日插值基函数()()01,l x l x 满足( )A .()00l x =0,()110l x =B .()00l x =0,()111l x =C .()00l x =1,()111l x = D .()00l x =1,()111l x =4. 设求方程()0f x =的根的牛顿法收敛,则它具有( )敛速。
A .超线性B .平方C .线性D .三次5. 用列主元消元法解线性方程组1231231220223332x x x x x x x x ++=⎧⎪++=⎨⎪--=⎩作第一次消元后得到的第3个方程( ).A .232x x -+= B .232 1.5 3.5x x -+=C .2323x x -+= D .230.5 1.5x x -=-单项选择题答案二、填空题(每小题3分,共15分)1. 设TX )4,3,2(-=, 则=1||||X ,2||||X = .2. 一阶均差()01,f x x =3. 已知3n =时,科茨系数()()()33301213,88C C C ===,那么()33C = 4. 因为方程()420x f x x =-+=在区间[]1,2上满足 ,所以()0f x =在区间内有根。
5. 取步长0.1h =,用欧拉法解初值问题()211y y yx y ⎧'=+⎪⎨⎪=⎩的计算公式 .填空题答案1. 9和292.()()0101f x f x x x --3. 184.()()120f f <5. ()1200.11.1,0,1,210.11k k y y k k y +⎧⎛⎫⎪ ⎪=+⎪ ⎪=+⎨⎝⎭⎪=⎪⎩三、计算题(每题15分,共60分)1. 已知函数211y x =+的一组数据:求分段线性插值函数,并计算()1.5f 的近似值.计算题1.答案1. 解[]0,1x ∈,()1010.510.50110x x L x x --=⨯+⨯=--- []1,2x ∈,()210.50.20.30.81221x x L x x --=⨯+⨯=-+--所以分段线性插值函数为2. 已知线性方程组1231231231027.21028.35 4.2x x x x x x x x x --=⎧⎪-+-=⎨⎪--+=⎩(1) 写出雅可比迭代公式、高斯-塞德尔迭代公式; (2) 对于初始值()()0,0,0X =,应用雅可比迭代公式、高斯-塞德尔迭代公式分别计算()1X (保留小数点后五位数字).计算题2.答案1.解 原方程组同解变形为 1232133120.10.20.720.10.20.830.20.20.84x x x x x x x x x =++⎧⎪=-+⎨⎪=++⎩ 雅可比迭代公式为()()()()()()()()()1123121313120.10.20.720.10.20.830.20.20.84m m m m m m m m m x x x x x x x x x +++⎧=++⎪⎪=-+⎨⎪=++⎪⎩(0,1...)m = 高斯-塞德尔迭代法公式()()()()()()()()()1123112131113120.10.20.720.10.20.830.20.20.84m m m m m m m m m x x x x x x x x x ++++++⎧=++⎪⎪=-+⎨⎪=++⎪⎩(0,1...)m = 用雅可比迭代公式得()()10.72000,0.83000,0.84000X = 用高斯-塞德尔迭代公式得()()10.72000,0.90200,1.16440X =3. 用牛顿法求方程3310x x --=在[]1,2之间的近似根 (1)请指出为什么初值应取2 (2)请用牛顿法求出近似根,精确到.计算题3.答案4. 写出梯形公式和辛卜生公式,并用来分别计算积分101dx x +⎰.计算题4.答案确定下列求积公式中的待定系数,并证明确定后的求积公式具有3次代数精确度证明题答案1. 设2.3149541...x *=,取5位有效数字,则所得的近似值x= .2.设一阶差商 ()()()21122114,321f x f x f x x x x --===---,()()()322332615,422f x f x f x x x x --===--则二阶差商()123,,______f x x x =3. 设(2,3,1)TX =--, 则2||||X = ,=∞||||X 。
C语言期末考试题及答案教案资料
C语⾔期末考试题及答案教案资料1、给定n个数据, 求最⼩值出现的位置(如果最⼩值出现多次,求出第⼀次出现的位置即可)。
最⼤值第三⾏i<=n五⾏k+1 2、编写程序求⽆理数e的值并输出。
计算公式为:e=1+1/1!+1/2!+1/3!+......+1/n!当1/n!<0.000001时e=2.718282。
3、求⼀批数中最⼤值和最⼩值的积。
4、某⼀正数的值保留2位⼩数,对第三位进⾏四舍五⼊。
5、从键盘上输⼊任意实数x,求出其所对应的函数值。
z=(x-4)的⼆次幂(x>4) z=x的⼋次幂(x>-4)z=z=4/(x*(x+1))(x>-10)z=|x|+20(其他)6、求出N×M整型数组的最⼤元素及其所在的⾏坐标及列坐标(如果最⼤元素不唯⼀,选择位置在最前⾯的⼀个)。
例如:输⼊的数组为:1 2 34 15 612 18 910 11 2求出的最⼤数为18,⾏坐标为2,列坐标为1。
7、求⼀个n位⾃然数的各位数字的积。
(n 是⼩于10的⾃然数)8、计算n门课程的平均值,计算结果作为函数值返回。
例如:若有5门课程的成绩是:92,76,69,58,88,则函数的值为76.599998。
9、求⼀批数中⼩于平均值的数的个数。
10、编写函数判断⼀个整数m的各位数字之和能否被7整除,可以被7整除则返回1,否则返回0。
调⽤该函数找出100~200之间满⾜条件的所有数。
11、请编⼀个函数void fun(int tt[M][N],int pp[N]),tt指向⼀个M⾏N列的⼆维数组,求出⼆维数组每列中最⼤元素,并依次放⼊pp所指⼀维数组中。
⼆维数组中的数已在主函数中赋予。
12、编写函数fun⽤⽐较法对主程序中⽤户输⼊的具有10个数据的数组a按由⼤到⼩排序,并在主程序中输出排序结果。
13、编写main程序调⽤函数fact求解从m个元素选n个元素的组合数的个数。
计算公式是:组合数=m!/(n!.(m-n)!)。
大学《C语言程序设计》期末考试编程题库及答案
1 题目:根据下面的函数关系,对输入的每个x值,计算出相应的y值并输出结果。
#include<stdio.h>#include<math.h>main(){ float x,y;printf(“enter x:\n”);scanf(“%f”,&x);if(x<=0)y=0;else if(x<=10)y=x;elsey=0.5+sin(x);printf(“x=%f,y=%f\n”,x,y);}2题目:输入一个整数,当为65时显示A,66时显示B,68时显示C,其他值时显示END。
(可选用switch语句编写)#include <stdio.h>main(){ int x;printf(“enter x:\n”);scanf(“%d”,&x);if(x==65)printf(“x=%d, show %c\n”,x,x);else if(x==66)printf(“x=%d, sh ow %c\n”,x,x);else if(x==67)printf(“x=%d, show %c\n”,x,x);elseprintf(“x=%d, show END\n”,x);}3题目:编写程序将用户输入的字母进行大小写转换#include<stdio.h>main(){char x,y ;printf("enter x:\n");scanf("%c",&x);if(x>='a' && x<='z')y=x-32;else if(x>='A' && x<='Z')y=x+32;printf("x=%c, y=%c\n",x,y);}4题目:输入一个整数,判断它是奇数还是偶数并输出。
数值计算方法习题.doc
第一章 绪论1.把下列各数按四舍五入规则舍入为有3位小数的近似数,并写出近似数的绝对误差和相对误差,指出近似数有几位有效数字: 93.1822 4.32250 15.9477 17.3675 2.按四舍五入原则,将下列数舍成五位有效数字:816.9567 6.000015 17.32250 1.235651 93.18213 0.015236233.设 **,671.3,6716.3x x x 则==有几位有效数字? 4.若1/4用0.25来表示,问有多少位有效数字? 5.若 1.1062,0.947a b ==是经过舍入后得到的近似值,问:,a b a b +⨯各有几位有效数字?6.设120.9863,0.0062y y ==是经过舍入后作为12,x x 的近似值, 求11y 和21y 的计算值与真值的相对误差限及12y y 和得到真值的相对误差限. 7.设0,x x >的相对误差为δ,求ln x 的绝对误差.8.正方形的边长约为100cm ,应该怎样测量,才能使其面积的误差不超过12cm . 9.设x 的相对误差为a %,求x n 的相对误差.10.计算球的体积,为了使相对误差限为1%,问度量半径R 时允许的相对误差限如何?11.5631.2*=x 是经四舍五入得到的近似值,则其相对误差≤*r e __________ 12. 设 0000073.0,1416.3,1415926.3**=-==x x x x 则称_________误差13.设⎰+=1061dx xx I nn ,设计一个计算10I 的算法,并说明你的算法的合理性。
14.设028Y =,按递推公式1n n Y Y -= (1,2,n = ), 计算到100Y27.982≈(5位有效数字),试问计算100Y 将有多大误差. 15.求方程25610x x -+=的两个根,使它至少具有4位有效数字27.982≈).16.当N 充分大时,怎样求121d 1N N x x ++⎰?17.序列{}n y 满足递推关系101n n y y =- (1,2,n = ),若0 1.41y =≈(三位有效数字),计算到10y 时误差有多大?这个计算过程稳定吗?18.计算61)f =1.41≈,利用下列算式计算,哪一个得到的结果最好?,3(3-,99- 19.()ln(f x x =,求(30)f 的值,若开平方用6位函数表,问求对数时误差有多大?若改用另一等价公式ln(ln(x x =- 计算,求对数时误差有多大?第二章 解线性方程组的直接方法1.用高斯消去法解方程组123234011921261x x x ⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥-⎣⎦⎣⎦⎣⎦ 2.用LU 分解,将上题系数矩阵分解为L 和U 的乘积,L 是对角线元素为1的下三角矩阵,U 是上三角矩阵。
计算机数值方法试题
标准适用数值计算方法试题一、填空(共 20 分,每题 2 分)1、设,取5位有效数字,则所得的近似值x=_____.2、设一阶差商,则二阶差商3、数值微分中,已知等距节点的函数值则由三点的求导公式,有4、求方程的近似根,用迭代公式,取初始值,那么5、解初始值问题近似解的梯形公式是6、,则A的谱半径=,A的=7、设,则=和=8、若线性代数方程组AX=b 的系数矩阵 A 为严格对角占优阵,则雅可比迭代和高斯 - 塞德尔迭代都 _____9、解常微分方程初值问题的欧拉(Euler )方法的局部截断偏差为_____10、设,当时,必有分解式,此中L为下三角阵,当其对角线元素足条件时,这类分解是独一的。
标准适用二、计算题(共 60 分,每题 15 分)1、设(1)试求在上的三次Hermite插值多项式H(x)使知足H( x)以升幂形式给出。
(2)写出余项的表达式2、已知的足,怎样利用结构一个收的迭代函数,使0, 1⋯收?3、试确立常数 A, B, C和,使得数值积分公式有尽可能高的代数精度。
试问所得的数值积分公式代数精度是多少?它能否为Gauss型的?4、推常微分方程的初值问题的数值解公式:三、证明题1、设(1)写出解的 Newton 迭代格式(2)证明此迭代格式是线性收敛的2、R=I - CA,假如,明:(1)A、C 都是非奇怪的矩阵(2)参照答案:一、填空题1、2、3、4、5、6、7、8、收敛9、O(h)10、二、计算题1、1、(1)(2)2、由,可得因故故, k=0,1, ⋯收。
3、,数求公式拥有 5 次代数精准度,它是Gauss型的4、数分方法结构数解公式:方程在区上分,得,步 h, 分用 Simpson 求公式得因此得数解公式:三、明1、明:( 1)因,故,由Newton迭代公式:n=0,1, ⋯得, n=0,1, ⋯( 2)因迭代函数,而,又,故此迭代格式是性收的。
2、明:( 1)因,因此I–R非奇怪,因I–R=CA,因此C,A都是非奇怪矩(2)故有( 2.1 )因 CA=I–R,因此 C=( I – R) A-1,即 A-1 =(I –R)-1 C-1-1又 RA =A –C,故由(里用到了教材98 引理的)移得(2.2)合( 2.1 )、 (2.2) 两式,得模拟试题一、填空题(每空 2 分,共 20 分)1、解非线性方程f(x)=0的牛顿迭代法拥有_______收敛2、迭代过程(k=1,2, ⋯)收的充要条件是___3、已知数 e=2.718281828...,取近似值 x=2.7182,那麽 x 拥有的有效数字是___4、高斯 -- 塞尔德迭代法解线性方程组的迭代格式中求______________5、经过四个互异节点的插值多项式p(x), 只需知足_______,则 p(x) 是不超出二次的多项式6、对于 n+1 个节点的插值求积公式起码拥有___次代数精度 .7、插值型求积公式的求积系数之和___8、, 为使 A 可分解为 A=LL T,此中L为对角线元素为正的下三角形, a 的取值范围_9、若则矩阵A的谱半径(A)=___10 、解常微分方程初值问题的梯形格式是___阶方法二、计算题(每题15 分,共 60 分)1、用列主元消去法解线性方程组2、已知y=f(x)的数据以下x023f (x)132求二次插值多项式及 f ( 2.5 )3、用牛顿法导出计算的公式,并计算,要求迭代偏差不超出。
数值计算方法期末考试题
数值计算方法期末考试题集团标准化工作小组 #Q8QGGQT-GX8G08Q8-GNQGJ8-MHHGN#一、单项选择题(每小题3分,共15分)1. 和分别作为π的近似数具有( )和( )位有效数字. A .4和3 B .3和2 C .3和4 D .4和42. 已知求积公式()()211211()(2)636f x dx f Af f ≈++⎰,则A =( )A . 16B .13C .12D .233. 通过点()()0011,,,x y x y 的拉格朗日插值基函数()()01,l x l x 满足( )A .()00l x =0,()110l x =B .()00l x =0,()111l x =C .()00l x =1,()111l x = D .()00l x =1,()111l x =4. 设求方程()0f x =的根的牛顿法收敛,则它具有( )敛速。
A .超线性B .平方C .线性D .三次5. 用列主元消元法解线性方程组1231231220223332x x x x x x x x ++=⎧⎪++=⎨⎪--=⎩作第一次消元后得到的第3个方程( ).A .232x x -+= B .232 1.5 3.5x x -+=C .2323x x -+= D .230.5 1.5x x -=-单项选择题答案二、填空题(每小题3分,共15分)1. 设TX )4,3,2(-=, 则=1||||X ,2||||X = .2. 一阶均差()01,f x x =????? ???????????????3. 已知3n =时,科茨系数()()()33301213,88C C C ===,那么()33C =???????????? 4. 因为方程()420x f x x =-+=在区间[]1,2上满足??????????????? ?,所以()0f x =在区间内有根。
5. 取步长0.1h =,用欧拉法解初值问题()211y y yx y ⎧'=+⎪⎨⎪=⎩的计算公式????????????????????? .填空题答案1.?????? 9和292.??????()()0101f x f x x x --?3.?????? 18 4.??????()()120f f <5.?????? ()1200.11.1,0,1,210.11k k y y k k y +⎧⎛⎫⎪ ⎪=+⎪ ⎪=+⎨⎝⎭⎪=⎪⎩三、计算题(每题15分,共1. 已知函数211y x =+的一组数据:求分段线性插值函数,并计算()1.5f 的近似值.计算题1.答案1.?????? 解[]0,1x ∈,()1010.510.50110x x L x x --=⨯+⨯=---??????????[]1,2x ∈,()210.50.20.30.81221x x L x x --=⨯+⨯=-+--所以分段线性插值函数为2. 已知线性方程组1231231231027.21028.35 4.2x x x x x x x x x --=⎧⎪-+-=⎨⎪--+=⎩(1)?????? 写出雅可比迭代公式、高斯-塞德尔迭代公式; (2)?????? 对于初始值()()0,0,0X =,应用雅可比迭代公式、高斯-塞德尔迭代公式分别计算()1X(保留小数点后五位数字).计算题2.答案1.解 原方程组同解变形为 1232133120.10.20.720.10.20.830.20.20.84x x x x x x x x x =++⎧⎪=-+⎨⎪=++⎩雅可比迭代公式为()()()()()()()()()1123121313120.10.20.720.10.20.830.20.20.84m m m m m m m m m x x x x x x x x x +++⎧=++⎪⎪=-+⎨⎪=++⎪⎩(0,1...)m =高斯-塞德尔迭代法公式()()()()()()()()()1123112131113120.10.20.720.10.20.830.20.20.84m m m m m m m m m x x x x x x x x x ++++++⎧=++⎪⎪=-+⎨⎪=++⎪⎩?(0,1...)m =用雅可比迭代公式得()()10.72000,0.83000,0.84000X =用高斯-塞德尔迭代公式得()()10.72000,0.90200,1.16440X =3. 用牛顿法求方程3310x x --=在[]1,2之间的近似根(1)请指出为什么初值应取2 (2)请用牛顿法求出近似根,精确到.计算题3.答案4. 写出梯形公式和辛卜生公式,并用来分别计算积分101dx x +⎰.计算题4.答案确定下列求积公式中的待定系数,并证明确定后的求积公式具有3次代数精确度证明题答案证明:求积公式中含有三个待定系数,即101,,A A A -,将()21,,f x x x =分别代入求积公式,并令其左右相等,得得1113A A h -==,043hA =。
《数值计算方法》试题与答案
习题一1.设x >0相对误差为2%4x 的相对误差。
解:由自变量的误差对函数值引起误差的公式:(())(())'()()()()f x xf x f x x f x f x δδ∆=≈得(1)()f x =11()()*2%1%22x x δδδ≈===;(2)4()f x x =时444()()'()4()4*2%8%x x x x x xδδδ≈===2.设下面各数都是经过四舍五入得到的近似数,即误差不超过最后一位的半个单位,试指出他们各有几位有效数字。
(1)12.1x =;(2)12.10x =;(3)12.100x =。
解:由教材9P 关于1212.m nx a a a bb b =±型数的有效数字的结论,易得上面三个数的有效数字位数分别为:3,4,53.用十进制四位浮点数计算 (1)31.97+2.456+0.1352; (2)31.97+(2.456+0.1352)哪个较精确?解:(1)31.97+2.456+0.1352 ≈21((0.3197100.245610)0.1352)fl fl ⨯+⨯+ =2(0.3443100.1352)fl ⨯+=0.3457210⨯(2)31.97+(2.456+0.1352)21(0.319710(0.245610))fl fl ≈⨯+⨯ = 21(0.3197100.259110)fl ⨯+⨯ =0.3456210⨯易见31.97+2.456+0.1352=0.345612210⨯,故(2)的计算结果较精确。
4.计算正方形面积时,若要求面积的允许相对误差为1%,测量边长所允许的相对误差限为多少? 解:设该正方形的边长为x ,面积为2()f x x =,由(())(())'()()()()f x xf x f x x f x f x δδ∆=≈解得(())()()'()f x f x x xf x δδ≈=2(())(())22f x x f x x xδδ==0.5%5.下面计算y 的公式哪个算得准确些?为什么?(1)已知1x <<,(A )11121xy x x-=-++,(B )22(12)(1)x y x x =++; (2)已知1x>>,(A )y=,(B )y = (3)已知1x <<,(A )22sin x y x =,(B )1cos2xy x-=;(4)(A)9y =-(B )y =解:当两个同(异)号相近数相减(加)时,相对误差可能很大,会严重丧失有效数字;当两个数相乘(除)时,大因子(小除数)可能使积(商)的绝对值误差增大许多。
c语言期末复习例题及其程序
1.回顾s=1+2+3+……+1002.求s=1+11+111+……+11111113.任意输入一个正整数给a,再输入一个正整数给n,计算s=a+aa+aaa+……+a…..a(n个)4.求s=1+12+123+1234+……+12345675.任意输入一个正整数给n,计算s=1+12+123+……+123….n (n个)1.求s=1!+2!+3!+ (20)2.求s=1!+3!+5!+ (19)3.任意输入一个数字给变量x,求sinx。
已知:sinx=x-x3/3!+x5/5!+……直到某项的绝对值小雨10-6为止。
1.任意输入5个数字,要求从小到大排序输出。
2.任意输入10个数字,要求输出最大值和最小值。
(两种方法)试验内容:选择结构程序任意输入一个三角形的三边的值(三边用a,b,c3个变量),然后判断能否构成三角形,如果可以,则计算出三角形的面积,再判断三角形的类型。
(1)按边分类(2)按角度分类海伦公式l=(a+b+c)/2s=sqrt(l*(l-a)*(l-b)*(l-c))第五次实验课的内容1.任意输入一个年月日,计算这天是该年的第几天?方法一:#include<stdio.h>void main(){int n,y,r,day;printf("任意输入一个年月日:");scanf("%d-%d-%d",&n,&y,&r);if(y==1)day=r;if(y==2)day=31+r;if(y==3)day=31+28+r;if(y==4)day=31+28+31+r;if(y==5)day=31+28+31+30+r;if(y==6)day=31+28+31+30+31+r;if(y==7)day=31+28+31+30+31+30+r;if(y==8)day=31+28+31+30+31+30+31+r;if(y==9)day=31+28+31+30+31+30+31+31+r;if(y==10)day=31+28+31+30+31+30+31+31+30+r;if(y==11)day=31+28+31+30+31+30+31+31+30+31+r;if(y==12)day=31+28+31+30+31+30+31+31+30+31+30+r;if(y>=3 && (n%4==0 && y%100!=0 || y%400==0)) day=day+1;printf("这天是该年的第%d天\n",day);}方法二:#include<stdio.h>void main(){int n,y,r,day,i;printf("任意输入一个年月日:");scanf("%d-%d-%d",&n,&y,&r);day=0;for(i=1;i<=y-1;i++){switch(i){case 1:case 3:case 5:case 7:case 8:case 10:case 12: day=day+31;break;case 4:case 6:case 9:case 11: day=day+30;break;case 2: day=day+28;break;}}if(y>=3 && (n%4==0 && y%100!=0 || y%400==0))day=day+1;printf("这天是该年的第%d天\n",day+r);}方法三:#include<stdio.h>void main(){int n,y,r,day,i;int month[12]={31,28,31,30,31,30,31,31,30,31,30,31};printf("任意输入一个年月日:");scanf("%d-%d-%d",&n,&y,&r);day=0;for(i=1;i<=y-1;i++){day=day+month[i-1];}if(y>=3 && (n%4==0 && n%100!=0 || n%400==0))day=day+1;printf("这天是该年的第%d天\n",day+r);}2.任意输入一个起始年月日,再输入一个终止年月日,计算这2天之间一共有多少天?分析:1. 数据部分:该程序需要输入变量start_n,start_y,start_r,end_n,end_y,end_r等变量。
大学期末常见c语言试题及答案
大学期末常见c语言试题及答案1. 题目:编写一个C语言程序,计算并输出100以内所有正整数的和。
答案:```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {sum += i;}printf("1到100的和是:%d\n", sum);return 0;}```2. 题目:编写一个C语言程序,实现输入一个字符串,然后输出该字符串的逆序。
答案:```c#include <stdio.h>#include <string.h>int main() {char str[100];printf("请输入一个字符串:");scanf("%s", str);int len = strlen(str);for (int i = len - 1; i >= 0; i--) {printf("%c", str[i]);}printf("\n");return 0;}```3. 题目:编写一个C语言程序,计算并输出一个整数的阶乘。
答案:```c#include <stdio.h>long factorial(int n) {if (n == 0) return 1;long result = 1;for (int i = 1; i <= n; i++) {result *= i;}return result;}int main() {int num;printf("请输入一个整数:");scanf("%d", &num);printf("%d的阶乘是:%ld\n", num, factorial(num)); return 0;}```4. 题目:编写一个C语言程序,实现一个简单的计算器,能够进行加、减、乘、除运算。
算法大题期末考试题及答案
算法大题期末考试题及答案一、简答题(每题5分,共20分)1. 简述什么是递归算法,并给出一个递归算法的实例。
答案:递归算法是一种在算法中使用函数调用自身的方法来解决问题的算法。
例如,计算阶乘的递归算法定义为:n! = n * (n-1)!,其中n是一个正整数,递归的基本情况是1! = 1。
2. 描述二分查找算法的基本思想,并说明其时间复杂度。
答案:二分查找算法是一种在有序数组中查找特定元素的算法。
其基本思想是将数组分为两半,比较中间元素与目标值,如果目标值等于中间元素,则查找成功;如果目标值小于中间元素,则在左半部分继续查找;如果目标值大于中间元素,则在右半部分继续查找。
这个过程重复进行,直到找到目标值或查找范围为空。
二分查找的时间复杂度为O(log n)。
3. 什么是动态规划?动态规划与贪心算法的区别是什么?答案:动态规划是一种通过将复杂问题分解为更小的子问题来解决的方法,并且通过存储这些子问题的解来避免重复计算。
动态规划与贪心算法的区别在于,贪心算法在每一步选择局部最优解,而动态规划则考虑所有可能的子问题解,并选择全局最优解。
4. 解释什么是哈希表,并简述其工作原理。
答案:哈希表是一种数据结构,它提供了快速的数据插入和查找功能。
哈希表通过哈希函数将键映射到表中的一个位置来访问记录,这个通过键到位置的映射过程称为哈希。
如果两个键具有相同的哈希值,这种情况称为冲突,通常通过链地址法或开放地址法来解决。
二、计算题(每题10分,共20分)1. 给定一个数组A=[3, 5, 7, 9, 11],请使用二分查找算法找出11的位置。
答案:首先,确定数组的中间位置,即(0+4)/2=2,比较A[2]与11,发现A[2]=7小于11,因此11在A[2]的右侧。
更新查找范围为A[3]到A[4],即索引3和4。
继续比较A[3]与11,发现A[3]=9小于11,因此11在A[3]的右侧。
最后,比较A[4]与11,发现A[4]=11等于目标值,所以11的位置是4。
数值计算方法答案
n i =1
f
( x1 ,
xi x2 ,⋯ ,
xn
)
∂f
( x1 ,
x2 ,⋯ , ∂xi
xn
)
δ
(
xi
)
。
得
a ∂S(a, b, C)
b ∂S(a, b, C)
C ∂S(a,b,C)
δ (S(a, b, C)) =
δ (a) +
δ (b) +
δ (C)
S(a,b,C) ∂a
S(a,b,C) ∂b
S(a,b,C) ∂C
内, f (x) =0 有根。
同题(1)的方法可得:(2),(3),(4)的零点附近的含根区间分别为
[0,1]
;
⎡⎢⎣0,
π 2
⎤ ⎥⎦
;
[
0,1]
6
2.用二分法求方程 x sin x −1 = 0 在[0, 2] 内的根的近似值并分析误差。
解 : 令 f (x) = x sin x −1 , 则 有 f (0) = −1 < 0 , f (2) = 0.8186 > 0 ,
= 0.123 ×101 × 0.219 ×101 − 1= 0.169 ×101 即 f (x) = 0.167 ×101 , g(x) = 0.169 ×101 而当 x = 2.19 时 x3 − 3x2 + 3x −1的精确值为 1.6852,故 g(x) 的算法较正确。
8.按照公式计算下面的和值(取十进制三位浮点数计算):
x
Байду номын сангаас
x
(4)(A) y = 9 − 80 ,(B) y = 1 9 + 80
解:当两个同(异)号相近数相减(加)时,相对误差可能很大,会严重丧失有效数字;当两
《数值计算方法》试题集及答案
《数值计算方法》复习试题一、填空题:1、⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡----=410141014A ,则A 的LU 分解为A ⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦。
答案:⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--=15561415014115401411A 3、1)3(,2)2(,1)1(==-=f f f ,则过这三点的二次插值多项式中2x 的系数为,拉格朗日插值多项式为。
答案:-1,)2)(1(21)3)(1(2)3)(2(21)(2--------=x x x x x x x L4、近似值*0.231x =关于真值229.0=x 有(2)位有效数字;5、设)(x f 可微,求方程)(x f x =的牛顿迭代格式是();答案)(1)(1n n n n n x f x f x x x '---=+6、对1)(3++=x x x f ,差商=]3,2,1,0[f (1),=]4,3,2,1,0[f (0);7、计算方法主要研究(截断)误差和(舍入)误差;8、用二分法求非线性方程f (x )=0在区间(a ,b )内的根时,二分n 次后的误差限为(12+-n a b ); 10、已知f (1)=2,f (2)=3,f (4)=5.9,则二次Newton 插值多项式中x 2系数为(0.15); 11、 解线性方程组A x =b 的高斯顺序消元法满足的充要条件为(A 的各阶顺序主子式均不为零)。
12、 为了使计算32)1(6)1(41310---+-+=x x x y 的乘除法次数尽量地少,应将该表达式改写为11,))64(3(10-=-++=x t t t t y ,为了减少舍入误差,应将表达式19992001-改写为199920012+。
13、 用二分法求方程01)(3=-+=x x x f 在区间[0,1]内的根,进行一步后根的所在区间为0.5,1,进行两步后根的所在区间为0.5,0.75。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
//用辛普森公式计算p199页的例题-7#include<stdio.h>#include<math.h>doublef(double x){return pow(x,0.5);}void main(){ double x0,x1, m;x0=0.5;x1=1.0;printf("利用辛普森公式计算的结果为:"); printf("\n");m=((x1-x0)*(f(x0)+f(x1)+4*f((x0+x1)/2)))/6; printf("%lf",m);printf("\n");}/用牛顿迭代法求x等于e的-x次方在.5附近的根。
#include"stdio.h"#include"math.h"#define E 2.71828182#define fn(x)x*pow(E,x)-1#define fn_(x)pow(E,x)+x*pow(E,x )#define N 10#define F 1e-8void main(){double x0=0;double x_=0;double x = 0; double tempx=0;int k=1;printf("键入x0的初值:\nx0=");scanf("%lf",&x0);while(1){x_=fn_(x0);//导数x =fn(x0);//函数值if(x_ == 0){ printf("newton iterationfail!");break;}else{tempx=x0- ( x/x_ );if( fabs(x0-tempx) < F){printf("newton iteration success!\nx=%.8lf\n\n",tempx); break;}else{if(k == N){printf("newton iteration fail!");break;}else{k++;x0=tempx;}}}}}//牛顿插入法#include<stdio.h>#define N 6#define M 4 doublex[N]={0.4,0.55,0.65,0.8,0.9,1.05};Double y[N]={0.41075,0.57815,0.69675,0.88811 ,1.02652,1.25382};double _w(int k,int i,int j){double sum=1;int ii=i;while(ii<=j){if(k!=ii)sum*=(x[k]-x[ii]);ii++;}return sum;}double D_value(int i,int j) {double sum=0;int k=i;while(k<=j){sum+=y[k]/_w(k,i,j);k++;}return sum;} double _Poly(double x0,int n){double sum=1;int i=0;while(i<=n){sum*=(x0-x[i]);i++;}return sum;}double Polynomial(double x0,int n) {if(n==0)return y[0];else returnPolynomial(x0,n-1)+D_value(0,n)*_Poly(x0,n-1);}void main(){double x0,y0;printf("x0="); scanf("%lf",&x0);getchar();y0=Polynomial(x0 ,M);printf("y=%lf\n",y0);}//拉格朗日差值法,三次差值#include<stdio.h>double L0(double x0,double x1,double x2,double x){return((x-x1)*(x-x2))/((x0-x1)*(x0-x2));}double L1(double x0,double x1,doublex2,double x){return((x-x0)*(x-x2))/((x1-x0)*(x1-x2));}double L2(double x0,double x1,doublex2,double x){return((x-x0)*(x-x1))/((x2-x0)*(x2-x1));}void main(){double x=0,x0=0,x1=0,x2=0;doubley0=0,y1=0,y2=0;printf("输入各项x的值:\n");scanf("%lf,%lf,%lf",&x0,&x1,&x2); printf("输入各项y的值:\n");scanf("%lf,%lf,%lf",&y0,&y1,&y2);getchar(); printf("输入x的值:\n");scanf("%lf",&x); getchar();printf("结果为:%lf\n",L0(x0,x1,x2,x)*y0+L1(x0,x1,x2,x)* y1+L2(x0,x1,x2,x)*y2);}//高斯消去法#include<stdio.h>#define size 3 double a[size][size+2];void guass(){int i,j;int n;for(n=1;n<size;n++)for(i=n;i<size;i++){//得到乘数a[i][size+1]=a[i][n-1]/a[n-1][n-1];//消去for(j=n-1;j<size+1;j++)a[i][j]=a[i][j]-a[i][size+1]*a[n-1][j];}}void main(){int i,j;printf("-----------高斯消去之前---------\n\n");for(i=0;i<size;i++) {for(j=0;j<size+1;j++){a[i][j]=rand()%10;if(a[i][j]<0)printf("%.2f\t",a[i][j]);else printf(" %.2f\t",a[i][j]);}printf("\n\n");} guass();printf("-----------高斯消去后----------\n\n");for(i=0;i<size;i++){for(j=0;j<size+1;j++){if(a[i][j]<0)printf( "%.2f\t",a[i][j]);else printf("%.2f\t",a[i][ j]);}printf("\n\n");}}//高斯赛德尔#include<stdio.h>#include<math.h>#define N 3#define E 1e-4double retx1(double x2,double x3){return 0.2*x2+0.1*x3+0.3;}double retx2(double x1,double x3){return 0.2*x1+0.1*x3+1.5;}double retx3(double x1,double x2){return 0.2*x1+0.4*x2+2;}void main() {double x1=0,x2=0,x3=0;while( fabs((x1-retx1(x2,x3)))>E ){x1=retx1(x2,x3);x2=retx2(x1,x3);x3=retx3(x1,x2);}printf("x1=%.5lf\nx2=%.5lf \nx3=%.5lf\n",x1,x2,x3);printf("\n高斯-塞德尔迭代。
第页例.27数值。
结果与答案相符\n");} //书本上例题2.20.用双点弦截法解x=e-x#include"stdio.h"#include"math.h"#define E 2.718281828459#define N 10#define XE 1e-6double fn(double x){return x*pow(E,x)-1;}void main(){double x0,x1,x2;int k;printf("input x0 and x1:\nx0=");scanf("%lf",&x0);getchar();printf("x1="); scanf("%lf",&x1);printf("\nx0=%lf,x1=%lf\n" ,x0,x1);k=1;while(1){x2=x1-(fn(x1)*(x1-x0)) /(fn(x1)-fn(x0));if(fabs(fn(x2))<XE) {printf("---success!---\nx=%lf\n",x2); break;}else{if(k==N){printf("--fail!--\n"); break;}else{k++;x0=x1;x1=x2;}}}}//LU分解#include<stdio.h>#define N 4intA[N][N]={{0,0,0,0},{0,2,2,3},{0,4,7,7},{0,-2,4,5}};int L[N][N]={0};int U[N][N]={0}; void dollitte_first()//r=1{int i=0;for(i=1;i<N;i++)L[i][i]=1;for(i=1;i<N;i++) U[1][i]=A[1][i];for(i=2;i<N;i++)L[i][1]=A[i][1]/U[1][1];}void dollitte_second(int r)//r>=2{if(r>=2 && r<= N){int i=0;for(i=r;i<N;i++) U[r][i]=A[r][i]-sumb_u(r,i);for(i=r+1;i<N;i ++)L[i][r]=(A[i][r]-sumb_l(r,i))/U[r][r];} Else printf("error! ---> r=%d\n",r);}int sumb_u(int r,int i){int k=1;int sum=0; for(k=1;k<=r-1;k++)sum+=L[r][k]*U[k][i]; return sum;}int sumb_l(int r,int i){int k=1;int sum=0;for(k=1;k<=r-1;k++) sum+=L[i][k]*U[k][r];return sum;}void main() {int i=1;int j=1;for(i=1;i<N;i++){if(i==1) dollitte_first();else dollitte_second(i);} printf("A:\n");for(i=1;i<N;i++){for(j=1;j<N ;j++){printf("\t%d",A[i][j]);}printf("\n\n" );}printf("L:\n");for(i=1;i<N;i++){for(j=1; j<N;j++){printf("\t%d",L[i][j]);}printf("\n \n");}printf("U:\n");for(i=1;i<N;i++){for(j =1;j<N;j++){printf("\t%d",U[i][j]);}printf( "\n\n");}printf("结果符合例题答案\n");}//雅克比迭代#include<stdio.h>#include<math.h>#define N 3#define E 1e-5;double retx1(double x2,double x3){return 0.2*x2+0.1*x3+0.3;}double retx2(double x1,double x3){return 0.2*x1+0.1*x3+1.5;}double retx3(double x1,double x2){return 0.2*x1+0.4*x2+2;}void main(){double x1=0,x2=0,x3=0;double xx1=0,xx2=0,xx3=0;while( fabs((x1-retx1(xx2,xx3)))>E ){x1=retx1(xx2,xx3);x2=retx2(xx1,xx3);x3=retx 3(xx1,xx2);xx1=x1;xx2=x2;x3=x3;}printf("x1=%.5lf\nx2=%.5lf\nx3=%.5lf\n",x1, x2,x3);printf("\n雅克比迭代。