计算方法实验报告习题2(浙大版)
- 格式:doc
- 大小:156.50 KB
- 文档页数:9
计算方法实验报告计算方法实验报告概述:计算方法是一门研究如何用计算机解决数学问题的学科。
在本次实验中,我们将学习和应用几种常见的计算方法,包括数值逼近、插值、数值积分和常微分方程求解。
通过实验,我们将深入了解这些方法的原理、应用场景以及其在计算机科学和工程领域的重要性。
数值逼近:数值逼近是一种通过使用近似值来计算复杂函数的方法。
在实验中,我们通过使用泰勒级数展开和牛顿迭代法等数值逼近技术,来计算函数的近似值。
这些方法在科学计算和工程领域中广泛应用,例如在信号处理、图像处理和优化问题中。
插值:插值是一种通过已知数据点来估算未知数据点的方法。
在实验中,我们将学习和应用拉格朗日插值和牛顿插值等方法,以及使用这些方法来构造函数的近似曲线。
插值技术在数据分析、图像处理和计算机图形学等领域中具有重要的应用价值。
数值积分:数值积分是一种通过将函数曲线划分为小矩形或梯形来估算函数的积分值的方法。
在实验中,我们将学习和应用矩形法和梯形法等数值积分技术,以及使用这些方法来计算函数的近似积分值。
数值积分在物理学、金融学和统计学等领域中被广泛使用。
常微分方程求解:常微分方程求解是一种通过数值方法来求解微分方程的方法。
在实验中,我们将学习和应用欧拉法和龙格-库塔法等常微分方程求解技术,以及使用这些方法来求解一些常见的微分方程。
常微分方程求解在物理学、生物学和工程学等领域中具有广泛的应用。
实验结果:通过实验,我们成功地应用了数值逼近、插值、数值积分和常微分方程求解等计算方法。
我们得到了准确的结果,并且在不同的应用场景中验证了这些方法的有效性和可靠性。
这些实验结果将对我们进一步理解和应用计算方法提供重要的指导和支持。
结论:计算方法是计算机科学和工程领域中的重要学科,它提供了解决复杂数学问题的有效工具和方法。
通过本次实验,我们深入了解了数值逼近、插值、数值积分和常微分方程求解等计算方法的原理和应用。
这些方法在科学研究、工程设计和数据分析等领域中具有广泛的应用价值。
计算方法课程上机实验二姓名 彭鑫 学号 2704302012 得分实验地点: 科研楼机房 学时: 指导教师: 李浩 时间:1. 实验目的掌握高斯消去法的基本思路和迭代步骤;培养编程与上机调试能力。
2. 实验内容利用列主元高斯消去法解方程组1231231230.101 2.304 3.555 1.1831.347 3.712 4.623 2.1372.835 1.072 5.643 3.035x x x x x x x x x ++=⎧⎪-++=⎨⎪-++=⎩要求给出相关理论基础和算法描述。
3. 算法介绍或方法基础高斯消去法对于一般方程组,通过同解变换将其化为上三角方程组这种特形式,然后进行求解.4. 程序function X=backsub(A,B)n=length(B);X=zeros(n,1);X(n)=B(n)/A(n,n);for k=n-1:-1:1X(k)=(B(k)-A(k,k+1:n)*X(k+1:n))/A(k,k);endfunction X=uptrbk(A,B)[N N]=size(A);C=zeros(1,N+1);Aug=[A B];for p=1:N-1[Y,j]=max(abs(Aug(p:N,p)));C=Aug(p,:);Aug(p,:)=Aug(j+p-1,:);Aug(j+p-1,:)=C;if Aug(p,p)==0breakendfor k=p+1:Nm=Aug(k,p)/Aug(p,p);Aug(k,p:N+1)=Aug(k,p:N+1)-m*Aug(p,p:N+1);endendAug;X=backsub(Aug(1:N,1:N),Aug(:,N+1));5. 实验结果X=uptrbk(A,B)X =-0.39820.01380.33516. 结果分析与解释从以上的结果可以知道1230.3982,0.0138,0.3351x x x =-==,高斯消去法计算量小,速度快,相比其他常规方法更有优势。
计算方法A上机实验报告姓名:苏福班级:硕4020 学号:3114161019一、上机练习目的1)复习和巩固数值计算方法的基本数学模型,全面掌握运用计算机进行数值计算的具体过程及相关问题。
2)利用计算机语言独立编写、调试数值计算方法程序,培养学生利用计算机和所学理论知识分析解决实际问题的能力。
二、上机练习任务1)利用计算机语言编写并调试一系列数值方法计算通用程序,并能正确计算给定题目,掌握调试技能。
2)掌握文件使用编程技能,如文件的各类操作,数据格式设计、通用程序运行过程中文件输入输出运行方式设计等。
3)写出上机练习报告。
三、上机题目1. 共轭梯度法求解线性方程组。
(第三章)2. 三次样条插值(第四章)3. 龙贝格积分(第六章)4. 四阶龙格-库塔法求解常微分方程的初值问题四、上机报告题目1:共轭梯度法求解线性方程组1.算法原理共轭梯度法是把求解线性方程组的问题转化为求解一个与之等价的二次函数极小值的问题。
从任意给定的初始点出发,沿一组关于矩阵A共轭的方向进行线性搜索,在无舍入误差的假定下,最多迭代n 次(其中n 为矩阵A 的阶数),就可求得二次函数的极小值,也就求得了线性方程组Ax b =的解。
定理:设A 是n 阶对称正定矩阵,则x *是方程组Ax b =的解得充分必要条件是x *是二次函数1()2TT f x x Ax b x =-的极小点,即 ()()min nx R Ax b f x f x **∈=⇔=共轭梯度法的计算公式:(0)(0)(0)()()()()(1)()()(1)(1)(1)()()()(1)(1)()k T k k k T k k k k k k k k T k k k T k k k k k d r b Ax r d d Ad xx d r b Ax r Ad d Ad d r d ααββ++++++⎧==-⎪⎪=⎪⎪=+⎪⎨=-⎪⎪⎪=-⎪⎪=+⎩2. 程序框图(1)编写共轭梯度法求解对称正定矩阵的线性方程组见附录(myge.m):function x=myge(A,b)输入对称正定矩阵及对应的列向量,初始向量设为0,精度取为810 。
《计算方法》实验报告实验题目实验报告1:非线性方程组的求解···················P1~2实验报告2:线性方程组解法·······················P3~4 实验报告3:Lagrange 插值多项式··················P5~7姓名:学号:班级:指导老师:时间:专业 序号 日期实验报告1:非线性方程组的求解【实验目的】1.用MATLAB 来实践进行牛顿法的变形,即对牛顿法进行了修正,使其应用更为方便,掌握用MATLAB 运用割线法求解非线性方程组。
2.运用MATLAB 进行隐函数作图。
【实验内容】[方法] 设a,b 为迭代初值,求两点(a,f(a)) 与 (b,f(b)) 的连线(割线)与 x 轴的交点记为 c ,再把迭代初值换成 b,c,重复计算.[要求] 把下面程序复制为新的 M-文件,去掉开头的 %再把 '?' 部分改写正确就是一个完整的程序,找前面一个例子试算【解】在牛顿迭代公式中用差商代替导数。
带入初值(a,f(a)),(b,f(b)),两点的连线与x 轴的交点作为c ,再把迭代初值换为b ,c ,重复计算。
【计算机求解】以y= x-exp(-x)为例初值a=0,b=1,误差不超过1.0*10^(-5)进行计算。
计算方法实验报告(四)方程和方程组的迭代解法一、实验问题利用简单迭代法,两种加速技术,牛顿法,改进牛顿法,弦割法求解习题5-1,5-2,5-3中的一题,并尽可能准确。
选取5-3:求x 3−x 2−1=0在x=1.5附近的根。
二、问题的分析(描述算法的步骤等)(1)简单迭代法算法:给定初始近似值p 0,求p =φ(p )的解。
Step 1 令i=0;Step 2 令p i+1=φ(p i )(计算p i+1);Step 3 如果p i+1=p i ,则迭代终止,否则重复Step 2。
(2)Aitken 加速法算法Step 1 令k=0,利用简单迭代算法x k+1=φ(x k )得到迭代序列x k ;Step 2 令x k ∗=x k -(x k −x k−1)2x k −2x k−1+x k−2(计算x k ∗得到一个新的序列x k ∗,其中k=0,1,2…);Step 3 如果x k+1∗=x k ∗,则迭代终止,否则重复Step 2。
(3)插值加速法算法Step 1 令k=0,利用简单迭代算法x k+1=φ(x k )得到迭代序列x k ;Step 2 令x k ∗=x k +(x k −x k−1)(x k −x k+1)x k−1−2x k +x k+1(计算x k ∗得到一个新的序列x k ∗,其中k=1,2,3…);Step 3 如果x k+1∗=x k ∗,则迭代终止,否则重复Step 2。
(4)牛顿法算法Step 1给定初始近似值x 0;Step 2令x k+1=x k −f (x k)f (x k ),其中k ∈N,计算得到x k 的 序列;Step 3如果x k+1=x k ,则迭代终止,否则重复Step 2。
(5)改进牛顿法的算法Step 1给定初始近似值x 0;Step 2令x k+1=x k −k ′(k )′(k )√′2(k )"(k )(k ) ,其中k ∈N,迭代计算得到x k 的 序列;Step 3如果x k+1=x k ,则迭代终止,否则重复Step 2。
计算方法与实习实验报告目录实习题1-1 (2)实习题2-1(1) (3)实习题3-2 (4)实习题3-5(1) (6)实习题4-2 (9)实习题5-1 (10)实习题6 (13)实习题1-1用2种不同的顺序计算644834.11000012≈∑=-n n,分析其误差的变化。
算法1:从n=1开始累加,n 逐步增大,直至n=10000 算法2:从n=10000开始累加,n 逐步减小,直至n=1 算法1的Matlab 程序如下: m=0;for n=1:10000 yl=1/(n.*n); m=m+yl; endformat long m算法1的输出结果m=1.644834071848065算法2的Matlab 程序如下: m=0;for n=10000:-1:1 yl=1/(n.*n); m=m+yl; endformat long m算法2的输出结果m=1.644834071848060结论分析:由运行结果可以发现,当从n=1开始计算时,算出结果为1.644834071848065,而当从n=10000开始计算时,算出结果为1.644834071848060.与题中所给结果相比,可知从n=10000开始计算时,所得近似结果更接近真实值。
原因是从n=1开始算时,由于被累加的数是越来越小的,而且开始的几个数比后面的数大得多,而浮点数保留位数有限,因此在累加过程中出现了大数吃小数的现象,导致误差较大。
而从n=10000开始累加就很好地避免以上问题,从而能够更接近精确值。
实习题2-1(1)用牛顿法求方程02=-x e x 的根算法:给定初始值0x ,ε为根的容许误差,η为)(x f 的容许误差,N 为迭代次数的容许值。
①如果0)(0'=x f 或迭代次数大于N ,则算法失败,结束;否则执行②。
②计算)()(0'001x f x f x x -=。
③若01x x -<ε或)(1x f <η,则输出1x ,程序结束;否则执行④。
学号:3100300038 姓名: 专业:作业1:用列主元高斯消去法和列主元三角分解法解P227页第3题1. 列主元高斯消去法目的:用高斯消去法解Ax=b 时,其中设A 为非奇异矩阵,可能出现a kk =0 情况,这时必须进行带行交换的高斯消去法。
但在实际计算中即使0)( k kk a 但其绝对值很小时,用)(k kk a 作除数,会导致中间结果矩阵A(k)元素数量级严重增长和舍入误差的扩散,使得最后的计算结果不可靠。
列主元高斯消去法可以难过一般高斯法的这些缺点。
一、列主元高斯消去法解方程的Matlab 程序如下:function a=columneli(a) %对矩阵a 进行列主元消去 [m n]=size(a); %求取a 的行数m 和列数n for i=1:m-1[maxEle,pos]=max(abs(a(i:end,i)));maxRow=pos+i-1; %在每次变换前寻找绝对值最大主所在列maxRow if a(maxRow,i)==0disp('矩阵为奇异矩阵')return %对于非奇异矩阵,在程序中给予提示,结束程序 end if(maxRow~=i)temp=a(maxRow,:);a(maxRow,:)=a(i,:);a(i,:)=temp;end %与列主元绝对值最大的行进行行交换 for j=i+1:ma(j,i)=a(j,i)/a(i,i); %求取第j 列主元 for k=i+1:na(j,k)=a(j,k)-a(j,i)*a(i,k); %对第j 列主元进行行变换 end end endfunction x=elisolve(a) %利用列主元消去的结果求方程的解,a 为方程组的增广矩阵 a=columneli(a); [m,n]=size(a);x=zeros(m,1); for i=m:-1:1x(i)=(a(i,n)-a(i,i:m)*x(i:m))/a(i,i); end二、列主元高斯消去法解P227页第3题:⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-321321212111430x x x 答案:x=[7/6 -1/3 1/2]T三、程序流程图如下:条件图框里面没有条件式,因为i 是从m 到1,所以i=1后运行下面的命令,直接输出结果。
《计算方法》实验报告专业班级:学生姓名:学生学号:实验名称:实验一:非线性方程求根迭代法实验二:求解线性方程组(1) 实验三:求解线性方程组(2)实验四:数值积分实验五:数值微分实验一:一、实验名称非线性方程求根迭代法二、实验目的(1)熟悉非线性方程求根简单迭代法,牛顿迭代及牛顿下山法 (2)能编程实现简单迭代法,牛顿迭代及牛顿下山法 (3)认识选择迭代格式的重要性 (4) 对迭代速度建立感性的认识;分析实验结果体会初值对迭代的影响三、实验内容用牛顿下山法解方程013=--x x (初值为0.6)输入:初值,误差限,迭代最大次数,下山最大次数输出:近似根各步下山因子四、基本原理(计算公式)求非线性方程组的解是科学计算常遇到的问题,有很多实际背景.各种算法层出不穷,其中迭代是主流算法。
只有建立有效的迭代格式,迭代数列才可以收敛于所求的根。
因此设计算法之前,对于一般迭代进行收敛性的判断是至关重要的。
牛顿法也叫切线法,是迭代算法中典型方法,只要初值选取适当,在单根附近,牛顿法收敛速度很快,初值对于牛顿迭代 至关重要。
当初值选取不当可以采用牛顿下山算法进行纠正。
一般迭代:)(1k k x x φ=+ 0)()(=⇔=x f x x φ 牛顿公式:)()(1k k k k x f x f x x '-=+ 牛顿下山公式:)()(1k k k k x f x f x x '-=+λ下山因子 ,,,,322121211=λ 下山条件|)(||)(|1k k x f x f <+五、算法设计与实现(流程图)牛顿下山算法见流程图:六、个人理解:这个问题的关键之处不是公式的复杂性,而是如何对算法的实现提供一个条理清晰且方法合理的if 嵌套,这个算法中运用了许多判断,如何进行其判断结果的返回将是解决这个问题的重中之重。
把这个问题弄清楚,再结合本身并不复杂的算法公式,这个问题就可解了。
这个程序开始花费了我很长时间搞清楚如何进行判断返回的运算来解决if 语句嵌套。
计算方法第二版课后练习题含答案前言本文将为大家提供计算方法第二版课后练习题的答案,旨在帮助读者更好地学习和掌握计算方法的知识。
本文全部内容均为作者整理,尽可能保证每一题的答案正确性。
读者可以借助本文的答案,检验自己的练习成果,加强对计算方法知识的理解和掌握程度。
同时,读者也应该注意切勿直接复制答案,本文的答案仅供参考,希望读者能够通过自己的思考和探索,获得更深层次的学习感悟。
第一章引论1.1 计算方法的基本概念和思想练习题 1写出计算方法的三要素,并分别简要解释。
答案计算方法的三要素为:模型、算法、误差分析。
•模型:计算方法所涉及的实际问题所对应的数学模型,是解决问题的基础;•算法:根据模型,构造相应的计算程序,即算法;•误差分析:计算结果与实际应用中所需的精度之间的差异,称为误差。
误差分析是对计算结果质量的保障。
1.2 算法的误差练习题 2写出二分法算法,并解释其误差。
答案算法:function binarySearch(a, target) {let low = 0;let high = a.length - 1;while (low <= high) {let midIndex = Math.floor((low + high) / 2);let midValue = a[midIndex];if (midValue === target) {return midIndex;} else if (midValue < target) {low = midIndex + 1;} else {high = midIndex - 1;}}return -1;}误差:二分法算法的误差上界为O(2−k),其中k为迭代次数。
在二分法被成功应用时,k取决于与目标值x的距离,即 $k=\\log _{2}(\\frac{b-a}{\\epsilon})$,其中[a,b]是区间,$\\epsilon$ 是目标值的精度。
实验报告2:解线性方程组的直接法姓名:杜娟学号:08012324 班级:勘查08-3班一.上机题目用高斯列主元消去法和LU分解法解线性方程组二.目的要求掌握用高斯列主元消去法和LU分解法设计程序,从而实现解线性方程组。
三.方法原理1.如果在一列中选取按模最大的元素,将其调到主干方程位置再做消元,则称为列主元消元法。
调换方程组的次序是为了使运算中做分母量的绝对值尽量地大,减少舍入误差的影响。
2.由高斯消元法得到启发,对消元的过程相当于将分解为一个上三角矩阵和一个下三角矩阵的过程。
如果直接分解得到和,。
这时方程化为,令,由解出;再由,解出。
这就是直接分解法。
四.算法步骤列主元消元法算法1.输入:方程组阶数n,方程组系数矩阵A和常数向量项b。
2.for k=1 to n-1 //选主元的消元过程{//选择{s=|a kk|,m=kfor u=k+1 to nif |a uk|>s then{m=u,s=| a uk|}for v=k to n //交换第k行和第m行{t=a kv; a kv=a mv; a mv=t}t=b k;b k=b m;b m=t}for i=k+1 to n{t=a ik/a kkfor j=k+1 to n{a ij=a ij-t*a kj}b i=b i-t*a kj}}3.for i:=n TO 1 //回代求解4.输出方程组的解 x i, i=1,2,…,n。
如果对于第k步,从k行至n行和从k列至n列中选取按模最大的,对第行和第行交换,对第列和第v列交换,这就是全主元消元法。
在k列和第v列交换时,还要记录下v的序号,以便恢复未知量xk和xv的位置。
LU分解法1计算的第一行元素要计算,则列出式(3.20)等号两边的第1行第1列元素的关系式:故。
一般地,由的第一行元素的关系式得到2计算的第一列元素要计算,则列出式(3.20)等号两边的第2行第1列元素的关系式:故。
计算方法实验报告
实验名称: 实验2 列主元素消去法解方程组 1 引言
工程实际问题中,线型方程的系数矩阵一般为低阶稠密矩阵和大型稀疏矩阵。
用高斯消
去法解Ax =b 时,可能出现)
(k kk a 很小,用作除数会导致中间结果矩阵元素数量级严重增长和舍入误差的扩散,使结果不可靠;采用选主元素的三角分解法可以避免此类问题。
高斯消去法的消去过程,实质上是将A 分解为两个三角矩阵的乘积A =LU ,并求解Ly =b 的过程。
回带过程就是求解上三角方程组Ux =y 。
所以在实际的运算中,矩阵L 和U 可以直接计算出,而不需要任何中间步骤,从而在计算过程中将高斯消去法的步骤进行了进一步的简略,大大提高了运算速度,这就是三角分解法。
采用选主元的方式与列主元高斯消去法一样,也是为了避免除数过小,从而保证了计算的精确度。
2 实验目的和要求
通过列主元素消去法求解线性方程组,实现P A =LU 。
要求计算解x ,L ,U ,整形数组IP (i ),(i =1,2,…,)(记录主行信息)。
3 算法原理与流程图
(1)原理
将A 分解为两个三角矩阵的乘积A =LU 。
对方程组的增广矩阵[]b A A ,=经过k-1步分解后,可变成如下形式:
⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦
⎤⎢⎢⎢⎢⎢⎢
⎢⎢⎢
⎢⎢⎢⎣⎡→-------------n nn
nj
nk
k n n n i in ij ik k i i i k kn kj kk k k k k k n k j k k k k k k k n j k k n j k k b a a a l l l b a a a l l l b a a a l l l y u u u u l l y u u u u u l y u u u u u u A
1
,21
1,21
1,21
1,1,1,11,12
,11,122221,2222111,1,11,11211
第k 步分解,为了避免用绝对值很小的数
kk
u 作除数,引进量
1
1
11 (,1,,;1,2,,) ()/ (1,2,,;1,2,,)k kj kj km mj m k ik ik im mk kk m u a l u j k k n k n l a l u u i k k n k n -=-=⎧
=-=+=⎪⎪⎨⎪=-=++=⎪⎩∑∑1
1
(,1,
,)
k i ik im mk
m s a l u i k k n -==-=+∑,于是有
kk u =k
s 。
如
果
max t i
k i n
s s ≤≤=,则将矩阵的第t 行与第k 行元素互换,将(i,j )位置的新元素仍记为
jj
l 或
jj
a ,
专业:电气工程及其自动化
姓名: 李X
然后再做第k 步分解,这时
()/ 1,2,,)
1 (1,2,
,),
kk k k t ik i k ik u s s s l s s i k k n l i k k n ===++≤=++即交换前的,(且
(2)流程图
4程序代码及注释
5 算例分析
解方程组
⎥⎥
⎥
⎥
⎥⎥
⎥
⎥
⎥⎦
⎤
⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣
⎡282217131087123456711234561112345111123411111231111112111
11117654321x x x x x x x
IP(i)。
6讨论与结论
(1)程序lzylu.m具有以下特点:
1.当系数矩阵是奇异矩阵时输出提示错误信息,停止运算
2.当系数矩阵不是方阵时,提示错误并停止运算
3.能够输出变换后的L,U,P矩阵,并记录主行变换信息(2
码并未在本报告内写出。
a.比较一
但正因如此,导致后面没有输出L和U矩阵;此外,用max函数求第一列的最大值,比for 循环要快,但其他列并没有求最大值,而是比较了对角元素和eps的大小关系,决定是否换行,所以理论上此方法未完全达到选取列主元素的功能。
b.比较二
PLU1
要比较长,若将第二个程序中第二行PLU1的调用改为MATLAB自带函数lu(同样可以完成此功能),得到PLU3,则耗时比较短。
总结:MATLAB中编写函数需要规范调用格式,如[x,l,u,p,ip]=lzylu(A,b)一共输出五个量,在调用时必须全部写出,若不写则只能输出x结果,得不得其他结果。
本题目需要记录主行交换的信息,输出数列IP,因此直接调用lu函数不合适。
参考文献
[1] 易大义,沈云宝,李有法. 计算方法(第2版),浙江大学出版社. pp.175-181.
[2] 廖波. 数值计算与最优化原理——MA TLAB实现,北京邮电大学出版社。