数值分析与算法 课程作业3(2016 - 2017秋季学期)_527805326
北航数值分析大作业3
数值分析第三次作业1.设计方案对Fredholm积分方程,用迭代法进行求解:()'(())u x A u x=,其中11(())()(,)()A u x g x K x y u y dy-=-⋅⎰对于公式中的积分部分用数值积分方法。
复化梯形积分法,取2601个节点,取迭代次数上限为50次。
实际计算迭代次数为18次,最后算得误差为r= 0.97E-10。
复化Simpson积分法,取迭代次数上限为50次,取2*41+1,即83个节点时能满足精度要求。
实际计算迭代次数为17次,最后的误差为r= 0.97E-10。
Guass积分法选择的Gauss—Legendre法,取迭代次数上限为50次,直接选择8个节点,满足精度要求。
实际计算迭代次数为24次,最后算得误差为r= 0.87E-10。
2.全部源程序module integralimplicit nonecontains!//////////复化梯形subroutine trapezoid(m)implicit noneinteger :: i,j,k,mreal*8 :: x(m+1),u(m+1)real*8 :: sum,sum1,g,r,hreal*8 :: e=1.0e-10h=2./mdo i=1,m+1x(i)=-1.+(i-1)*hend dou=0.02do k=1,50do i=1,m+1sum1=0.g=dexp(x(i)*4.)+(dexp(x(i)+4.)-dexp(-4.-x(i)))/(x(i)+4.)do j=2,msum1=sum1+dexp(x(i)*x(j))*u(j)end dosum=h/2.*(dexp(x(i)*-1.)*u(1)+dexp(x(i)*1.)*u(m+1)+2*sum1)u(i)=g-sumend dor=h/2.*((dexp(x(1)*4)-u(1))**2+(dexp(x(m+1)*4)-u(m+1))**2) do i=2,mr=r+h*(dexp(x(i)*4)-u(i))**2end doif(dabs(r)<=e) exitend dowrite(*,*) kopen(1,file="trapezoid.txt")do i=1,m+1write(1,'(3(f18.12))') x(i),u(i),dexp(x(i)*4.)end dowrite(1,'(4x,a2,e9.2)') "r=",rclose(1)returnend subroutine trapezoid!///////////复化simpsonsubroutine simpson(m)implicit noneinteger :: i,j,k,mreal*8 :: x(2*m+1),u(2*m+1)real*8 :: sum,sum1,sum2,g,r,hreal*8 :: e=1.0e-10h=2./(2.*m)do i=1,2*m+1x(i)=-1.+(i-1)*hend dou=0.02do k=1,50do i=1,2*m+1sum1=0.sum2=0.g=dexp(x(i)*4.)+(dexp(x(i)+4.)-dexp(-4.-x(i)))/(x(i)+4.)do j=1,msum1=sum1+dexp(x(i)*x(2*j))*u(2*j)end dodo j=1,m-1sum2=sum2+dexp(x(i)*x(2*j+1))*u(2*j+1)sum=h/3.*(dexp(x(i)*-1.)*u(1)+dexp(x(i)*1.)*u(2*m+1)+4*sum1+2*sum2) u(i)=g-sumend dor=h/3.*((dexp(x(1)*4)-u(1))**2+(dexp(x(2*m+1)*4)-u(2*m+1))**2)do i=1,mr=r+4.*h/3.*(dexp(x(2*i)*4)-u(2*i))**2end dodo i=1,m-1r=r+2.*h/3.*(dexp(x(2*i+1)*4)-u(2*i+1))**2end doif(dabs(r)<=e) exitend dowrite(*,*) kopen(2,file="simpson.txt")do i=1,2*m+1write(2,'(3(f18.12))') x(i),u(i),dexp(x(i)*4.)end dowrite(2,'(4x,a2,e9.2)') "r=",rclose(2)returnend subroutine simpson!///////////Gauss_Legendre法subroutine Gaussimplicit noneinteger,parameter :: m=8integer :: i,j,kreal*8 :: x(m),u(m),a(m)real*8 :: sum,g,rreal*8 :: e=1.0e-10data x /-0.9602898565,-0.7966664774,-0.5255324099,-0.1834346425,&0.1834346425,0.5255324099,0.7966664774,0.9602898565/data a /0.1012285363,0.2223810345,0.3137066459,0.3626837834,&0.3626837834,0.3137066459,0.2223810345,0.1012285363/u=0.02do k=1,50do i=1,mg=dexp(x(i)*4.)+(dexp(x(i)+4.)-dexp(-4.-x(i)))/(x(i)+4.)do j=1,msum=sum+dexp(x(i)*x(j))*u(j)*a(j)end dou(i)=g-sumend dor=0.do i=1,mr=r+a(i)*(dexp(x(i)*4)-u(i))**2end doif(dabs(r)<=e) exitend dowrite(*,*) kopen(3,file="Gauss.txt")do i=1,mwrite(3,'(3(f18.12))') x(i),u(i),dexp(x(i)*4.)end dowrite(3,'(4x,a2,e9.2)') "r=",rclose(3)returnend subroutine Gaussend module!//////////主程序program mainuse integralimplicit noneinteger :: code1=2600integer :: code2=41call trapezoid(code1)call simpson(code2)call Gaussend program3.各种积分方法的节点和数值解(由于数据太多,在打印时用了较计算时少的有效数字)复化Simpson法4.各方法所得曲线(由于所取节点太多,且精度高,所以图中很难看出各曲线的区别。
数值分析课后习题及答案
第一章 绪论(12) 第二章 插值法(40-42)2、当2,1,1-=x 时,4,3,0)(-=x f ,求)(x f 的二次插值多项式。
[解]372365)1(34)23(21)12)(12()1)(1(4)21)(11()2)(1()3()21)(11()2)(1(0))(())(())(())(())(())(()(2221202102210120120102102-+=-++--=+-+-⨯+------⨯-+-+-+⨯=----+----+----=x x x x x x x x x x x x x x x x x x x y x x x x x x x x y x x x x x x x x y x L 。
3、给出x x f ln )(=的数值表用线性插值及二次插值计算54.0ln 的近似值。
X 0.4 0.5 0.6 0.7 0.8 x ln -0.916291 -0.693147 -0.510826 -0.357765 -0.223144[解]若取5.00=x ,6.01=x ,则693147.0)5.0()(00-===f x f y ,510826.0)6.0()(11-===f x f y ,则604752.182321.1)5.0(10826.5)6.0(93147.65.06.05.0510826.06.05.06.0693147.0)(010110101-=---=--⨯---⨯-=--+--=x x x x x x x x x y x x x x y x L ,从而6202186.0604752.19845334.0604752.154.082321.1)54.0(1-=-=-⨯=L 。
若取4.00=x ,5.01=x ,6.02=x ,则916291.0)4.0()(00-===f x f y ,693147.0)5.0()(11-===f x f y ,510826.0)6.0()(22-===f x f y ,则 217097.2068475.404115.2)2.09.0(5413.25)24.0(3147.69)3.01.1(81455.45)5.06.0)(4.06.0()5.0)(4.0()510826.0()6.05.0)(4.05.0()6.0)(4.0()693147.0()6.04.0)(5.04.0()6.0)(5.0(916291.0))(())(())(())(())(())(()(22221202102210120120102102-+-=+--+-⨯++-⨯-=----⨯-+----⨯-+----⨯-=----+----+----=x x x x x x x x x x x x x x x x x x x x x x y x x x x x x x x y x x x x x x x x y x L ,从而61531984.0217097.21969765.259519934.0217097.254.0068475.454.004115.2)54.0(22-=-+-=-⨯+⨯-=L补充题:1、令00=x ,11=x ,写出x e x y -=)(的一次插值多项式)(1x L ,并估计插值余项。
数值分析作业(完整版)
的逆阵 A ,用左除命令 A \ E 检验你的结果。
clc clear close all A=[1 1 1 1 1;1 2 3 4 5;1 3 6 10 15;1 4 10 20 35;1 5 15 35 70]; fprintf('对上述矩阵进行列主元素分解:\n') for i=1:1:r-1 [mx,ro]=max(abs(A(i:r,i))); % 寻找a阵第i列的最大值 [A(i,:),A(ro+i-1,:)]=exchange(A(i,:),A(ro+i-1,:)); % 进行行与行交换 for j=i+1:1:r A(j,:)=A(j,:)-A(j,i)/A(i,i)*A(i,:); end A End %--矩阵A的逆阵 A1=inv(A) %--左除验证 E=eye(5); A2=A\E % 5x5单位阵 % A阵的逆矩阵 % 输出每次交换后的A
第一章
1、计算积分 I n
Code: clc clear close all n=9; %--梯形积分法 x=0:0.01:1; y=(x.^n).*exp(x-1); In = trapz(x,y); In2=vpa(In,6) % 6位有效数字 %--高精度积分法 F = @(x1)(x1.^n).*exp(x1-1); s = quad(F,0,1); s1=vpa(s,6)
0
0, 0, 0, 0, 0 。
T
if abs(er(:,i-1))<=e fprintf('在迭代 %d 次之后,满足精度要求,x向量的值如下:\n',i); fprintf('x1=%.5f, x2=%.5f, x3=%.5f, x4=%.5f, x5=%.5f\n',x(1,i),x(2,i),x(3,i),x(4,i),x(5,i)); break end end %--绘图 figure(1) plot(1:1:i,x(1,:),'b',1:1:i,x(2,:),'k',1:1:i,x(3,:),'g',1:1:i,x(4,:), 'r',1:1:i,x(5,:),'c') legend('x1','x2','x3','x4','x5') grid on title('Jacobi迭代法——x值随迭代次数变化曲线') figure(2) plot(1:1:i-1,er(1,:),'b',1:1:i-1,er(2,:),'k',1:1:i-1,er(3,:),'g',1:1: i-1,er(4,:),'r',1:1:i-1,er(5,:),'c') legend('△x1','△x2','△x3','△x4','△x5') grid on title('Jacobi迭代法——△x值随迭代次数变化曲线') %% fprintf('\n-------------Gauss-Seidel迭代法---------------------\n'); U=-(A1-D); L=-(A2-D); DL_1=inv(D-L); M1=DL_1*U; b2=DL_1*b; x1(:,1)=M1*x0+b2; for j=2:1:100 x1(:,j)=M1*x1(:,j-1)+b2; er1(:,j-1)=x1(:,j)-x1(:,j-1); if abs(er1(:,j-1))<=e fprintf('在迭代 %d 次之后,满足精度要求,x向量的值如下:\n',j); fprintf('x1=%.5f, x2=%.5f, x3=%.5f, x4=%.5f, x5=%.5f\n',x1(1,j),x1(2,j),x1(3,j),x1(4,j),x1(5,j)); break end end %--绘图 figure(3) plot(1:1:j,x1(1,:),'b',1:1:j,x1(2,:),'k',1:1:j,x1(3,:),'g',1:1:j,x1(4 ,:),'r',1:1:j,x1(5,:),'c') legend('x1','x2','x3','x4','x5')
数值分析第三版习题答案
数值分析第三版习题答案
《数值分析第三版习题答案》
数值分析是一门研究利用数学方法和计算机技术解决实际问题的学科。
《数值分析第三版习题答案》是一本重要的教材,它包含了大量的习题和答案,帮助学
生更好地理解和掌握数值分析的知识。
在这本教材中,学生将会学习到一些重要的数值分析方法,比如插值法、数值
积分、常微分方程数值解法等。
这些方法在工程、物理、经济等领域都有着广
泛的应用,因此掌握这些方法对于学生来说非常重要。
《数值分析第三版习题答案》不仅提供了习题的答案,还对每个答案进行了详
细的解释,帮助学生更好地理解每个问题的解决方法。
通过练习这些习题,学
生可以提高他们的数值分析能力,为将来的工作和研究打下坚实的基础。
除了学生,这本教材也对教师和研究人员有着重要的意义。
教师可以通过这本
教材中的习题和答案来设计课程和考试,帮助学生更好地掌握数值分析的知识。
研究人员则可以通过这本教材中的方法和技巧来解决实际问题,推动学科的发展。
总之,《数值分析第三版习题答案》是一本非常重要的教材,它对于学生、教师和研究人员都有着重要的意义。
希望更多的人能够通过这本教材来学习和掌握
数值分析的知识,为推动科学技术的发展做出更大的贡献。
数值计算方法与算法第三版课后习题答案
数值计算方法与算法第三版课后习题答案1. 矩阵乘法问题描述给定两个矩阵A和B,尺寸分别为n×m和m×p,求矩阵A 和矩阵B的乘积矩阵C,尺寸为n×p。
算法实现import numpy as npdef matrix_multiplication(A, B):n, m = A.shapem, p = B.shapeC = np.zeros((n, p))for i in range(n):for j in range(p):for k in range(m):C[i][j] += A[i][k] * B[k][j] return C示例A = np.array([[1, 2], [3, 4]])B = np.array([[5, 6], [7, 8]])C = matrix_multiplication(A, B)print(C)输出结果:[[19. 22.][43. 50.]]2. 数值积分问题描述给定一个函数f(x),以及积分区间[a, b],求函数f(x)在区间[a, b]上的定积分值∫abf(x)dx。
算法实现简单的数值积分算法是采用小梯形法,将区间[a, b]均分成n个子区间,然后计算每个子区间的面积,最后将这些子区间面积相加得到定积分值。
def numerical_integration(f, a, b, n):h = (b - a) / nintegral =0for i in range(n):x1 = a + i * hx2 = a + (i +1) * hintegral += (f(x1) + f(x2)) * h /2 return integral示例import mathf =lambda x: math.sin(x)a =0b = math.pin =100result = numerical_integration(f, a, b, n) print(result)输出结果:1.99983550388744363. 非线性方程求解问题描述给定一个非线性方程f(x) = 0,求方程的根x。
数值分析练习题及答案
数值分析练习题及答案数值分析练习题及答案数值分析是应用数学的一个分支,它研究如何使用数值方法解决实际问题。
在数值分析的学习过程中,练习题是非常重要的一部分,通过练习题的完成,我们可以更好地理解和掌握数值分析的原理和方法。
本文将给出一些数值分析的练习题及其答案,希望对读者有所帮助。
一、插值与拟合1. 插值是指根据已知数据点的函数值,通过某种方法推导出在这些数据点之间的函数值。
请问插值的目的是什么?答案:插值的目的是通过已知数据点的函数值,推导出在这些数据点之间的函数值,以便于我们在这些数据点之间进行计算和分析。
2. 拟合是指根据已知数据点的函数值,通过某种方法找到一个函数,使得该函数与这些数据点尽可能接近。
请问拟合的目的是什么?答案:拟合的目的是通过已知数据点的函数值,找到一个函数,使得该函数与这些数据点尽可能接近,以便于我们对数据的趋势和规律进行分析和预测。
二、数值积分1. 数值积分是指通过数值方法计算一个函数在某个区间上的积分值。
请问数值积分的应用领域有哪些?答案:数值积分在科学计算、工程设计、金融分析等领域都有广泛的应用。
例如,在物理学中,数值积分可以用来计算物体的质心、重心等重要物理量;在金融分析中,数值积分可以用来计算期权的价格和风险价值等。
2. 辛普森法则是一种常用的数值积分方法,它通过将积分区间划分为若干个小区间,并在每个小区间上使用一个二次多项式来逼近被积函数。
请问辛普森法则的原理是什么?答案:辛普森法则的原理是通过将积分区间划分为若干个小区间,并在每个小区间上使用一个二次多项式来逼近被积函数。
然后,通过对这些小区间上的二次多项式进行积分,最后将这些积分值加起来,就可以得到整个积分区间上的积分值。
三、数值微分1. 数值微分是指通过数值方法计算一个函数在某个点处的导数值。
请问数值微分的作用是什么?答案:数值微分的作用是通过数值方法计算一个函数在某个点处的导数值,以便于我们对函数的变化趋势和规律进行分析和预测。
数值分析练习题附答案
1
2-3 对矩阵 A 进行 LDLT 分解和 GGT 分解,求解方程组 Ax=b,其中
16 4 8
1
A=( 4 5 −4) , b=(2)
8 −4 22
3
解:(注:课本 P26 P27 根平方法)
设 L=(l i j ),D=diag(di),对 k=1,2,…,n,
其中������������=������������������-∑������������=−11 ���������2��������� ������������
������31=(������31 − ∑0������=1 ������3������������1������ ������������)/ ������1=186=12
������32=(������32
−
∑1������=1
������3������������2������
������������ )/
6.6667
,得 ������3 = 1.78570
−1 209
������4
0
������4
0.47847
(
56
−1
780 (������5) 209)
(200)
(������5) ( 53.718 )
1 −1
4
1 −4
15
������1
25
������2
6.6667再由1源自− 15561
− 56
209
x (k1) 1
1 5
(12
2 x2( k )
x (k) 3
)
2 5
x (k) 2
数值分析课后习题答案
7、计算的近似值,取。
利用以下四种计算格式,试问哪一种算法误差最小。
〔1〕〔2〕〔3〕〔4〕解:计算各项的条件数由计算知,第一种算法误差最小。
解:在计算机上计算该级数的是一个收敛的级数。
因为随着的增大,会出现大数吃小数的现象。
9、通过分析浮点数集合F=〔10,3,-2,2〕在数轴上的分布讨论一般浮点数集的分布情况。
10、试导出计算积分的递推计算公式,用此递推公式计算积分的近似值并分析计算误差,计算取三位有效数字。
解:此算法是数值稳定的。
第二章习题解答1.〔1〕 R n×n中的子集“上三角阵〞和“正交矩阵〞对矩阵乘法是封闭的。
〔2〕R n×n中的子集“正交矩阵〞,“非奇异的对称阵〞和“单位上〔下〕三角阵〞对矩阵求逆是封闭的。
设A是n×n的正交矩阵。
证明A-1也是n×n的正交矩阵。
证明:〔2〕A是n×n的正交矩阵∴A A-1 =A-1A=E 故〔A-1〕-1=A∴A-1〔A-1〕-1=〔A-1〕-1A-1 =E 故A-1也是n×n的正交矩阵。
设A是非奇异的对称阵,证A-1也是非奇异的对称阵。
A非奇异∴A可逆且A-1非奇异又A T=A ∴〔A-1〕T=〔A T〕-1=A-1故A-1也是非奇异的对称阵设A是单位上〔下〕三角阵。
证A-1也是单位上〔下〕三角阵。
证明:A是单位上三角阵,故|A|=1,∴A可逆,即A-1存在,记为〔b ij〕n×n由A A-1 =E,那么〔其中 j>i时,〕故b nn=1, b ni=0 (n≠j)类似可得,b ii=1 (j=1…n) b jk=0 (k>j)即A-1是单位上三角阵综上所述可得。
R n×n中的子集“正交矩阵〞,“非奇异的对称阵〞和“单位上〔下〕三角阵〞对矩阵求逆是封闭的。
2、试求齐次线行方程组Ax=0的根底解系。
A=解:A=~~~故齐次线行方程组Ax=0的根底解系为,3.求以下矩阵的特征值和特征向量。
数值分析(课后习题答案详解).ppt
x x 41 2 0 . 25 0 . 5451 1 1 再解 3 x 0 . 875 ,得 x 1 . 2916 2 2 2 0 3 1 . 7083 . 5694 x x 3 3
4 41 2 T 故得 GG 分解: A 1 2 3 2 2 3 3 3 1 1 16 11 4 2 T 3 1 LDL 分解为: A 1 4 4 1 2 3 1 1 9 1 2 2
一.习题1(第10页)
1-1.下列各数都是经过四舍五入得到的近似值 ,试分 别指出它们的绝对误差限,相对误差限和有效数字的位数.
x1=5.420,x2=0.5420,x3=0.00542,x4=6000,x5=0.6105.
解 绝对误差限分别为: 1=0.510-3,2=0.510-4, 3=0.510-5,4=0.5,5=0.5104 . 相对误差限分别为: r1=0.510-3/5.420=0.00923%, r2=0.00923%,r3=0.0923%,4=0.0083%,5=8.3%. 有效数位分别为: 4位,4位,3位,4位,1位. 1-2.下列近似值的绝对误差限都是0.005,试问它们有
2 11 2 1 2 故得 Crout 分解: A 4 3 13 6 12 1 1
1 2 11 2 1 2 LDM 分解为: A 21 13 3 3 4 1 1 1
几位有效数字. a=-1.00031,b=0.042,c=-0.00032
《算法分析与设计试卷20162017》.doc
1D 原问题和子问题使用相同的方法解8.用动态规划算法解决最大字段和问题,其时间复杂性为( B ). A.logn B.n C.n 2 D.nlogn9.解决活动安排问题,最好用( B )算法 A.分治 B.贪心C.动态规划 D.穷举10.下面哪种函数是回溯法中为避免无效搜索采取的策略( B ) A .递归函数B.剪枝函数C 。
随机数函数D.搜索函数11. 从活结点表中选择下一个扩展结点的不同方式将导致不同的分支限界法,以下除( C )之外都是最常见的方式.A.队列式分支限界法B.优先队列式分支限界法C.栈式分支限界法D.FIFO 分支限界法12. .回溯算法和分支限界法的问题的解空间树不会是( D ). A.有序树 B.子集树C.排列树 D.无序树13.优先队列式分支限界法选取扩展结点的原则是( C )。
A 、先进先出B 、后进先出C 、结点的优先级D 、随机14.下面是贪心算法的基本要素的是( C )。
A 、重叠子问题B 、构造最优解C 、贪心选择性质D 、定义最优解15.回溯法在解空间树T 上的搜索方式是( A ).A.深度优先B.广度优先C.最小耗费优先D.活结点优先 二、填空题(20分,每空1分)。
1.算法由若干条指令组成的又穷序列,且满足输入、 输出 、 确定性 和 有限性 四个特性。
2.分支限界法的两种搜索方式有 队列式(FIFO)分支限界法 、 优先队列式分支限界法 ,用一个队列来存储结点的表叫 活节点表 。
23. 直接或间接 调用自身的方法叫 递归算法 。
4、大整数乘积算法是用 分治算法 来设计的。
5、以广度优先或以最小耗费方式搜索问题解的算法称为 分支限界法 。
6.动态规划的子问题 重叠 。
7.贪心算法的选择性质是 贪心选择性质 、动态规划法的选择性质是 最优子结构性质 。
8.问题的 最优子结构性质 是该问题可用动态规划算法或贪心算法求解的关键特征。
9.以深度优先方式搜索问题解的算法称为 回溯法 。
数值分析最佳习题含答案
第一章 绪论学号 班级习题主要考察点:有效数字的计算、计算方法的比较选择、误差和误差限的计算。
1 若误差限为5105.0-⨯,那么近似数0.003400有几位有效数字?(有效数字的计算) 解:2*103400.0-⨯=x ,325*10211021---⨯=⨯≤-x x 故具有3位有效数字。
214159.3=π具有4位有效数字的近似值是多少?(有效数字的计算)解:10314159.0⨯= π,欲使其近似值*π具有4位有效数字,必需41*1021-⨯≤-ππ,3*310211021--⨯+≤≤⨯-πππ,即14209.314109.3*≤≤π3 已知2031.1=a ,978.0=b 是经过四舍五入后得到的近似值,问b a +,b a ⨯有几位有效数字?(有效数字的计算)解:3*1021-⨯≤-aa ,2*1021-⨯≤-b b ,而1811.2=+b a ,1766.1=⨯b a 2123****102110211021)()(---⨯≤⨯+⨯≤-+-≤+-+b b a a b a b a故b a +至少具有2位有效数字。
2123*****10210065.01022031.1102978.0)()(---⨯≤=⨯+⨯≤-+-≤-b b a a a b b a ab 故b a ⨯至少具有2位有效数字。
4 设0>x ,x 的相对误差为δ,求x ln 的误差和相对误差?(误差的计算) 解:已知δ=-**xx x ,则误差为 δ=-=-***ln ln xx x x x则相对误差为******ln ln 1ln ln ln xxx x xxx x δ=-=-5测得某圆柱体高度h 的值为cm h 20*=,底面半径r 的值为cm r 5*=,已知cm h h 2.0||*≤-,cm r r 1.0||*≤-,求圆柱体体积h r v2π=的绝对误差限与相对误差限。
(误差限的计算) 解:*2******2),(),(h h r r r h r r h v r h v -+-≤-ππ绝对误差限为πππ252.051.02052)5,20(),(2=⨯⋅+⨯⋅⋅⋅≤-v r h v相对误差限为%420120525)5,20()5,20(),(2==⋅⋅≤-ππv v r h v 6 设x 的相对误差为%a ,求nx y =的相对误差。
北航数值分析大作业题目三
1、 算法的设计方案: (一)、总体方案设计:
(1)解非线性方程组。将给定的当作已知量代入题目给定的非线性方程组,求得与相对应 的数组t[i][j],u[i][j]。 (2)分片二次代数插值。通过分片二次代数插值运算,得到与数组t[11][21],u[11][21]] 对应的数组z[11][21],得到二元函数z=。 (3)曲面拟合。利用x[i],y[j],z[11][21]建立二维函数表,再根据精度的要求选择适当k 值,并得到曲面拟合的系数矩阵C[r][s]。 (4)观察和的逼近效果。观察逼近效果只需要重复上面(1)和(2)的过程,得到与新的 插值节点对应的,再与对应的比较即可,这里求解可以直接使用(3)中的C[r][s]和k。
{ temp=0; for(l=k+1;l<=3;l++) {temp=temp+dF[k][l]*dx[l]/dF[k][k];} dx[k]=-F[k]/dF[k][k]-temp; } temp=0; for(l=0;l<=3;l++) /*求解矩阵范数,用无穷范数*/ { if(temp<fabs(dx[l])) temp=fabs(dx[l]); } fx=temp; temp=0; for(l=0;l<=3;l++) { if(temp<fabs(X[l])) temp=fabs(X[l]); } fX=temp; if(fabs(fx/fX)<Epsilon1) /*判断是否成立*/ { t[i][j]=X[0]; u[i][j]=X[1]; goto loop4;} else { for(l=0;l<=3;l++) {X[l]=X[l]+dx[l];} n=n+1; goto loop3;} } loop3:{if(n<M) /*判断是否超出规定迭代次数*/ goto loop1; else printf("迭代不成功\n"); goto loop4; } loop4:{continue;} } } } void fpeccz(double t[11][21],double u[11][21])/*分片二次代数插值子程序*/ { int s[11][21],r[11][21]; int i,j,i1,j1,m; double z0[6][6]={{-0.5,-0.34,0.14,0.94,2.06,3.5}, {-0.42,-0.5,-0.26,0.3,1.18,2.38}, {-0.18,-0.5,-0.5,-0.18,0.46,1.42},
数值分析试题答案
数值分析试题答案一、选择题1. 以下哪个数值方法用于求解线性方程组?A. 牛顿法B. 高斯消元法C. 欧几里得算法D. 拉格朗日插值法答案:B2. 在数值分析中,舍入误差通常是由什么引起的?A. 人为计算错误B. 计算机表示数字的限制C. 测量误差D. 数据输入错误答案:B3. 插值和拟合的区别在于:A. 插值通过所有数据点,而拟合不通过B. 拟合通过所有数据点,而插值不通过C. 插值是线性的,拟合是非线性的D. 插值是精确的,拟合是近似的答案:A4. 以下哪种方法最适合求解非线性方程?A. 雅可比迭代法B. 牛顿-拉弗森方法C. 托马斯算法D. 布雷尔-史密斯算法答案:B5. 在数值分析中,条件数用于衡量什么?A. 方程组解的存在性B. 方程组解的唯一性C. 方程组解的稳定性D. 方程组解的精确性答案:C二、填空题1. 在数值分析中,__________误差指的是由于计算机舍入而产生的误差,而__________误差指的是由于数据不精确或截断而产生的误差。
答案:截断;舍入2. 线性方程组的矩阵表示为__________,其中A是系数矩阵,x是变量向量,b是常数向量。
答案:Ax = b3. 牛顿法求解非线性方程时,需要计算函数的__________。
答案:导数4. 拉格朗日插值法通过构建一个多项式来近似数据点,该多项式的每一段都与数据点的__________相匹配。
答案:切线5. 为了减少数值分析中的误差,通常采用__________方法来提高计算的精度。
答案:增量三、简答题1. 请简述高斯消元法的基本思想及其在求解线性方程组中的应用。
高斯消元法的基本思想是通过行变换将系数矩阵转化为阶梯形矩阵,进而简化方程组的求解过程。
在求解线性方程组时,首先将增广矩阵进行行变换,使得主元下方的元素为零,然后通过回代过程逐步求解出未知数。
2. 描述牛顿-拉弗森方法求解非线性方程的迭代过程。
牛顿-拉弗森方法是一种迭代求解非线性方程的方法。
数值分析作业最后一题
数值分析作业3一、算法设计方案:1.使用牛顿迭代法(简单迭代法不收敛),对原题中给出的,,()的11*21组分别求出原题中方程组的一组解,于是得到一组和对应的。
2.对于已求出的,使用分片二次代数插值法对原题中关于的数表进行插值得到。
于是产生了z=f(x,y)的11*21个数值解。
3.从k=1开始逐渐增大k的值,并使用最小二乘法曲面拟合法对z=f(x,y)进行拟合,得到每次的。
当时结束计算,输出拟合结果。
4.计算的值并输出结果,以观察逼近的效果。
其中。
二、源代码:/******************************************* 计算实习大作业第三题源程序* 作者: 理学院系统与控制科学系 35093120 吴豪* 本程序在 Dev-C++ 4.9.9.0 版本下调试通过* 最后修改:2008.06.11******************************************/#define N 6 //矩阵的阶;#define M 4 //方程组未知数个数;#define EPSL 1.0e-12 //迭代的精度水平;#define MAXDIGIT 1.0e-219#define SIGSUM 1.0e-7#define L 500//迭代最大次数;#define K 10 //最小二乘法拟合时的次数上限;#define X_NUM 11#define Y_NUM 21#define OUTPUTMODE 1 //输出格式:0--输出至屏幕,1--输出至文件;#include <stdio.h>#include <math.h>double mat_u[N] = {0, 0.4, 0.8, 1.2, 1.6, 2.0},mat_t[N] = {0, 0.2, 0.4, 0.6, 0.8,1.0},mat_ztu[N][N] = {{-0.5, -0.34, 0.14,0.94, 2.06, 3.5},{-0.42, -0.5, -0.26, 0.3, 1.18, 2.38},{-0.18, -0.5, -0.5,-0.18, 0.46, 1.42},{0.22, -0.34, -0.58,-0.5, -0.1, 0.62},{0.78, -0.02, -0.5,-0.66, -0.5, -0.02},{1.5, 0.46, -0.26,-0.66, -0.74, -0.5},},mat_val_z[X_NUM][Y_NUM] = {0},init_tuvw[4] = {1,2,1,2},mat_crs[K][K] = {0};FILE *p;int main()//主程序入口{int i, j, x, y, kmin, tmp = 0;double tmpval;int getval_z(double, double, int, int);int leasquare();void result_out(int);if(OUTPUTMODE){p = fopen("c:\\Result.txt", "w+");fprintf(p, "计算结果:\n");fclose(p);}for(i = 0; i < X_NUM; i++)for(j = 0; j < Y_NUM; j++) tmp+= getval_z(0.08 * i,0.5 + 0.05 * j, i, j); if(!tmp) printf("迭代求解z=f(x,y) 完毕。
《数值分析与计算方法》习题.doc
第1章数值计算方法与误差1.将3.141, 3.14, 3.15, 22/7分别作为7:的近似值,试确定它们各有几位有效数字,并确定其相对误差限。
解:记X=TT=3.14159265...,X I* =3.141, X2*=3.14, X3*=3.15, X4*=22/7。
1)由|x- xi*|=|K-3.1411=0.00050.005= 101-3/2,所以x「有 3 位有效数字,进而|E「(x」)| W101 *(2 X 3户0.0017,故近似值3.141的相对误差限8i~0.0017o2)由|x・X2*|=|兀-3.14 |=0.001...W0.005=10"3/2,所以X2* 有 3 位有效数字,进而|E「(X2*)| W101 W(2 X 3)^0.0017,故近似值3.14的相对误差限52-0.0017o3)由|X.X3*|=|TC・3.15|=0.008...W0.05=10“2/2,所以X3*有2位有效数字,进而|E「(X3*)|W 101-2/(2X3 户0.017,故近似值3.15的相对误差限&匚0.017。
4)由|x.X4*|=|兀・22/7|=0.001...W0.005=l()7/2,所以xj有3位有效数字,进而|E「(x」)| W101 *(2 X 3)湖.0017,故近似值22/7的相对误差限卒0.0017。
2.计算sinl. 2,问要取几位有效数字才能保证相对误差限不大于0.01%?解:设取n位有效数字,由sinl. 2 = 0. 93…,故叫=9,又由|E「(x*)|= |x—x*|/|x*|W10-"i/2mW0. 01% = IO%解上不等式得n=43.利用4位数学用表求1 — cos2。
的近似值,比较不同方法计算所得结果的误差。
解:用4位数学用表直接计算:1 —cos2、l-0.9994=0.0006,只有1位有效数字改用其他的计算方法:1) 1 -cos2° = sin22°/(l+cos2°) =(0.03490)2/1.99944.092X 10~4,具有 4 位有效数字。
数值分析大作业三四五六七
数值分析大作业三四五六七数值分析大作业三四五六七Document number【SA80SAB-SAA9SYT-SAATC-SA6UT-SA18】大作业三1. 给定初值0x 及容许误差,编制牛顿法解方程f (x )=0的通用程序. 解:Matlab 程序如下:函数m 文件:fu.mfunction Fu=fu(x)Fu=x^3/3-x;end函数m 文件:dfu.mfunction Fu=dfu(x)Fu=x^2-1;end用Newton 法求根的通用程序Newton.mclear;x0=input('请输入初值x0:');ep=input('请输入容许误差:');flag=1;while flag==1x1=x0-fu(x0)/dfu(x0);if abs(x1-x0)<ep< p="">flag=0;endx0=x1;endfprintf('方程的一个近似解为:%f\n',x0);寻找最大δ值的程序:Find.mcleareps=input('请输入搜索精度:');ep=input('请输入容许误差:');flag=1;k=0;x0=0;while flag==1sigma=k*eps;x0=sigma;k=k+1;m=0;flag1=1;while flag1==1 && m<=10^3x1=x0-fu(x0)/dfu(x0);if abs(x1-x0)endm=m+1;x0=x1;endif flag1==1||abs(x0)>=epflag=0;endendfprintf('最大的sigma 值为:%f\n',sigma);2.求下列方程的非零根5130.6651()ln 05130.665114000.0918x x f x x +??=-= ?-解:Matlab 程序为:(1)主程序clearclcformat longx0=765;N=100;errorlim=10^(-5);x=x0-f(x0)/subs(df(),x0);n=1;while n<n< p="">x=x0-f(x0)/subs(df(),x0);if abs(x-x0)>errorlimn=n+1;elsebreak;endx0=x;enddisp(['迭代次数: n=',num2str(n)])disp(['所求非零根: 正根x1=',num2str(x),' 负根x2=',num2str(-x)])(2)子函数非线性函数ffunction y=f(x)y=log((513+0.6651*x)/(513-0.6651*x))-x/(1400*0.0918);end(3)子函数非线性函数的一阶导数dffunction y=df()syms x1y=log((513+0.6651*x1)/(513-0.6651*x1))-x1/(1400*0.0918);y=diff(y);end运行结果如下:迭代次数: n=5所求非零根: 正根x1=767.3861 负根x2=-767.3861大作业四试编写MATLAB 函数实现Newton 插值,要求能输出插值多项式. 对函数21()14f x x=+在区间[-5,5]上实现10次多项式插值.分析:(1)输出插值多项式。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2016 –2017秋季学期数值分析与算法课程作业
第三章最佳逼近
1、选取常数 a ,使
|x3−ax|
max
0≤x≤1
达到极小,又问这个解是否唯一?
2、求 f(x)=sinx 在[0,π/2]上的最佳一次逼近多项式,并估计误差。
3、求 f(x)=x4+3x3−1 在区间[0,1]上的三次最佳一致逼近多项式。
x,在[−1,1]上按勒让德多项式展开求三次最佳平方逼近多项式。
4、 f(x)=sinπ
2
5、分别求e|x|在[−1,1]上的(1)≤1次的最佳一致逼近多项式;(2)≤2次的最佳一致逼近多项式;(3)≤3次的最佳一致逼近多项式。
如果求解过程需要求解超越方程,不需求出具体数值。
6、求[0,1]上与√x偏差最小的首项系数为1的一次多项式。