当前位置:文档之家› 大学数学实验报告----迭代

大学数学实验报告----迭代

大学数学实验报告----迭代
大学数学实验报告----迭代

数学实验报告

综合实验迭代

学院:数学与信息科学学院

班级: 09级数学(4)班

姓名:***

学号:***

综合实验——迭代

给定实数

域上光滑的实值函数()f x 以及初值0x 定义数列

1(),0,1,n n x f x n +==???,n x ,0,1,n =???,称为()f x 的一个迭代数列.

函数的迭代是数学研究中的一个非常重要的思想工具.哪怕是对一个相当简单的函数进行迭代,都可以产生异常复杂的行为,并由此而衍生了一些崭新的学科分支,如分型与混沌.同时,迭代在各种数值计算方法以及其他学科领域的诸多算法中处于核心的地位.我们将通过一系列实验介绍迭代在诸多领域的应用。

一、迭代(方程求解)

二、迭代(分形)

③按Shift 和Enter 键运行。 运行结果:

redosierpinski ptlist_List : Block

t mp ,i,pnum Length ptlist

3 ,

For i 0,i pnum,i i 1,tmp Join t mp, ptlist

3i 1

,

ptlist 3i 1 ptlist 3i 2 2, ptlist 3i 1 ptlist 3i 3 2, ptlist 3i 1 ptlist

3i 2 2,ptlist 3i 2 ,

ptlist 3i 2 ptlist 3i 3 2, ptlist 3i 1 ptlist 3i 3 2, ptlist

3i 2

ptlist

3i 3

2,

ptlist 3i 3 ;

tmp

showsierpinski ptlist_List : Block

t mp ,i,pnum Length ptlist

3 ,

For i 0,i pnum,i i 1,AppendTo t mp,Polygon

ptlist

3i 1

,ptlist

3i 2

ptlist

3i 3

;

Show G raphics t mp ,AspectRatio 1 GoldenRat po1 1,0 , 1,0 , 0,Sqrt 3

;

showsierpinski Nest r edosierpinski,po1,4

三、复变函数迭代

1.5

1

0.5

-0.5

-1

-1.5

-1.5-1-0.500.51

1.5

1

0.5

-0.5

-1

-1.5

-1.5-1-0.500.51 0.3

0.2

0.1

-0.1

-0.7-0.65-0.6-0.55-0.5-0.45

用SOR迭代法

一、数值求解如下正方形域上的Poisson 方程边值问 二、2222(,)2,0,1 (0,)(1,)(1),01(,0)(,1)0, 01u u f x y x y x y u y u y y y y u x u x x ??? ??-+==<

MAAB计算方法迭代法牛顿法二分法实验报告

