数值分析上机实践

数值分析上机实践

数值分析是一门研究数值计算方法和算法的学科,它在工程科学、自然科学和计算机科学等领域具有广泛的应用。数值分析的主要任务是根据具体问题,设计并实施一种快速、高精度的数值计算方法,以获得解决问题所需的数值结果。本文将介绍数值分析的相关内容,并结合具体案例进行上机实践。

在数值分析中,数学模型是问题求解的基础。首先,需要根据实际问题建立数学模型,并将其转化为适合计算的形式。比如,在物理领域中,常见的数学模型包括微分方程、积分方程、代数方程等。其次,需要选择适当的数值方法对模型进行离散化。离散化将数学模型中的连续变量转化为有限个离散点上的近似值,从而降低计算复杂度。常见的数值方法包括有限差分法、有限元法、拉格朗日法等。

具体的数值分析方法包括求解非线性方程、求解线性方程、插值和逼近、数值积分、求解常微分方程以及偏微分方程等。下面将以数值求解非线性方程为例进行上机实践。

非线性方程的数值求解是数值分析中的经典问题。假设我们要求解方程f(x)=0,其中f(x)是一个非线性函数。一种常用的迭代法是牛顿迭代法,其迭代公式为:

x_{n+1} = x_n - \frac{f(x_n)}{f'(x_n)}

其中x_n是第n次迭代的近似解,f'(x_n)是f(x)在x_n处的导数。

下面是使用Python实现牛顿迭代法求解非线性方程的代码示例:

```python

def newton_method(f, df, x0, tol, max_iter): '''

f:非线性方程f(x)=0

df: f(x)的导数

x0:初始近似解

tol: 精度要求

max_iter: 最大迭代次数

'''

for i in range(max_iter):

x1 = x0 - f(x0)/df(x0)

if abs(x1-x0) < tol:

break

x0=x1

return x0

#定义一个非线性方程和其导数

def f(x):

return x**3 - 2*x - 5

def df(x):

return 3*x**2 - 2

#设置初始近似解、精度要求和最大迭代次数

x0=2

tol = 1e-6

max_iter = 100

#调用牛顿迭代法函数求解非线性方程

approx_root = newton_method(f, df, x0, tol, max_iter)

```

上述代码中,首先定义了一个非线性方程f(x)和其导数df(x)。然后使用牛顿迭代法函数newton_method对非线性方程进行求解。最后得到近似解approx_root。

通过上述实践,我们可以看到数值分析的具体应用,以及如何使用数值方法解决实际问题。数值分析不仅仅是理论的研究,更是实践的科学。在实际应用中,我们需要不断地优化和改进数值方法,以提高计算结果的精度和效率。随着计算机技术的发展,数值分析在解决实际问题上的应用将会越来越广泛。

数值分析上机实践题12-2013

数值分析上机实践题 第 8次上机题目(解常微分方程初值问题的Euler 法) 第一组: 对初值问题 ? ??=≤≤='1)0(10,y x y y , 使用显式Euler 公式求近似解,并与准确解x e x y =)(比较精度;步长h 自己选定。 并画图比较结果。 第二组: 对初值问题 ? ??=≤≤-='0)0(10,12y x x y , 使用显式Euler 公式求近似解,并与准确解x x x y -=2)(比较精度;步长h 自己选定。并画图比较结果。 第三组: 对初值问题 ? ??=≤≤++-='1)0(10,1y x x y y , 使用显式Euler 公式求近似解,并与准确解x e x y x +=-)(比较精度;步长h 自己选定。并画图比较结果。 第四组: 对初值问题 ?? ???=≤≤+='0)1(21,22y x e x x y y x , 使用显式Euler 公式求近似解,并与准确解)()(2e e x x y x -=比较精度;步长h 自己选定。并画图比较结果。 第五组: 对初值问题 ?? ???-=≤≤--='1)1(21,122y x y x y x y , 使用显式Euler 公式求近似解,并与准确解x x y 1)(-=比较精度;步长h 自己选

定。并画图比较结果。 %显式Euler 方法求微分方程数值解 clear clc h=0.2; x=0:h:2; n=length(x); y(1)=-1; for i=1:n-1 y(i+1)=y(i)+h*(x(i)^(-2)-y(i)*x(i)^(-1)-y(i)^2) end y f = Inline function: f(x,y) = y-x^2+1 y = -1.0000 -1.0040 -1.0257 -1.0865 -1.2128 -1.4364 -1.7964 -2.3404 -3.1265 -4.2255 -5.7239 yyy = 0.5000 0.8293 1.2141 1.6489 2.1272 2.6409 3.1799 3.7324 4.2835 4.8152 5.3055 >> y(i+1); plot(x,y,'r');grid >> y(i+1); plot(x,y,'r');grid >> hold on >> t=1:0.01:2; >> z=-1./t; >> plot(t,z,'b');grid 第六组: 对初值问题 ? ??=≤≤++-='1)0(50,1y x x y y , 使用显式Euler 公式求求y(5)的近似值,分别用步长h=0.2,h=0.1,h=0.05,并与准确解x e x y x +=-)(比较精度;并画图比较结果。

数值分析上机实验报告

实验报告一 题目: (绪论) 非线性方程求解及误差估计 摘要:非线性方程的解析解通常很难给出,因此线性方程的数值解法就尤为重要。本实验采用两种常见的求解方法二分法、Newton 法和改进的Newton 法。可以节省计算机的计算时间,还能减小不必要的误差。 前言:(目的和意义) 掌握二分法与Newton 法的基本原理、应用以及熟练掌握用MATLAB 求函数积分 数学原理: (1)函数的调用格式:quadl(filename,a,b,tol,trace) 其中filename 是调用函数名,a 和b 分别为定积分的下限和上限。用来控制积分精度。 (2)秦九韶算法: S n =a n S k =xS k+1+a k (k=n-1,n-2,...,0), P n (x)=S 0 程序设计: 例1.1 计算积分 d e x x x 1 10 利用MATLAB ,下面给出主程序 >>g=inline('x.^10.*exp(x-1)'); %定义一个语句函数g(x)=exp(x^10*exp(x-1)) I=quadl(g,0,1) I = 0.0098 例1.9 秦九韶算法 a 0=3,

a k=2a k-1+3, Pn(x)=a n x^n+a n-1x^(n-1)+...+a1x+a0 求I1=P100(0.5),I2=P150(13) >>x=input('x='); n=input('n='); a=3; for i=1:n a=2*a+3; end s=z; b=(a-3)/2; for m=1:100 s=x*s+b; b=(b-3)/2; end disp(s); >>x=0.5 n=100 600.0000 >>x=3 n=100 4.7039e+078 结果分析和讨论: 结论: 对于二分法,只要能够保证在给定的区间内有根,使能够收敛的,当时收敛的速度和给定的区间有关,二且总体上来说速度比较慢。Newton法,收敛速度要比二分法快,但是最终其收敛的结果与初值的选取有关,初值不同,收敛的结果也可能不一样,也就是结果可能不时预期需要得结果。改进的Newton法求解重根问题时,如果初值不当,可能会不收敛,这一点非常重要,当然初值合适,相同情况下其速度要比Newton法快得多。

数值分析上机实验

目录 1 绪论 (1) 2 实验题目(一) (2) 2.1 题目要求 (2) 2.2 NEWTON插值多项式 (3) 2.3 数据分析 (4) 2.3.1 NEWTON插值多项式数据分析 (4) 2.3.2 NEWTON插值多项式数据分析 (6) 2.4 问答题 (6) 2.5 总结 (7) 3 实验题目(二) (8) 3.1 题目要求 (8) 3.2 高斯-塞德尔迭代法 (8) 3.3 高斯-塞德尔改进法—松弛法 (9) 3.4 松弛法的程序设计与分析 (9) 3.4.1 算法实现 (9) 3.4.2 运算结果 (9) 3.4.3 数据分析 (11) 4 实验题目(三) (13) 4.1 题目要求 (13) 4.2 RUNGE-KUTTA 4阶算法 (13) 4.3 RUNGE-KUTTA 4阶算法运算结果及数值分析 (14) 总结 (16) 附录A (17)

1绪论 数值分析是计算数学的一个主要部分,它主要研究各类数学问题的数值解法,以及分析所用数值解法在理论上的合理性。实际工程中的数学问题非常复杂,所以往往需要借助计算机进行计算。运用数值分析解决问题的过程:分析实际问题,构建数学模型,运用数值计算方法,进行程序设计,最后上机计算求出结果。 数值分析这门学科具有面向计算机、可靠的理论分析、好的计算复杂性、数值实验、对算法进行误差分析等特点。 本学期开设了数值分析课程,该课程讲授了数值分析绪论、非线性方程的求解、线性方程组的直接接法、线性方程组的迭代法、插值法、函数逼近与曲线拟合、数值积分和数值微分、常微分方程初值问题的数值解法等内容。其为我们解决实际数学问题提供了理论基础,同时我们也发现课程中很多问题的求解必须借助计算机运算,人工计算量太大甚至无法操作。所以学好数值分析的关键是要加强上机操作,即利用计算机程序语言实现数值分析的算法。本报告就是基于此目的完成的。 本上机实验是通过用计算机来解答数值分析问题的过程,所用的计算工具是比较成熟的数学软件MATLAB。MATLAB是Matrix Laboratory的缩写,是以矩阵为基础的交互式程序计算语言。MATLAB是一款具有强大的矩阵运算、数据处理和图形显示功能的软件,其输出结果可视化,编程效率极高,用极少的代码即可实现复杂的运行,因此它使工程技术人员摆脱了繁琐的程序代码,以便快速地验证自己的模型和算法。其主要特点包括:强大的数值运算功能;先进的资料视觉化功能高阶但简单的程序环境;开方及可延展的构架;丰富的程式工具箱。 在科学研究和工程计算领域经常会遇到一些非常复杂的计算问题,利用计算器或手工计算是相当困难或无法实现的,只能借助计算机编程来实现。MATLAB将高性能的数值计算和可视化的图形工具集成在一起,提供了大量的内置函数,使其在科学计算领域具有独特的优势。 最后感谢数值分析课程任课教师赵海良老师的悉心指导!

硕士研究生数值分析上机实验

数值分析上机实验 1、已知A 与b 12.38412 2.115237 -1.061074 1.112336 -0.1135840.718719 1.742382 3.067813 -2.031743 2.11523719.141823 -3.125432 -1.012345 2.189736 1.563849 -0.784165 1.112348 3.123124 -1.061074 -3.125A =43215.567914 3.123848 2.031454 1.836742-1.056781 0.336993 -1.010103 1.112336 -1.012345 3.12384827.108437 4.101011-3.741856 2.101023 -0.71828 -0.037585 -0.113584 2.189736 2.031454 4.10101119.8979180.431637- 3.111223 2.121314 1.784317 0.718719 1.563849 1.836742 -3.741856 0.4316379.789365-0.103458 -1.103456 0.238417 1.742382 -0.784165 -1.056781 2.101023-3.111223-0.1034581 4.7138465 3.123789 -2.213474 3.067813 1.112348 0.336993-0.71828 2.121314-1.103456 3.12378930.719334 4.446782 -2.031743 3.123124 -1.010103-0.037585 1.7843170.238417-2.213474 4.44678240.00001[ 2.1874369 33.992318 -2 5.173417 0.84671695 1.784317 -8 6.612343 1.1101230 4.719345 -5.6784392]T B ????? ? ?? ? ? ???? ? ? ???? ? ? ????? ?=(2)用超松弛法求解Bx=b (取松弛因子ω=1.4,x (0) =0,迭代9次)。 (3)用列主元素消去法求解Bx=b 。 解:(2)用超松弛法求解Bx=b : (一)、超松弛法的理论依据为: 对于J 方法或GS 方法有时收敛速度较慢,松弛法针对加快收敛速度提出来的。其基本思想是在GS 方法已求出X (m),X (m-1)的基础上,经过重新组合得到新序列,而此新序列收敛速度加快。组合时用到松弛因子ω,当ω>1时称为超松弛法,当ω>1时,可以加快收敛速度。若A 为对称正定阵,则当松弛因子ω满足0〈ω〈2时,松弛法收敛。本题中ω=1.4。 超松弛法为:x i (m) =(1-ω)x i (m-1) +ω(∑-=1 1 i j b ij x i (m) + ∑ +=n i j 1 x j (m-1)+g i ) (二)、计算程序(C 语言) #include"stdio.h" #include"math.h" main() { int i,j,m; double t=0,s=0,w=1.4,g[9],B[9][9],x[9]={0,0,0,0,0,0,0,0,0}; 给出初始条件和松弛因子 double b[9]={2.1874369,33.992318,-25.173417,0.84671695,1.784317,-86.612343,1.1101230,4.719345,-5.6784392}, A[9][10]={{12.38412 ,2.115237 ,-1.061704,1.112336 ,-0.113584,0.718719 ,1.742382 ,3.067813 ,-2.031743}, {2.115237 ,19.141823,-3.125432,-1.012345,2.189736 ,1.563849 ,-0.784165 ,1.112348 ,3.123124

非线性方程求解数值分析上机实验报告

实验报告一 题目:非线性方程求解 摘要:非线性方程的解析解通常很难给出,因此线性方程的数值解法就尤为重要。本实验采用两种常见的求解方法二分法和Newton法及改进的Newton法。 前言:(目的和意义) 掌握二分法与Newton法的基本原理和应用。 数学原理: 对于一个非线性方程的数值解法很多。在此介绍两种最常见的方法:二分法和Newton 法。 对于二分法,其数学实质就是说对于给定的待求解的方程f(x),其在[a,b]上连续,f(a)f(b)<0,且f(x)在[a,b]内仅有一个实根x*,取区间中点c,若,则c恰为其根,否则根据f(a)f(c)<0是否成立判断根在区间[a,c]和[c,b]中的哪一个,从而得出新区间,仍称为[a,b]。重复运行计算,直至满足精度为止。这就是二分法的计算思想。 Newton法通常预先要给出一个猜测初值x0,然后根据其迭代公式 产生逼近解x*的迭代数列{x k},这就是Newton法的思想。当x0接近x*时收敛很快,但是当x0选择不好时,可能会发散,因此初值的选取很重要。另外,若将该迭代公式改进为 其中r为要求的方程的根的重数,这就是改进的Newton法,当求解已知重数的方程的根时,在同种条件下其收敛速度要比Newton法快的多。 程序设计: 本实验采用Matlab的M文件编写。其中待求解的方程写成function的方式,如下function y=f(x); y=-x*x-sin(x); 写成如上形式即可,下面给出主程序。 二分法源程序: clear %%%给定求解区间 b=1.5; a=0;

%%%误差 R=1; k=0;%迭代次数初值 while (R>5e-6) ; c=(a+b)/2; if f12(a)*f12(c)>0; a=c; else b=c; end R=b-a;%求出误差 k=k+1; end x=c%给出解 Newton法及改进的Newton法源程序: clear %%%% 输入函数 f=input('请输入需要求解函数>>','s') %%%求解f(x)的导数 df=diff(f); %%%改进常数或重根数 miu=2; %%%初始值x0 x0=input('input initial value x0>>'); k=0;%迭代次数 max=100;%最大迭代次数 R=eval(subs(f,'x0','x'));%求解f(x0),以确定初值x0时否就是解 while (abs(R)>1e-8) x1=x0-miu*eval(subs(f,'x0','x'))/eval(subs(df,'x0','x')); R=x1-x0; x0=x1; k=k+1; if (eval(subs(f,'x0','x'))<1e-10); break end if k>max;%如果迭代次数大于给定值,认为迭代不收敛,重新输入初值 ss=input('maybe result is error,choose a new x0,y/n?>>','s');

拉格朗日和牛顿插值法的C 方法实现(数值分析上机实验)

数值分析上机实验 实验一 一.上机题目: 已知: 4 =2,9 =3,16 =4分别用二次Lagrange和Newton插值法求7 的近似值。二.解题方法: 1.lagrange方法: 设x0=4,y0=2,x1=9,y1=3,x2=16,y2=4 代入方程: (x1-X)(x2-X)/(x1-x0)(x2-x0)*y0+(x0-X)(x2-X)/(x0-x1)(x2-x1)*y1+(x1-X)(x0-X)/(x1-x2)(x0-x2)*y2 令X=7 代入方程得 Y=2.62857 2.Newton方法: 设x0=4,y0=2,x1=9,y1=3,x2=16,y2=4 建表 4 2 9 3 0.2 16 4 0.14286 -0.00476 f(x)=f(x0)+f[x0,x1](X-x0)+f[x0,x1,x2](X-x0)(X-x1)(X-x2) 令X=7 代入方程得Y=2.62857 三.算法公式步骤: https://www.360docs.net/doc/de19201690.html,grange方法: 通过公式写出算法并得出最后的值Y: for(b=0;b

double l=1;//保证每次跳出内层循环将L置1 不会将第一项的值带入下一项// for(a=0;a>n;//输入要计算的样例点的个数// int i; double x[100],y[100]; for(i=0;i>x[i]>>y[i];//输入要计算的样例点// }

《数值分析》上机实验报告

数值分析上机实验报告

《数值分析》上机实验报告 1.用Newton 法求方程 X 7-X 4+14=0 在(0.1,1.9)中的近似根(初始近似值取为区间端点,迭代6次或误差小于0.00001)。 1.1 理论依据: 设函数在有限区间[a ,b]上二阶导数存在,且满足条件 {}α?上的惟一解在区间平方收敛于方程所生的迭代序列 迭代过程由则对任意初始近似值达到的一个中使是其中上不变号在区间],[0)(3,2,1,0,) (') ()(],,[x |))(),((|,|,)(|| )(|. 4; 0)(.3],[)(.20 )()(.110......b a x f x k x f x f x x x Newton b a b f a f m ir b a c x f a b c f x f b a x f b f x f k k k k k k ==- ==∈≤-≠>+ 令 )9.1()9.1(0)8(4233642)(0)16(71127)(0)9.1(,0)1.0(,1428)(3 2 2 5 333647>?''<-=-=''<-=-='<>+-=f f x x x x x f x x x x x f f f x x x f 故以1.9为起点 ?? ?? ? ='- =+9.1)()(01x x f x f x x k k k k 如此一次一次的迭代,逼近x 的真实根。当前后两个的差<=ε时,就认为求出了近似的根。本程序用Newton 法求代数方程(最高次数不大于10)在(a,b )区间的根。

1.2 C语言程序原代码: #include #include main() {double x2,f,f1; double x1=1.9; //取初值为1.9 do {x2=x1; f=pow(x2,7)-28*pow(x2,4)+14; f1=7*pow(x2,6)-4*28*pow(x2,3); x1=x2-f/f1;} while(fabs(x1-x2)>=0.00001||x1<0.1); //限制循环次数printf("计算结果:x=%f\n",x1);} 1.3 运行结果: 1.4 MATLAB上机程序 function y=Newton(f,df,x0,eps,M) d=0; for k=1:M if feval(df,x0)==0 d=2;break else x1=x0-feval(f,x0)/feval(df,x0); end e=abs(x1-x0); x0=x1; if e<=eps&&abs(feval(f,x1))<=eps d=1;break end end

数值计算方法上机实习题答案.doc

1.设I n 1 x n dx , 0 5 x ( 1)由递推公式 I n 5I n 11 ,从 I 0的几个近似值出发,计算I 20;n 解:易得: I 0 ln6-ln5=0.1823, 程序为: I=0.182; for n=1:20 I=(-5)*I+1/n; end I 输出结果为: I 20= -3.0666e+010 ( 2)粗糙估计 I 20,用 I n 1 1 I n 1 1 ,计算 I 0; 5 5n 0.0079 1 x 20 1 x 20 0.0095 因为 dx I 20 dx 6 5 所以取 I 20 1 (0.0079 0.0095) 0.0087 2 程序为: I=0.0087; for n=1:20 I=(-1/5)*I+1/(5*n); end I I 0= 0.0083 ( 3)分析结果的可靠性及产生此现象的原因(重点分析原因 )。 首先分析两种递推式的误差;设第一递推式中开始时的误差为E0 I 0 I 0,递推过程的舍入误差不计。并记 E n I n I n,则有 E n 5E n 1 ( 5) n E0。因为 E20 ( 5) 20 E0 I 20,所此递推式不可靠。而在第二种递推式中E0 1 E1 ( 1 )n E n,误差在缩小,5 5 所以此递推式是可靠的。出现以上运行结果的主要原因是在构造递推式过程中,考虑误差是否得到控制,即算法是否数值稳定。 2.求方程e x10x 2 0 的近似根,要求x k 1x k 5 10 4,并比较计算量。 (1)在 [0, 1]上用二分法; 程序: a=0;b=1.0; while abs(b-a)>5*1e-4 c=(b+a)/2;

数值分析上机实践

数值分析上机实践 数值分析是一门研究数值计算方法和算法的学科,它在工程科学、自然科学和计算机科学等领域具有广泛的应用。数值分析的主要任务是根据具体问题,设计并实施一种快速、高精度的数值计算方法,以获得解决问题所需的数值结果。本文将介绍数值分析的相关内容,并结合具体案例进行上机实践。 在数值分析中,数学模型是问题求解的基础。首先,需要根据实际问题建立数学模型,并将其转化为适合计算的形式。比如,在物理领域中,常见的数学模型包括微分方程、积分方程、代数方程等。其次,需要选择适当的数值方法对模型进行离散化。离散化将数学模型中的连续变量转化为有限个离散点上的近似值,从而降低计算复杂度。常见的数值方法包括有限差分法、有限元法、拉格朗日法等。 具体的数值分析方法包括求解非线性方程、求解线性方程、插值和逼近、数值积分、求解常微分方程以及偏微分方程等。下面将以数值求解非线性方程为例进行上机实践。 非线性方程的数值求解是数值分析中的经典问题。假设我们要求解方程f(x)=0,其中f(x)是一个非线性函数。一种常用的迭代法是牛顿迭代法,其迭代公式为: x_{n+1} = x_n - \frac{f(x_n)}{f'(x_n)} 其中x_n是第n次迭代的近似解,f'(x_n)是f(x)在x_n处的导数。 下面是使用Python实现牛顿迭代法求解非线性方程的代码示例: ```python

def newton_method(f, df, x0, tol, max_iter): ''' f:非线性方程f(x)=0 df: f(x)的导数 x0:初始近似解 tol: 精度要求 max_iter: 最大迭代次数 ''' for i in range(max_iter): x1 = x0 - f(x0)/df(x0) if abs(x1-x0) < tol: break x0=x1 return x0 #定义一个非线性方程和其导数 def f(x): return x**3 - 2*x - 5 def df(x): return 3*x**2 - 2

数值分析上机实习教学大纲和授课计划

数值分析上机实习教学大纲和授课计划Computer Science is an ever-evolving field that requires practical skills alongside theoretical knowledge. As part of the curriculum, students often have practical sessions known as "on-the-computer" or "hands-on" labs. Similarly, in Numerical Analysis courses, there is a need for students to engage in on-the-computer practice and apply their knowledge to solve real-world problems. Therefore, it is essential to have a well-structured syllabus and teaching plan for the Numerical Analysis on-the-computer practicum. Numerical Analysis on-the-computer practicum aims to bridge the gap between theory and application by providing students with the opportunity to learn how numerical methods are implemented using programming languages. Through this practical experience, students not only develop their programming skills but also gain insight into the strengths and limitations of various numerical algorithms. The first part of the course focuses on introducing

数值分析第一次上机练习实验报告

数值分析第一次上机练习实验报告 一、实验目的 本次实验旨在通过上机练习,加深对数值分析方法的理解,并掌握实际应用中的数值计算方法。 二、实验内容 1. 数值计算的基本概念和方法 在本次实验中,我们首先回顾了数值计算的基本概念和方法。数值计算是一种通过计算机进行数值近似的方法,其包括近似解的计算、误差分析和稳定性分析等内容。 2. 方程求解的数值方法 接下来,我们学习了方程求解的数值方法。方程求解是数值分析中非常重要的一部分,其目的是找到方程的实数或复数解。我们学习了二分法、牛顿法和割线法等常用的数值求解方法,并对它们的原理和步骤进行了理论学习。 3. 插值和拟合

插值和拟合是数值分析中常用的数值逼近方法。在本次实验中,我们学习了插值和拟合的基本原理,并介绍了常见的插值方法,如 拉格朗日插值和牛顿插值。我们还学习了最小二乘拟合方法,如线 性拟合和多项式拟合方法。 4. 数值积分和数值微分 数值积分和数值微分是数值分析中的两个重要内容。在本次实 验中,我们学习了数值积分和数值微分的基本原理,并介绍了常用 的数值积分方法,如梯形法和辛卜生公式。我们还学习了数值微分 的数值方法,如差商法和牛顿插值法。 5. 常微分方程的数值解法 常微分方程是物理和工程问题中常见的数学模型,在本次实验中,我们学习了常微分方程的数值解法,包括欧拉法和四阶龙格-库塔法。我们学习了这些方法的步骤和原理,并通过具体的实例进行 了演示。 三、实验结果及分析

通过本次实验,我们深入理解了数值分析的基本原理和方法。我们通过实际操作,掌握了方程求解、插值和拟合、数值积分和数值微分以及常微分方程的数值解法等数值计算方法。 实验结果表明,在使用数值计算方法时,我们要注意误差的控制和结果的稳定性。根据实验结果,我们可以对计算结果进行误差分析,并选择适当的数值方法和参数来提高计算的精度和稳定性。此外,在实际应用中,我们还需要根据具体问题的特点和条件选择合适的数值方法和算法。 四、实验总结 通过本次实验,我们对数值分析的基本原理和方法有了更加深入的了解。掌握了方程求解、插值和拟合、数值积分和数值微分以及常微分方程的数值解法等数值计算方法。我们了解了数值计算的误差和稳定性分析,并能够根据实际应用中的问题选择合适的数值方法和算法。 在今后的学习和实践中,我们将继续深入研究数值分析的理论和方法,提高自己的数值计算能力。希望在今后的实际应用中,能

四川大学 数值分析 第一学期上机实习题 真题 题库

2018-2019 第1学期上机实习题 总目标:会算,要有优化意识。(以下程序要求以附件1例题代码格式给出) 1. 给出牛顿法求函数零点的程序。 调用条件:输入函数表达式()f x ,隔根区间[,]a b 输出结果:零点的值x 和精度e 试取函数432 2() 1.40.418.4080.51f x x x x x =---+,用牛顿法计算01x =附近的根,判断相应的收敛速度,并给出数学解释。 2. 利用牛顿插值法计算牛顿插值多项式,并计算该多项式在某一点处的取值。 调用条件:输入n 个插值节点i x ,与对应的函数值i y ;待计算的点0x 输出结果:插值多项式的系数向量,以及多项式在0x 处的取值(注意用适当的算法) 给出调用说明和例子。 3. 给定线性方程组Ax b =,利用列主元高斯消元法进行求解。 调用条件:输入系数矩阵A 和右端项b 输出结果:方程组的解 试取系数矩阵为11 11111 11n n A ⨯⎛⎫ ⎪- ⎪= ⎪ ⎪--⎝⎭,观察列主元消元过程中绝对值最大的列主元取值,并给出数学解释。 4. 给定函数)()(a x x b f ≤≤,将区间[,]a b 取n 等分,每个子区间分别用一次多项式、二 次多项式进行插值,生成的多项式分别记为()1 n P ,()2n P ,计算()12||()||n f x P -,()22||()||n f x P -。(这里涉及到的积分运算需采用适当的数值求积算法) 调用条件:输入函数表达式()f x ,隔根区间[,]a b ,等分区间数n 输出结果:误差值()1 2||()||n f x P -,()22||()||n f x P -(可以分别写程序计算) 试取不同的函数和隔根区间(比如()sin f x x =,[,][0,1]a b =),n 为2,4,8,16,…,观察误差变化,并给出数学解释。

数值分析上机实验

X 力辉 201021080401 1.“画圆为方”问题也是古希腊人所提出几何三大难题中的另一个问题。即求作一个正方形,使其面积等于已知圆的面积。不妨设已知圆的半径为 R = 1,试用数值试验显示“画圆为方”问题计算过程中的误差。 (1)MATLAB 程序: y=pi^(1/2); % to generate 15-bit value of square root of pi b=1; d=1; for k=1:8 b=b*10; d=d/10; % b and d combined to control the digit of x x=d*fix(b*y); s(k)=x^3; l(k)=x; end format long [l',s'] (2)误差分析: 2. 设,I x x d x n n = +⎰ 50 1 由 x n = x n + 5 x n – 1 – 5 x n – 1 可得递推式 I n = – 5I n – 1 + 1/ n (1)从I 0尽可能精确的近似值出发,利用递推公式: I I n n n =-+-51 1( n = 1,2,…20) 计算从I 1到I 20的近似值; (2)从I 30较粗糙的估计值出发,用递推公式: I I n n n -=-+1151 5 ( n= 30,29, …, 3, 2 ) 计算从I 1到I 20的近似值; (3) 分析所得结果的可靠性以与出现这种现象的原因。 I 0 =dx x ⎰+1 051=ln (5+x )1 0|=ln 6-ln 5 所以I0≈

format long I0=log2(6)/log2(exp(1))-log2(5)/log2(exp(1)) % calculate the value of I0=ln6-ln5 for n=1:20 I0=-5*I0+1/n; % recycling equation between I(n+1) and I(n) s(n)=I0; end s' 则计算结果为: 表1 I1 0.0883922160302300 I11 I2 0.0580389198488700 I12 I3 I13 I4 0.0343063295550100 I14 I5 0.0284683522249700 I15 I6 0.0243249055418100 I16 0.0099038770381400 I7 I17 0.0093041442210800 I8 I18 0.0090348344501700 I9 I19 0.0074574066965100 I10 I20 从计算的数据看出I 20= > I 19=0.0074574066965100 又I n 的积分X 围为0~1,所以应该有I n >I n+1。所以算法不稳定。 下面分析导致算法不稳定的原因: 令S n 为近似值,则有 n S S n n /151+-=- (1) 又 n I I n n /151+-=- (2) (1)-(2)得 S n -I n =-5S n-1-I n-1=(-5)n (S 0-I 0)=(-5)n ε0(3) ε0为I 0的误差。可知由下往上递推时误差是以指数增加传递的,即 εn =(-5)n ε0 所以必然会导致算法不稳定。又公式(3)知,当由上往下递推时,误差是以指数减少传递的,即 ε0=1/(-5)n εn (4) 所以此时算法是稳定的。下面便给出由I 30的估计值算I 29~I 1的值。 ⎰ 1 6 n x ≤I x x d x n n =+⎰501≤dx x n ⎰105 所以有 )1(61+n ≤I n ≤) 1(51+n 即1/186≤I 30≤1/155,取为1/155。

哈工大-数值分析上机实验报告

實驗報告一 題目:非線性方程求解 摘要:非線性方程の解析解通常很難給出,因此線性方程の數值解法就尤為重要。本實驗採用兩種常見の求解方法二分法和Newton 法及改進のNewton 法。 前言:(目の和意義)掌握二分法與Newton 法の基本原理和應用。 數學原理: 對於一個非線性方程の數值解法很多。在此介紹兩種最常見の方法:二分法和Newton 法。 對於二分法,其數學實質就是說對於給定の待求解の方程f(x),其在[a,b ]上連續,f(a)f(b)<0,且f(x)在[a,b ]內僅有一個實根x *,取區間中點c ,若,則c 恰為其根,否則根據f(a)f(c)<0是否成立判斷根在區間[a,c ]和[c,b ]中の哪一個,從而得出新區間,仍稱為[a,b ]。重複運行計算,直至滿足精度為止。這就是二分法の計算思想。 Newton 法通常預先要給出一個猜測初值x 0,然後根據其迭代公式 ) ()('1k k k k x f x f x x -=+ 產生逼近解x *の迭代數列{x k },這就是Newton 法の思想。當x 0接近x *時收斂很快,但是當x 0選擇不好時,可能會發散,因此初值の選取很重要。另外,若將該迭代公式改進為 ) ()('1k k k k x f x f r x x -=+ 其中r 為要求の方程の根の重數,這就是改進のNewton 法,當求解已知重數の方程の根時,在同種條件下其收斂速度要比Newton 法快の多。 程式設計: 本實驗採用Matlab のM 檔編寫。其中待求解の方程寫成function の方式,如下 function y=f(x); y=-x*x-sin(x); 寫成如上形式即可,下麵給出主程序。 二分法根源程式: clear %%%給定求解區間 b=1.5; a=0; %%%誤差

数值分析第一次实验报告

数值分析上机实验报告 题目:插值法 学生姓名 学院名称计算机学院 专业计算机科学与技术时间

一. 实验目的 1、掌握三种插值方法:牛顿多项式插值,三次样条插值,拉格朗日插值 2、学会matlab提供的插值函数的使用方法 二.实验内容 1、已知函数在下列各点的值为 试用4次牛顿插值多项式P4(x)及三次样条函数S(x)(自然边界条件)对数据进行插值。用图给出 {(x i,y i),x i=0.2+0.08i,i=0,1,11,10},P4(x)及S(x)。 2、在区间[-1,1]上分别取n=10,20用两组等距节点对龙格函数 f(x)=1/(1+25x2)作多项式插值及三次样条插值,对每个n值,分别画出插值函数及f(x)的图形。 3、下列数据点的插值 可以得到平方根函数的近似,在区间[0,64]上作图。

(1)用这9个点作8次多项式插值L8(x) (2)用三次样条(第一边界条件)程序求S(x) 从得到结果看在[0,64]上,哪个插值更精确,在区间[0,1]上。 两种插值哪个更精确? 三.实现方法 1. 进入matlab开发环境 2. 依据算法编写代码 3. 调试程序 4. 运行程序 5. (1)牛顿插值多项式: P n=f(x0)+f[x0,x1](x-x0)+f[x0,x1,x2](x-x0)(x-x1)+…+f[x0,x1,…,x n] (x-x0)(x-x n-1) 三次样条插值: 用三次样条插值函数由题目分析知,要求各点的M值: 6.实验代码如下: (1)牛顿插值多项式程序: function varargout=newton(varargin) clear,clc x=[0.2 0.4 0.6 0.8 1.0]; fx=[0.98 0.92 0.81 0.64 0.38]; newtonchzh(x,fx);

西南交通大学数值分析上机实验报告

数值分析 上机实习报告 学号: 姓名: 专业: 联系电话: 任课教师:

序 (3) 一、必做题 (4) 1、问题一 (4) 1.1 问题重述 (4) 1.2 实验方法介绍 (4) 1.3 实验结果 (5) 2、问题二 (7) 2.1 问题重述 (7) 2.2 实验原理 (7) 雅各比算法:将系数矩阵A分解为:A=L+U+D,则推到的最后迭代公式为: (8) 2.3 实验结果 (8) 二、选做题 (10) 3、问题三 (10) 3.1 问题重述 (10) 3.2 实验原理 (10) 3.3 实验结果 (11) 总结 (11)

序 伴随着计算机技术的飞速发展,所有的学科都走向定量化和准确化,从而产生了一系列的计算性的学科分支,而数值计算方法就是解决计算问题的桥梁和工具。数值计算方法,是一种研究并解决数学问题的数值近似解方法,是在计算机上使用的解数学问题的方法。为了提高计算能力,需要结合计算能力与计算效率,因此,用来解决数值计算的软件因为高效率的计算凸显的十分重要。 数值方法是用来解决数值问题的计算公式,而数值方法的有效性需要根据其方法本身的好坏以及数值本身的好坏来综合判断。数值计算方法计算的结果大多数都是近似值,但是理论的严密性又要求我们不仅要掌握将基本的算法,还要了解必要的误差分析,以验证计算结果的可靠性。数值计算一般涉及的计算对象是微积分,线性代数,常微分方程中的数学问题,从而对应解决实际中的工程技术问题。 在借助MA TLAB、JA V A、C++ 和VB软件解决数学模型求解过程中,可以极大的提高计算效率。本实验采用的是MATLAB软件来解决数值计算问题。MA TLAB是一种用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,其对解决矩阵运算、绘制函数/数据图像等有非常高的效率。 本文采用MATLAB对多项式拟合、雅雅格比法与高斯-赛德尔迭代法求解方程组迭代求解,对Runge-Kutta 4阶算法进行编程,并通过实例求解验证了其可行性,使用不同方法对计算进行比较,得出不同方法的收敛性与迭代次数的多少,比较各种方法的精确度和解的收敛速度。 2014数值分析作业

数值分析试验上机题

数值分析 课程实验指导书 实验一 非线性方程求根 、要求 1、编制一个程序进行运算,最后打印出每种迭代格式的敛散 情况; 2、用事后误差估计 3、初始值的选取对迭代收敛有何影响; 4、分析迭代收敛和发散的原因。 三、目的和意义 1、通过实验进一步了解方程求根的算法; 2、认识选择计算格式的重要性; 3、掌握迭代算法和精度控制; 4、明确迭代收敛性与初值选取的关系。 四、实验学时: 2 学时 五、实验步骤: 1.进入 matlab 开发环境; 2.根据实验内容和要求编写程序; 3.调试程序; 、问题提出 ** 设方程 f (x) x 3 3x 1 0 有三个实根 x 1* 1.8793, x *2 0.34727, 1.53209 现采用下面六种不同计算格式,求 f(x)=0 的根 x 1 或 x 2 3x 1 2 x x 3 1 3 3 3x 1 1 x 2 3 3 1 x 1 x 3 3x 1 x ( 2 ) 3 x 2 1 x 3 1、 2、 3、 4、 5、 6、 x k 1 x k 来控制迭代次数,并且打印出迭代的次数;

4.运行程序;5.生成报告

实验二线方程组的直接解法 一、问题提出给出下列几个不同类型的线性方程组,请用适当算法计算其解。 1、设线性方程组 4231210000x15 8653650100x212 4221321031x33 021*******x42 4261673323x53 86857172635x646 021*******x713 161011917342122x838 462713920124x919 00183248631x1021 x (1, 1,0,1,2,0,3,1, 1,2)T 2、设对称正定阵系数阵线方程组 42402400x10 22121320x26 411418356x320 02161433x423 2181224103x59 433441114x622 025*******x715 006334219x845 x (1, 1,0, 2,1, 1,0, 2)T 3、三对角形线性方程组 4100000000x17 1410000000x25

相关文档
最新文档