姓名 实验报告成绩 评语: 指导教师(签名) 年 月 日 说明:指导教师评分后,实验报告交院(系)办公室保存。 实验一 方程求根 一、 实验目的 用各种方法求任意实函数方程0)(=x f 在自变量区间[a ,b]上,或某一点附近的实根。并比较方法的优劣。 二、 实验原理 (1)、二分法 对方程0)(=x f 在[a ,b]内求根。将所给区间二分,在分点 2a b x -=判断是否0)(=x f ;若是,则有根2a b x -=。否则,继续判断是否0)()(

+)(0x f 0))(('0=-x x x f 设0)('0≠x f ,则=x -0x )(') (00x f x f 。取x 作为原方程新的近似根1x ,然后将1x 作为0x 代入上式。迭代公式为:=+1 k x -0x )(')(k k x f x f 。 三、 实验设备:MATLAB 软件 四、 结果预测 (1)11x = (2)5x = (3)2x =0,09052 五、 实验内容 (1)、在区间[0,1]上用二分法求方程0210=-+x e x 的近似根,要求误差不超 过3105.0-?。 (2)、取初值00=x ,用迭代公式=+1 k x -0x )(') (k k x f x f ,求方程0210=-+x e x 的近似根。要求误差不超过3105.0-?。 (3)、取初值00=x ,用牛顿迭代法求方程0210=-+x e x 的近似根。要求误差 不超过3105.0-?。 六、 实验步骤与实验程序 (1) 二分法 第一步:在MATLAB 软件,建立一个实现二分法的MATLAB 函数文件如下: function x=agui_bisect(fname,a,b,e) %fname 为函数名,a,b 为区间端点,e 为精度 fa=feval(fname,a); %把a 端点代入函数,求fa fb=feval(fname,b); %把b 端点代入函数,求fb if fa*fb>0 error('两端函数值为同号'); end

matlab——大学数学实验报告

济南大学2012~2013学年第二学期数学实验上机考试题 班 级 计科1201 学号 20121222044 姓 名 黄静 考试时间 2014年6 月 17日 授课教师 王新红 说明:每题分值20分。第5题,第6题, 第7题和第8题可以任选其一, 第9题和第10题可以任选其一。每个同学以自己的学号建立文件夹,把每个题的文件按规定的方式命名存入自己的文件夹。有多余时间和能力的同学可以多做。 1、自定义函数:x x x y tan ln sin cos ln -=,并求 ?)3 (=π y (将总程序保存为test01.m 文件) %%代码区: y=inline('log(cos(x))-sin(x)*log(tan(x))','x'); y(pi/3) %%answer ans = -1.1689 2、将一个屏幕分4幅,选择合适的坐标系在左与右下幅绘制出下列函数的图形。 (1)衰减振荡曲线: x e y x 5sin 5.0-= (2)三叶玫瑰线:θρ3sin a = (将总程序保存为test02.m 文件) %%代码区: x=linspace(0,2*pi,30); y=exp(-0.5*x).*sin(5*x); subplot(2,2,1),plot(x,y),title('衰减振荡曲线') hold on theta=linspace(0,2*pi); r=sin(3*theta); subplot(2,2,4); polar(theta,r); xlabel('三叶玫瑰线')

%%answer 02468 -1 -0.500.5 1衰减振荡曲线 三叶玫瑰线 3、作马鞍面:22 ,66,8823 x y z x y =--≤≤-≤≤ (将总程序保存为test03.m 文件) %%代码区: [x,y]=meshgrid(linspace(-6,6,70),linspace(-8,8,70)); z=x.^2/2-y.^2/3; mesh(x,y,z) surface(x,y,z)%让曲面光滑并填满 shading interp ;

迭代法实验报告

迭代法实验报告 一. 实验目的:掌握迭代方法的用处 二. 实验环境:Cfree5.0 三. 实验时间:2013年6月20日 四. 实验地点:电子信息楼1201教室 五. 实验内容:运用编程实现迭代方法可以更好的解线性方程组,得到线性方程的解。 六. 实验理论依据: 高斯-赛德尔(Gauss-Seidel )迭代公式 我们注意到在雅可比迭代法中并没有对新算出的分量11k x +,12k x +, , 11k i x +-进行充分利用.不妨设想,在迭代收敛的条件下,我们把 (1)()()()11211331111(1)()()()22112332222(1)()()()1122,111()1(1(k k k k n n k k k k n n k k k k n n n n n n nn x a x a x a x b a x a x a x a x b a x a x a x a x b a +++--?=---+???=---+?????=---+?? 式中第一个方程算出的11k x +立即投入到第二个方程中,代替()1k x 进行计算,当12 k x +算出后代替()2k x 马上投入到第三个方程中计算,依次进行下去,这样也许会得到 更好的收敛效果.根据这种思路建立的一种新的迭代格式,我们称为高斯-赛德尔(Gauss-Seidel )迭代公式, 高斯=赛德尔迭代法的分量形式:

(1)()()()11211331111(1)(1)()()22112332222(1)(1)(1)(1)1122,111()1(1(k k k k n n k k k k n n k k k k n n n n n n nn x a x a x a x b a x a x a x a x b a x a x a x a x b a +++++++--?=---+???=---+?????=---+?? 高斯-赛德尔迭代法的矩阵形式: (1)(),(0,1,2,)k k x Bx f k +=+= 其中 1()B D L U -=- ,1()f D L b -=- B 称为高斯-赛德尔迭代矩阵,f 称为高斯-赛德尔迭代常量.. 七. 运行代码如下: #include"stdio.h" #include"math.h" int main() { bool pan1=true; int n,n1,n2=0,k=0; double num[100][100],L[100][100],U[100][100],x[100],y[100],num1=0,b[100],D[100][100],x1[200][200],x2[200][200]; printf("\n"); printf("*******************************高斯迭代法解如下********************************"); printf("输入要输入矩阵的阶数为(按Enter 输入矩阵数字):");//

SOR迭代法超松弛因子选取

《计算方法》实验报告(二) 实验名称:SOR 迭代法松弛因子的选取 班级: 数学1402班 姓名: 高艺萌 学号:14404210 一、 实验目的 通过本实验学习线性方程组的SOR 迭代解法以及SOR 迭代法的编程与应用。对比分析不同条件下的超松弛因子w 的取值大小会对方程组的解造成影响,通过这个实验我们可以了解的w 不同取值会对方程组的解产生的影响。培养编程与上机调试能力。 二、 实验题目 用逐次超松弛(SOR )迭代法求解方程组b Ax =,其中 ?????????? ????????????=????????????????????????????????????????????=555555122-12-122-112-122-112-122-112-122-12-12201918321 x x x x x x A (1)给定迭代误差,选取不同的超松弛因子1>ω进行计算,观察得到的近似解向量并分析计算结果,给出你的结论; (2)给定迭代误差,选取不同的超松弛因子1<ω进行计算,观察得到的近似解向量并分析计算结果,给出你的结论; 三、 实验原理 1.逐次超松弛迭代法可以看作Gauss-Seidel 迭代法的加速, b D Ux D Lx D x k k k 1)(1)1(1)1(--+-+++= 2.SOR 迭代计算格式 b D L wD I w x U wD I w L wD x k k 111)(111)1()(])1[()-1(------+-++-= 其中,w 叫松弛因子,当w>1时叫超松弛,0

东南大学数学实验报告(1)

高等数学数学实验报告实验人员:院(系) 土木工程学院学号05A11210 姓名李贺__ 实验地点:计算机中心机房 实验一空间曲线与曲面的绘制 一、实验题目:(实验习题1-2) 利用参数方程作图,做出由下列曲面所围成的立体图形: 2 2 2 2 ⑴ Z 1 X y,x y X 及xOy平面; ⑵ z xy,x y 1 0 及z 0. 二、实验目的和意义 1、利用数学软件Mathematica绘制三维图形来观察空间曲线和空间曲面图形的特点,以加 强几何的直观性。 2、学会用Mathematica绘制空间立体图形。 三、程序设计 空间曲面的绘制 x x(u, V) y y(u,v),u [u min , max ],V [V min , V max ] 作参数方程z z(u,v)所确定的曲面图形的Mathematica命令

为: ParametricPlot3D[{x[u,v],y[u,v],z[u,v]},{u,umi n,umax}. {v,vmi n,vmax}, 选项] ⑵ t2 = ParametricPlotJD [{u f 1 v}, [u^ ?0?§尸1}^ (v, 0F 1}, HxegLabel {"x" 11 y" J1 z" }. PlotPolnts t 5B, Dlspla^unction -> Identity」: t3 = ParametricPlotSD[{u f 0}* (u, -U.J5』1}^ {v z-0.5, 1} f AxesLabel {"x" 11y" 11 z" PlotPoints 50, Display1 unction — Identity]: Slinw[tl z t2, t3 f DisplayFunction -> SDlsplajfunction] 四、程序运行结果 ⑴ (2) 五、结果的讨论和分析 1、通过参数方程的方法做出的图形,可以比较完整的显示出空间中的曲面和立体图形。 2、可以通过mathematica软件作出多重积分的积分区域,使积分能够较直观的被观察。

解线性方程组基本迭代法实验(ca)

Lab .解线性方程组的基本迭代法实验 【实验目的和要求】 1.使学生深入理解Jacobi 迭代法、Gauss-Seidel 迭代法和SOR 迭代法; 2.通过对Jacobi 迭代法、Gauss-Seidel 迭代法和SOR 迭代法的程序设计,以提高学生程序设计的能力; 3.应用编写的程序解决具体问题,掌握三种基本迭代法的使用,通过结果的分析了解每一种迭代法的特点。 【实验内容】 1.根据Matlab 语言特点,描述Jacobi 迭代法、Gauss-Seidel 迭代法和SOR 迭代法。 2.编写Jacobi 迭代法、Gauss-Seidel 迭代法和SOR 迭代法的M 文件。 3.给定2020?∈R A 为五对角矩阵 ??????????????? ???????????????? ?---- -------- ------ 32 141213214 141213214141213214 141213 2141213 (1)选取不同的初始向量)0(x 及右端面项向量b ,给定迭代误差要求,分别用编写Jacobi 迭代 法和Gauss-Seidel 迭代法程序求解,观察得到的序列是否收敛?若收敛,通过迭代次数分析 计算结果并得出你的结论。 (2)用编写的SOR 迭代法程序,对于(1)所选取的初始向量) 0(x 及右端面项向量b 进行求解,松驰系数ω取1<ω<2的不同值,在5 )1()(10-+≤-k k x x 时停止迭代,通过迭代次数分析计算结果 并得出你的结论。 【实验仪器与软件】 1.CPU 主频在1GHz 以上,内存在128Mb 以上的PC ; 2.Matlab 6.0及以上版本。 实验讲评:

牛顿迭代法实验报告

用牛顿迭代法求非线性方程的根 一、 实验题目 求方程()013=--=x x x f 在5.1附近的根。 二、 实验引言 (1)实验目的 1. 用牛顿迭代法求解方程的根 2. 了解迭代法的原理 3. 改进和修缮迭代法 (2)实验意义 牛顿迭代法就是众多解非线性方程迭代法中比较普遍的一种,求解方便实用。 三、 算法设计 (1)基本原理 给定初始值0x ,ε为根的容许误差,η为()x f 的容许误差,N 为迭代次数的容许值。 1.如果()0='x f 或迭带次数大于N ,则算法失败,结束;否则执行2. 2.计算()() 0001x f x f x x '-=. 3.若ε<-21x x 或()η<1x f ,则输出1x ,程序结束;否则执行4. 4.令10x x =,转向1. (2)流程图

四、程序设计program nndd01 implicit none real,parameter::e=0.005 real,parameter::n=9 real::x1 real::x0=1.5 integer::k real,external::f,y do k=1,9 if (y(x0)==0) then write(*,*)"失败" else x1=x0-f(x0)/y(x0) if (abs(x1-x0)

else x0=x1 end if end if end do end function f(x) implicit none real::f real::x f=x*x*x-x-1 return end function function y(x) implicit none real::y real::x y=3*x*x-1 return end function 五、求解结果 3 1.324718 4 1.324718 5 1.324718 6 1.324718 7 1.324718 8 1.324718 9 1.324718 六、算法评价及讨论 1.在求解在1.5处附近的根,不难发现在输入区间左端值为1时 需要迭代6次,而输入区间左端值为1.5时,却只要4次。初

重庆大学数学实验报告七

开课学院、实验室:数统学院DS1421实验时间:2013年03月17日

由于matlab中小数只能是四位,所以我在编程的过程中将距离扩大了1000倍,但是并不会影响我们所求得的结果。 运行程序之后我们得到的结果为: 我们可以得到当金星与地球的距离(米)的对数值为9.9351799时,只一天恰好是25号。 8.编写的matlab程序如下: x=0:400:2800; y=0:400:2400; z=[1180 1320 1450 1420 1400 1300 700 900 1230 1390 1500 1500 1400 900 1100 1060 1270 1500 1200 1100 1350 1450 1200 1150 1370 1500 1200 1100 1550 1600 1550 1380 1460 1500 1550 1600 1550 1600 1600 1600 1450 1480 1500 1550 1510 1430 1300 1200 1430 1450 1470 1320 1280 1200 1080 940]; [xi,yi]=meshgrid(0:5:2800,0:5:2400); zi=interp2(x,y,z,xi,yi,'cubic'); mesh(xi,yi,zi); xlabel('x'),ylabel('y'),zlabel('高程'); title('某山区地貌图'); figure(2); contour(xi,yi,zi,30); 运行程序我们得到的结果如下所示: 山区的地貌图如下所示:

等高线图如下所示: 三、附录(程序等) 6. y=18:2:30;

SOR迭代法求解线性方程组

实验三:用SOR 迭代法求解线性方程组 ?????? ? ??=??????? ????????? ??----------74.012.018.168.072.012.006.016.012.001.103.014.006.003.088.001.016.014.001.076.04321x x x x 取初始点T x )0,0,0,0()0(=,松弛因子05.1=ω,精度要求610-=ε。 1,建立SOR.m 函数文件,此函数文件可调用,程序源码如下: function [x,n]=SOR(A,b,x0,w,eps,M) if nargin==4 eps= 1.0e-6;%精度要求 M = 200; elseif nargin<4 error; return elseif nargin ==5 M = 200; end if(w<=0 || w>=2) error; return; end D=diag(diag(A)); %求A 的对角矩阵 L=-tril(A,-1); %求A 的下三角阵 U=-triu(A,1); %求A 的上三角阵 B=inv(D-L*w)*((1-w)*D+w*U); f=w*inv((D-L*w))*b; x=B*x0+f; n=1; %迭代次数 while norm(x-x0)>=eps x0=x; x =B*x0+f; n=n+1; if(n>=M) disp('Warning: 迭代次数太多,可能不收敛!'); return; end end

2,输入矩阵。并根据要求调用函数,运行结果如下图所示: 即经过7次迭代算出结果,且求得: 1.27151.28440.48581.2843x ?? ? ?= ? ???

关于大学数学实验的心得体会

关于大学数学实验的心得体会数学,在整个人类生命进程中至关重要,从小学到中学,再到大学,乃至更高层次的科学研究都离不开数学,随着时代的发展,人们越来越重视数学知识的应用,对数学课程提出了更高层次的要求,于是便诞生了数学实验。 学期最初,大学数学实验对于我们来说既熟悉又陌生,在我们的记忆中,我们做过物理实验、化学实验、生物实验,故然我们以为数学实验与它们一样,当我们在网上搜索有关数学实验的信息时,我们才知道,大学数学实验作为一门新兴的数学课程在近十年来取得了迅速的发展。数学实验以计算机技术和数学软件为载体,将数学建模的思想和方法融入其中,现在已经成为一种潮流。 当我们怀着好奇的心情走进屈静国老师的数学实验课堂时,我们才渐渐懂得,数学实验是一门有关计算机软件的课程,就像c语言一样,需要编辑运行程序,从而进行数学运算,它不需要自己来运算,就像计算器一样,只要我们自己记下重要程序语句,输入运行程序,便可得到运行结果,大大降低了我们的运算量,给我们生活带来许多便捷,在大一时,我学过c语言,由于这样的基础,让我能够更快的学会并应用此软件。 时间飞逝,转眼间,我们就要结课了,这学期我们学习了mathematics的基础,微积分实验,线性代数实验,概率

论与数理统计实验,数值计算方法及实验。通过这学期的学习,我也积累了些自己的学习方法和心得。首先,我们要在平时上课牢记那些mathematics语言和公式,那些东西就想单词和公式一样,只需要背诵;然后,我们要看几遍书,并多看一下例题;最后,我们要多应用mathematics软件去练习。正所谓熟能生巧,我坚信,只要我们能够做到这三步,我们就能很好的掌握这门课程。 通过学习使用数学软件,数学实验建模,使我们能够从实际问题出发,认真分析研究,建立简单数学模型,然后借助先进的计算机技术,最终找出解决实际问题的一种或多种方案,从而提高了我们的数学思维能力,为我们参加数学竞赛和数学建模打下了坚实的基础,同时也为我们进一步深造和参加工作打下一定的实践基础!

数值实验报告

数值实验报告五 班级:2017级学号:**** 姓名:*** 2017.12.5 1.数值实验问题 试用雅可比迭代法,高斯-赛德尔迭代法,超松驰迭代计算线性方程组: 取=(0,0,0,松弛因子分别取w=0.1t,1要求达到精度 。试通过数值计算得出不同的松弛因子所需要的迭代次数和收敛最快的松弛因子,并指出哪些松弛因子使得迭代发散。 2.数值方法 A=, L=-, U=-, D=diag() (1)雅可比迭代公式:

D. (2)高斯-赛德尔迭代法公式: (3)超松驰迭代方法公式: 其中w为松弛因子。 3.数值结果 如下表

最后四组,测得其在前10次内迭代所产生的结果,其中每一列为一

次迭代结果,分别如图: SOR-1.6 SOR-1.7 SOR-1.8 SOR-1.9 由于计算数据限制,其前五十列数据基本为空,所以取51到60列

由此看出,最后四组数据是发散的,数据结果不稳定,不收敛。所以最后四组得不到所需数据。 4.讨论 本次实验,分别用雅可比迭代公式,高斯-赛德尔迭代公式,超松驰迭代公式计算了此线性方程组。其中,雅可比和高斯迭代能够很好的进行运算,而超松驰迭代方法中,若松弛因子取得不够恰当,则会导致整个运算失败,得不到所需的结果,迭代不收敛,发散。此外,在进行初始值的赋值中,我是对每个矩阵都进行了赋值操作,而更简便的是,调用matlab中存在的函数,对矩阵进行运算,从而简化操作和代码,也使程序适用性更广。 程序代码: 1.雅可比迭代 function [x]=yakebi(D,L,U,b,j) format long B=D\(L+U);

牛顿迭代法的实验报告

牛顿迭代法实验报告 1.功能 本程序采用牛顿法,求实系数高次代数方程 f(x)=a0x n+a1x n-1+…+a n-1x+a n=0(a n≠0)(1) 的在初始值x0附近的一个根。 2.使用说明 (1)函数语句 Y=NEWTON_1(A,N,X0,NN,EPS1) 调用M文件newton_1.m。 (2)参数说明 A n+1元素的一维实数组,输入参数,按升幂存放方程系数。 N整变量,输入参数,方程阶数。 X0 实变量,输入参数,初始迭代值。 NN整变量,输入参数,允许的最大迭代次数。 EPS1实变量,输入参数,控制根的精度。 3.方法简介 解非线性议程f(x)=0的牛顿法是把非线性方程线性化的一种近似方法。把f(x)在x0点附近展开成泰勒级数 f(x)=f(x0)+(x-x0)fˊ(x0)+(x-x0)2 !2) (0x f'' +… 取其线性部分,作为非线性方程f(x)=0的近似方程,则有 f(x0)+fˊ(x0)(x-x0)=0 设fˊ(x0)≠0则其解为 x1=x0-f(x0)/fˊ(x0) 再把f(x)在x1附近展开成泰勒级数,也取其线性部分作f(x)=0的近似方程。若f(x1)≠0,则得 x2=x1-f(x1)/fˊ(x1) 这样,得到牛顿法的一个迭代序列 x n+1=x n-f(x n)/fˊ(x n) 4.newton_1.m程序

function y=newton_1(a,n,x0,nn,eps1) x(1)=x0; b=1; i=1; while(abs(b)>eps1*x(i)) i=i+1; x(i)=x(i-1)-n_f(a,n,x(i-1))/n_df(a,n,x(i-1)); b=x(i)-x(i-1); if(i>nn)error(ˊnn is fullˊ); return; end end y=x(i); i 5.程序附注 (1)程序中调用n_f.m和n_df.m文件。n_f.m是待求根的实数代数方程的函数,n_df.m 是方程一阶导数的函数。由使用者自己编写。 (2)牛顿迭代法的收敛速度:如果f(x)在零点附近存在连续的二阶微商,ξ是f(x)的一个重零点,且初始值x0充分接近于ξ,那么牛顿迭代是收敛的,其收敛速度是二阶的,即平方收敛速度。 6.例题 用牛顿法求下面方程的根 f(x)=x3+2x2+10x-20 7.运行结果 >>a=[1,2,10,-20] ; >>n=3; >>x0=1; >>nn=1000; >>eps1=1e-8; >>y=newton_1(a,n,x0,nn,eps1)

数值分析实验报告-Sor法分析

数值分析实验报告 一、 实验目的 1、会使用Sor 法求解一个线性方程组 2、熟悉matlab 语言并结合原理编程求方程组 3、改变ω的值观察实验结果 4、会分析实验结果 二、实验题目 编制Sor 迭代格式程序进行求解一个线性方程组的迭代计算情况,运行中要选用不同的松弛因子ω进行尝试 三、 实验原理 Jacobi 迭代和seidel 迭代对具体的线性方程组来说,逼近*x 的速度是固定不变的,遇到收敛很慢的情况时就显得很不实用。 Sor 法是一seidel 迭代为基础,并在迭代中引入参数ω以增加迭代选择的灵活性,具体为: ! 用seidel 迭代算出的,)()1()()1(k k J k k J x x x x x -=?++相减得到差向量与再用参数ω乘之再加上 )1()()()1()1()()()1(++++-=?+=k J k k k k k k x x x x x x x x ωωω,即的下一步迭代作为,由seidel 迭代的公式可以得到Sor 法的迭代格式为 n i x a x a b a x x k j n i j ij k j i j ij i ii k i k i ,2,1),()1()(1)1(11)()1( =--+-=∑∑+=+-=+ω ω 式中ω称为松弛因子。 四、 实验内容 用matlab 编程得到Sor 法求线性方程组的算法为: function [x,n]=SOR(A,b,x0,w,eps,M) if nargin==4

eps= ; M = 200; elseif nargin<4 error return : elseif nargin ==5 M = 200; end if(w<=0 || w>=2) error; return; end D=diag(diag(A)); %求A的对角矩阵L=-tril(A,-1); %求A的下三角阵( U=-triu(A,1); %求A的上三角阵B=inv(D-L*w)*((1-w)*D+w*U); f=w*inv((D-L*w))*b; x=B*x0+f; n=1; %迭代次数 while norm(x-x0)>=eps x0=x; x =B*x0+f; n=n+1; if(n>=M) (

数学实验“线性方程组的J-迭代,GS-迭代,SOR-迭代解法”实验报告(内含matlab程序代码)

西京学院数学软件实验任务书 课程名称数学软件实验班级数0901 学号0912020107 姓名李亚强 实验课题线性方程组的J-迭代,GS-迭代,SOR-迭代方法。 实验目的 熟悉线性方程组的J-迭代,GS-迭代,SOR-迭代方法。 实验要求运用Matlab/C/C++/Java/Maple/Mathematica等其中一种语言完成。 实验内容线性方程组的J-迭代;线性方程组的GS-迭代;线性方程组的SOR-迭代。 成绩教师

实验四实验报告 一、实验名称:线性方程组的J-迭代,GS-迭代,SOR-迭代。 二、实验目的:熟悉线性方程组的J-迭代,GS-迭代,SOR-迭代,SSOR-迭代方法,编程实现雅可比方法和高斯-赛德尔方法求解非线 性方程组121231 235210 64182514 x x x x x x x x +=?? ++=??++=-?的根,提高matlab 编程能力。 三、实验要求:已知线性方程矩阵,利用迭代思想编程求解线性方程组的解。 四、实验原理: 1、雅可比迭代法(J-迭代法): 线性方程组b X A =*,可以转变为: 迭代公式(0)(1)() k 0,1,2,....k k J X X B X f +???=+=?? 其中b M f U L M A M I B J 111),(---=+=-=,称J B 为求解 b X A =*的雅可比迭代法的迭代矩阵。以下给出雅可比迭代的 分量计算公式,令),....,() ()(2)(1)(k n k k k X X X X =,由雅可比迭代公式 有 b X U L MX k k ++=+) () 1()(,既有i n i j k i ij i j k i ij k i ij b X a X a X a +- -=∑∑+=-=+1 )(1 1 )() 1(, 于

MATLAB计算方法迭代法牛顿法二分法实验报告

姓名 ______________ 实验报告成绩 ________________________ 评语: 指导教师(签名) ___________________ 年月日 说明:指导教师评分后,实验报告交院(系)办公室保存。 实验一方程求根 一、实验目的 用各种方法求任意实函数方程f(x)0在自变量区间[a,b]上,或某一点附 近的实根。并比较方法的优劣。 二、实验原理 (1)、二分法 b a x 对方程f(x)0在[a,b]内求根。将所给区间二分,在分点2判断 b a x --------- 是否f(x)0;若是,则有根2。否则,继续判断是否f(a)?f(x) 0,若是,则令b x,否 则令a x。否则令a x。重复此过程直至求出方程f(x) °在[a,b]中的近似根为止。 (2)、迭代法 将方程f(x) °等价变换为x=? ( x)形式,并建立相应的迭代公式xk 1 9( x)。 (3)、牛顿法 若已知方程的一个近似根x°,则函数在点x°附近可用一阶泰勒多项式 P l(x) f(X°) f'(X0)(X X。)来近似,因此方程f(x) °可近似表示为

if fa*fb>0 error(' 两端函数值为同号'); f (X k ) 3 不超过 0.5 10 。 六、实验步骤与实验程序 (1)二分法 第一步:在MATLAB 7.0软件,建立一个实现二分法的 MATLABS 数文件 agui_bisect.m 女口下: fun cti on x=agui_bisect(fname,a,b,e) %fname 为函数名,a,b 为区间端点,e 为精度 fa=feval(fname,a); % 把a 端点代入函数,求fa fb=feval(fname,b); % 把b 端点代入函数,求fb f (X k ) 根X1,然后将X1作为X 。代入上式。迭代公式为: X k 1 X 0 f'(X k ) o f (X o ) f(X o ) f ' (Xo)(X X )0设f'(X o ) 0,则x X o f '(X o )。取x 作为原方程新的近似 实验设备: MATLAB 7.0 软 件 三、 四、 结果预测 (1) x n=0.09033 (2) X5=0.09052 (3) X 2 =0,09052 五、 实验内容 (1)、 在区间[0,1] 上用二分法求方程 10X 2 0的近似根,要求误差不超 过 05 103 O (2)、 x ° 似根。 取初值X0 0 ,用迭代公式Xk 1 3 要求误差不超过0.5 10。 x ° f '(Xk) ,求方程e x 10x 2 0的近 (3)、 取初值X0 0 ,用牛顿迭代法求方程 e X 10x 2 0的近似根。要求误差

关于大学数学实验的心得体会

关于大学数学实验的心得体会 数学,在整个人类生命进程中至关重要,从小学到中学,再到 大学,乃至更高层次的科学研究都离不开数学,随着时代的发展,人 们越来越重视数学知识的应用,对数学课程提出了更高层次的要求, 于是便诞生了数学实验。 学期最初,大学数学实验对于我们来说既熟悉又陌生,在我们的记忆中,我们做过物理实验、化学实验、生物实验,故然我们以 为数学实验与它们一样,当我们在网上搜索有关数学实验的信息时, 我们才知道,大学数学实验作为一门新兴的数学课程在近十年来取得 了迅速的发展。数学实验以计算机技术和数学软件为载体,将数学建模的思想和方法融入其中,现在已经成为一种潮流。 当我们怀着好奇的心情走进屈静国老师的数学实验课堂时, 我们才渐渐懂得,数学实验是一门有关计算机软件的课程,就像c语言一样,需要编辑运行程序,从而进行数学运算,它不需要自己来运算,就像计算器一样,只要我们自己记下重要程序语句,输入运行程序,便可得到运行结果,大大降低了我们的运算量,给我们生活带来 许多便捷,在大一时,我学过c语言,由于这样的基础,让我能够更快的学会并应用此软件。 时间飞逝,转眼间,我们就要结课了,这学期我们学习了mathematics的基础,微积分实验,线性代数实验,概率论与数理统 计实验,数值计算方法及实验。通过这学期的学习,我也积累了些自

己的学习方法和心得。首先,我们要在平时上课牢记那些mathematics 语言和公式,那些东西就想单词和公式一样,只需要背诵;然后,我们要看几遍书,并多看一下例题;最后,我们要多应用mathematics 软件去练习。正所谓熟能生巧,我坚信,只要我们能够做到这三步, 我们就能很好的掌握这门课程。 通过学习使用数学软件,数学实验建模,使我们能够从实际问题出发,认真分析研究,建立简单数学模型,然后借助先进的计算机技术,最终找出解决实际问题的一种或多种方案,从而提高了我们的数学思维能力,为我们参加数学竞赛和数学建模打下了坚实的基 础,同时也为我们进一步深造和参加工作打下一定的实践基础! [关于大学数学实验的心得体会]

c编的sor迭代法解线性方程组的程序

c编的sor迭代法解线性方程组的程序 2010-12-15 20:33 #include #include double norm(double *x,double *y,int n) { int i=0; double s=0; for(i=0;i

东南大学高等数学数学实验报告上

高等数学数学实验报告实验人员:院(系) ___________学号_________姓名____________ 实验地点:计算机中心机房 实验一 一、实验题目: 根据上面的题目,通过作图,观察重要极限:lim(1+1/n)n=e 二、实验目的和意义 方法的理论意义和实用价值。 利用数形结合的方法观察数列的极限,可以从点图上看出数列的收敛性,以及近似地观察出数列的收敛值;通过编程可以输出数列的任意多项值,以此来得到数列的收敛性。通过此实验对数列极限概念的理解形象化、具体化。 三、计算公式(1+1/n)n 四、程序设计 五、程序运行结果 六、结果的讨论和分析 当n足够大时,所画出的点逐渐接近于直线,即点数越大,精确度越高。对于不同解题方法最后均能获得相同结果,因此需要择优,从众多方法中尽可能选择简单的一种。程序编写需要有扎实的理论基础,因此在上机调试前要仔细审查细节,对程序进行尽可能的简化、改进与完善。 实验二 一、实验题目 制作函数y=sin cx的图形动画,并观察参数c对函数图形的影响。 二、实验目的和意义 本实验的目的是让同学熟悉数学软件Mathematica所具有的良好的作图功能,并通过函数图形来认识函数,运用函数的图形来观察和分析函数的有关性态,建立数形结合的思想。 三、计算公式:y=sin cx 四、程序设计 五、程序运行结果

六、结果的讨论和分析 c 的不同导致函数的区间大小不同。 实验三 一、实验题目 观察函数f(x)=cos x 的各阶泰勒展开式的图形。 二、实验目的和意义 利用Mathematica 计算函数)(x f 的各阶泰勒多项式,并通过绘制曲线图形,来进一步掌握泰勒展开与函数逼近的思想。 三、计算公式 四、程序设计 五、程序运行结果 六、结果的讨论和分析 函数的泰勒多项式对于函数的近似程度随着阶数的提高而提高,但是对于任一确定次数的多项式,它只在展开点附近的一个局部范围内才有较好的近似精确度。 实验四 一、实验题目 计算定积分的黎曼和 二、实验目的和意义 在现实生活中许多实际问题遇到的定积分,被积函数往往不能用算是给出,而通过图像或表格给出;或虽然给出,但是要计算他的原函数却很困难,甚至原函数非初等函数。本实验目的,就是为了解决这些问题,进行定积分近似计算。 三、计算公式 四、程序设计 五、程序运行结果 六、结果的讨论和分析 本实验求的近似值由给出的n 的值的不同而不同。给出的n 值越大,得到的结果越接近准确的

高等数学实验报告matlab

西安交通大学 高等数学 实验报告 班级 组员与学号 2013年

实验名称:学生成绩管理 一、实验目的 二、实验内容 三、详细编程 clear for i=1:10 a{i}=89+i; b{i}=79+i; c{i}=69+i; d{i}=59+i; end c=[d,c]; Name=input('please input name:'); Score=input('please input score:'); n=length(Score); Rank=cell(1,n); S=struct('Name',Name,'Score',Score,'Rank',Rank); for i=1:n switch S(i).Score case 100 S(i).Rank='满分'; case a S(i).Rank='优秀'; case b S(i).Rank='良好'; case c S(i).Rank='及格'; otherwise S(i).Rank='不及格'; end end disp(['学生姓名 ','得分 ','等级']);

for i=1:n disp([S(i).Name,blanks(6),num2str(S(i).Score),blanks(6),S(i).Rank]); end s=0; for i=1:n s=S(i).Score+s; end averscore=s/n; t=S(1).Score; for i=1:(n-1) if(S(i).ScoreS(i+1).Score) m=S(i+1).Score; end end disp(['平均成绩']); disp([averscore]); disp(['最高分']); disp(t); disp(['最低分']); disp(m); 四、实验结果

相关主题
文本预览
相关文档 最新文档