《数值计算方法》上机实验报告
数值计算方法上机实验报告

数值计算方法上机实验报告
一、实验目的
本次实验的主要目的是熟悉和掌握数值计算方法,学习梯度下降法的
原理和实际应用,熟悉Python语言的编程基础知识,掌握Python语言的
基本语法。
二、设计思路
本次实验主要使用的python语言,利用python下的numpy,matplotlib这两个工具,来实现数值计算和可视化的任务。
1. 首先了解numpy的基本使用方法,学习numpy的矩阵操作,以及numpy提供的常见算法,如矩阵分解、特征值分解等。
2. 在了解numpy的基本操作后,可以学习matplotlib库中的可视化
技术,掌握如何将生成的数据以图表的形式展示出来。
3. 接下来就是要学习梯度下降法,首先了解梯度下降法的主要原理,以及具体的实际应用,用python实现梯度下降法给出的算法框架,最终
可以达到所期望的优化结果。
三、实验步骤
1. 熟悉Python语言的基本语法。
首先是熟悉Python语言的基本语法,学习如何使用Python实现变量
定义,控制语句,函数定义,类使用,以及面向对象编程的基本概念。
2. 学习numpy库的使用方法。
其次是学习numpy库的使用方法,学习如何使用numpy库构建矩阵,学习numpy库的向量,矩阵操作,以及numpy库提供的常见算法,如矩阵分解,特征值分解等。
3. 学习matplotlib库的使用方法。
数值计算方法实验报告

数值分析实验报告实验一、解线性方程组的直接方法——梯形电阻电路问题利用追赶法求解三对角方程组的方法,解决梯形电阻电路问题:电路中的各个电流{1i ,2i ,…,8i }须满足下列线性方程组:R V i i =- 22 210 252321=-+-i i i 0 252 432=-+-i i i 0 252 543=-+-i i i 0 252 654=-+-i i i 0 252 765=-+-i i i 0 252 876=-+-i i i 052 87=+-i i设V 220=V ,Ω=27R ,运用追赶法,求各段电路的电流量。
问题分析:上述方程组可用矩阵表示为:⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡--------------00000001481.8522520000002520000002520000002520000002520000002520000002287654321i i i i i i i i问题转化为求解A x b =,8阶方阵A 满足顺序主子式(1,2...7)0i A i =≠,因此矩阵A存在唯一的Doolittle 分解,可以采用解三对角矩阵的追赶法!追赶法a=[0 -2 -2 -2 -2 -2 -2 -2]; b=[2 5 5 5 5 5 5 5];c=[-2 -2 -2 -2 -2 -2 -2 0]; d=[220/27 0 0 0 0 0 0 0];Matlab 程序function x= zhuiganfa( a,b,c,d )%追赶法实现要求:|b1|>|C1|>0,|bi|>=|ai|+|ci| n=length(b); u=ones(1,n); L=ones(1,n); y=ones(1,n); u(1)=b(1); y(1)=d(1); for i=2:nL(i)=a(i)/u(i-1);u(i)=b(i)-c(i-1)*L(i); y(i)=d(i)-y(i-1)*L(i); endx(n)=y(n)/u(n); for k=n-1:-1:1x(k)=(y(k)-c(k)*x(k+1))/u(k); end endMATLAB 命令窗口输入:a=[0 -2 -2 -2 -2 -2 -2 -2]; b=[2 5 5 5 5 5 5 5];c=[-2 -2 -2 -2 -2 -2 -2 0] d=[220/27 0 0 0 0 0 0 0];x= zhuiganfa(a,b,c,d )运行结果为:x =8.1478 4.0737 2.0365 1.0175 0.5073 0.2506 0.1194 0.0477存在问题根据电路分析中的所讲到的回路电流法,可以列出8个以回路电流为独立变量的方程,课本上给出的第八个回路电流方程存在问题,正确的应该是78240i i -+=;或者可以根据电路并联分流的知识,同样可以确定78240i i -+=。
《数值计算方法》上机实验报告

《数值计算方法》上机实验报告华北电力大学实验名称数值il•算方法》上机实验课程名称数值计算方法专业班级:电力实08学生姓名:李超然学号:200801001008 成绩: 指导教师:郝育黔老师实验日期:2010年04月华北电力大学实验报告数值计算方法上机实验报吿一.各算法的算法原理及计算机程序框图1、牛顿法求解非线性方程*对于非线性方程,若已知根的一个近似值,将在处展开成一阶xxfx ()0, fx ()xkk泰勒公式"f 0 / 2 八八,fxfxfxxxxx 0 0 0 0 0 kkkk2!忽略高次项,有,fxfxfxxx 0 ()()(),,, kkk右端是直线方程,用这个直线方程来近似非线性方程。
将非线性方程的**根代入,即fx ()0, X ,* fxfxxx 0 0 0 0, ,, kkkfx 0 fx 0 0,解出fX 0 *k XX,, k' fx 0 k水将右端取为,则是比更接近于的近似值,即xxxxk, Ik, Ikfx ()k 八XX, Ikk* fx()k这就是牛顿迭代公式。
,2,计算机程序框图:,见,,3,输入变量、输出变量说明:X输入变量:迭代初值,迭代精度,迭代最大次数,\0输出变量:当前迭代次数,当前迭代值xkl,4,具体算例及求解结果:2/16华北电力大学实验报吿开始读入l>k/fx()0?,0fx 0 Oxx,,01* fx ()0XX,,,?10kk, ,1,kN, ?xx, 10输出迭代输出X输出奇异标志1失败标志,3,输入变量、输出变量说明: 结束例:导出计算的牛顿迭代公式,并il •算。
(课本P39例2-16) 115cc (0), 求解结果:10. 75000010.72383710. 72380510. 7238052、列主元素消去法求解线性方程组,1,算法原理:高斯消去法是利用现行方程组初等变换中的一种变换,即用一个不为零的数乘 -个 方程后加只另一个方程,使方程组变成同解的上三角方程组,然后再自下而上 对上三角3/16华北电力大学实验报告方程组求解。
数值计算方法 实验报告4

实验四 数值微积分实验学院:数学与计算机科学学院 专业:数学与应用数学 学号: 姓名:一. 实验目的1 利用复化求积公式计算定积分,并比较误差;2 比较一阶导数和二阶导数的数值方法,并绘图观察特点.二. 实验题目用复化梯形公式、复化辛普森公式、龙贝格公式求下列定积分,要求绝对误差为8105.0-⨯=ε,并将计算结果与精度解进行比较:⑴dx e x e x2321432⎰= ⑵dx x x ⎰-=322326ln .利用等距节点的函数值和端点的导数值,用不同的方法求下列函数的一阶和二阶导数,分析各种方法的有效性,并用绘图软件绘出函数的图形,观察其特点. ⑴35611201x x y -=,[]2,0∈x ⑵xey 1-=,[]5.0,5.2--∈x三. 实验原理1 复化梯形公式将积分区间[]b a ,剖分为n 等分,分点为)2,1,0( =+=k kh a x k ,其中n a b h /)(-=.在每个区间[]1,+k k x x 上用梯形公式,则有 ()()dx x fdxx fn k x xba k k∑⎰=⎰-=+11()()[][]∑⎭⎬⎫⎩⎨⎧++-=-=++1112n k k k kkk f R x f x f x x()()[][]f R x f x f h n k k n k k k ∑+∑+=-=-=+1112.记()()[]()()()[]∑++=∑+=-=-=+111222n k kn k k knx f b f a f hx f x f h T .2 复化辛普森公式 将积分区间[]b a ,剖分为n 等分,分点为)2,1,0( =+=k kh a xk,其中n a b h /)(-=.记区间[]1,+k k x x 的中点为21+k x ,在每个区间[]1,+k k x x 上用辛普森公式,则得到所谓的复化辛普森公式:()()⎥⎦⎤⎢⎣⎡+⎪⎭⎫⎝⎛+∑-=++-=+1211146k k kn k k k n xfx f x f x x S ,即()()()⎥⎦⎤⎢⎣⎡∑⎪⎭⎫ ⎝⎛+∑++=-=+-=1211426n k k n k knx f x fb f a f h S .3 龙贝格公式的算法步骤为: I.输入b a ,及精度ε; II.置,a b h -=()()()b f a f h T+=211;III. 置2,1,1===n j i ,对分区间[]b a ,,并计算111,+++i j i j T T :∑⎪⎭⎫ ⎝⎛+==-+nk k ii x f hT T 121111221,144111--=+++jijj jj i j T T T ;IV.若不满足终止条件,做循环:n n h h i i 2:,2/:,1:==+=, 计算∑⎪⎭⎫ ⎝⎛+==-+nk k ii x f hT T121111221, 对,,,1i j =计算:144111--=+++jijj jj i j T T T .4 向前差商公式:()()()ha f h a f a f -+≈';向后差商公式:()()()h h a f a f a f --≈';中心差商公式:()()()hh a f h a f a f 2--+≈';二阶导数公式:()()()()22hh a f a f h a f a f ++--≈''.四. 实验内容 实验一第一小题:对于方程dx e x e x2321432⎰=,利用程序shiyan1_01.m内容如下:%第一个函数的实验 clear clcfun=inline('(2/3)*x.^3.*exp(x.^2)'); S1=matrap(fun,1,2,170000); S2=masimp(fun,1,2,250); S3=maromb(fun,1,2,.5e-8); s=exp(4); Er1=abs(S1-s) Er2=abs(S2-s) Er3=abs(S3-s)第二小题:对于方程dx x x ⎰-=322326ln ,利用程序shiyan1_02.m内容如下:%第二个函数的实验 clearclcfun=inline('2*x./(x.^2-3)'); S1=matrap(fun,2,3,15000); S2=masimp(fun,2,3,100); S3=maromb(fun,2,3,.5e-8); s=log(6); Er1=abs(S1-s) Er2=abs(S2-s) Er3=abs(S3-s)实验二第一小题:对于方程35611201x x y -=,[]2,0∈x ,利用程序shiyan2_01.m内容如下:clear clcfun=inline('x.^5/20-(11./6)*x.^3'); dfun=inline('x.^4/4-(11./2)*x.^2'); ddfun=inline('x.^3-11*x'); n=8;h=2/n;x=0:h:2;x1=x(2:n); y=feval(fun,x); dy=feval(dfun,x1); ddy=feval(ddfun,x1); for i=2:ndy1(i)=(y(i+1)-y(i))/h; dy2(i)=(y(i)-y(i-1))/h;dy3(i)=(y(i+1)-y(i-1))/(2*h);ddy1(i)=(y(i+1)-2*y(i)+y(i-1))/(h*h); endfor i=1:n-1err1(i)=abs(dy1(i)-dy(i)); err2(i)=abs(dy2(i)-dy(i)); err3(i)=abs(dy3(i)-dy(i));errd2(i)=abs(ddy1(i)-ddy(i)); end[err1' err2' err3' errd2'] plot(x,y,'r')hold onplot(x1,dy,'y') plot(x1,ddy,'k')第二小题:对于方程xey 1-=,[]5.0,5.2--∈x ,利用程序shiyan2_02.m内容如下:clear clcfun=inline('exp(-1./x)');dfun=inline('(-1./x).*exp(-1./x)');ddfun=inline('(-1./(x.^2)).*exp(-1./x)+1./(x.^2)'); n=8;h=2/n;x=-2.5:h:-0.5;x1=x(2:n); y=feval(fun,x); dy=feval(dfun,x1); ddy=feval(ddfun,x1); for i=2:ndy1(i)=(y(i+1)-y(i))/h; dy2(i)=(y(i)-y(i-1))/h; dy3(i)=(y(i+1)-y(i-1))/(2*h);ddy1(i)=(y(i+1)-2*y(i)+y(i-1))/(h*h); endfor i=1:n-1err1(i)=abs(dy1(i)-dy(i)); err2(i)=abs(dy2(i)-dy(i)); err3(i)=abs(dy3(i)-dy(i)); errd2(i)=abs(ddy1(i)-ddy(i)); end[err1' err2' err3' errd2'] plot(x,y,'r')hold onplot(x1,dy,'y')plot(x1,ddy,'')五.实验结果实验一第一小题T =146.5012 0 0 0 0 0 0 083.9243 63.0653 0 0 0 0 0 062.6132 55.5095 55.0058 0 0 0 0 056.6535 54.6669 54.6108 54.6045 0 0 0 055.1154 54.6027 54.5984 54.5982 54.5982 0 0 054.7277 54.5984 54.5982 54.5982 54.5982 54.5982 0 054.6305 54.5982 54.5982 54.5982 54.5982 54.5982 54.5982 0 54.6062 54.5982 54.5982 54.5982 54.5982 54.5982 54.5982 54.5982Er1 =4.5922e-009Er2 =4.8409e-009Er3 =1.4211e-014第二小题T =2.5000 0 0 0 0 0 0 0 2.0192 1.8590 0 0 0 0 0 0 1.8564 1.8022 1.7984 0 0 0 0 0 1.8088 1.7929 1.7922 1.7921 0 0 0 0 1.7961 1.7918 1.7918 1.7918 1.7918 0 0 0 1.7928 1.7918 1.7918 1.7918 1.7918 1.7918 0 0 1.7920 1.7918 1.7918 1.7918 1.7918 1.7918 1.7918 0 1.7918 1.7918 1.7918 1.7918 1.7918 1.7918 1.7918 1.7918Er1 =4.9383e-009Er2 =4.0302e-009Er3 =1.0132e-012实验二第一小题ans =0.2196 0.2196 0.2196 2.1920 0.3627 0.8003 0.5815 2.1480 0.5711 1.4367 1.0039 2.0560 0.7667 2.0411 1.4039 1.91600.9447 2.5991 1.7719 1.72801.1003 3.09632.0983 1.4920 1.22873.5183 2.3735 1.2080 1.3251 3.8507 2.5879 0.87601.3847 4.07912.7319 0.4960第二小题ans =0.6932 0.6932 0.6932 0.1105 0.4680 0.5532 0.5106 0.5030 0.5236 0.6555 0.5895 0.7793 0.5907 0.8102 0.7005 1.2991 0.6692 1.0727 0.8709 2.3982 0.7473 1.6071 1.1772 5.15720.7567 3.0873 1.9220 14.2888六.实验结果分析1.利用复化辛普森公式比利用复化梯形公式,所取的n更小,当达到相同精度时,利用辛普森公式等分次数n更小,减少计算次数.2.若利用同一公式,所取n的大小与题设给出的精度ε之间的关系:当n越大时,与精度ε之间的误差越小;反之,当n越小时,与精度ε之间的误差越大。
《数值计算方法》试验报告册

《数值计算方法》实验报告册
姓名:
学号:
班级:
教师:
安徽农业大学理学院
应用数学系
学年第学期
目录
目录 (i)
实验报告范例 (1)
实验一 (5)
实验二 (7)
实验三 (12)
实验四 (15)
实验五 (17)
实验六 (19)
实验报告范例
说明:
1、具体实验题目与实验内容可自行根据实验指导书自行拟定;
2、报告填写用“宋体”(小四)格式字体;
3、实验报告完成后,以学生的“实验序号+姓名+学号”作为该word文件名保存,例
如“张三”学号为“08119000”,则本次实验报告的保存文件名为:“实验X 08119000 张三.doc”;
4、在规定的时间内,学生将本报告通过电子邮件提交给授课教师,邮件的主题为:实
验X 08119000 张三。
5、算法编程语言可自选,程序代码可直接复制于实验报告附表八中,也可将可执行文件
连同将实验报告压缩为rar格式文件一同提交。
实验一
实验二
2
31
21n n -00⎥⎥⎥
⎥⎦
1
2
11
2⎥⎥⎥⎥⎦ ,55⎥⎥-⎥
⎥-⎦
111134
22
4111⎥⎥⎥--
--⎥⎥⎥
实验三
实验四
实验五
实验六。
数值计算方法实验报告

3如果f[(a+b)/2]>0,则区间(a,(a+b)/2)内存在零点,(a+b)/2≤b;
返回①重新循环,不断接近零点。通过每次把f(x)的零点所在区间收缩一半的方法,使区间内的两个端点逐步逼近函数零点,最终求得零点近似值。
{
int z[10];
int maxi,maxj;
initdata();
for(int i=1;i<=N;i++)
z[i]=i;
for(int k=1;k<N;k++)
{
maxi=k;maxj=k;float maxv=abs(a[k][k]);
for(i=k;i<=N;i++)
for(int j=k;j<=N;j++)
34;请输入矩阵阶数:"<<endl;
cin>>N;
cout<<"请输入矩阵各项:"<<endl;
for(int i=1;i<=N;i++)
for(int j=1;j<=N+1;j++)
{
cin>>a[i][j];
}
cout<<endl;
}
void main()
{
for(i=1;i<=N;i++)
{
float t=a[i][k];a[i][k]=a[i][maxj];a[i][maxj]=t;
数值计算方法I实验报告

实验报告实验课程名称数值计算方法I开课实验室数学实验室学院理学院年级2012 专业班信息与计算科学2班学生姓名学号开课时间2012 至2013 学年第 2 学期实验一 误差分析试验1.1(病态问题)问题提出:考虑一个高次的代数多项式)1.1()()20()2)(1()(201∏=-=---=k k x x x x x p显然该多项式的全部根为1,2,…,20共计20个,且每个根都是单重的。
现考虑该多项式的一个扰动)2.1(0)(19=+x x p ε其中ε是一个非常小的数。
这相当于是对(1.1)中19x 的系数作一个小的扰动。
我们希望比较(1.1)和(1.2)根的差别,从而分析方程(1.1)的解对扰动的敏感性。
实验内容:为了实现方便,我们先介绍两个MA TLAB 函数:“roots ”和“poly ”。
roots(a)u =其中若变量a 存储n+1维的向量,则该函数的输出u 为一个n 维的向量。
设a 的元素依次为121,,,+n a a a ,则输出u 的各分量是多项式方程01121=+++++-n n n n a x a x a x a的全部根;而函数 poly(v)b =的输出b 是一个n+1维向量,它是以n 维向量v 的各分量为根的多项式的系数。
可见“roots ”和“poly ”是两个互逆的运算函数。
))20:1((;)2();21,1(;000000001.0ve poly roots ess ve zeros ve ess +===上述简单的MA TLAB 程序便得到(1.2)的全部根,程序中的“ess ”即是(1.2)中的ε。
实验要求:(1)选择充分小的ess ,反复进行上述实验,记录结果的变化并分析它们。
如果扰动项的系数ε很小,我们自然感觉(1.1)和(1.2)的解应当相差很小。
计算中你有什么出乎意料的发现?表明有些解关于如此的扰动敏感性如何?(2)将方程(1.2)中的扰动项改成18x ε或其它形式,实验中又有怎样的现象? (3)(选作部分)请从理论上分析产生这一问题的根源。
数值计算方法实验报告jrh

学院:自动化学院班级:自动化085姓名:学号:2011年3月一、实验的性质、目的和任务本实验是与本专业基础课《数值计算方法》相配套的,旨在巩固专业课内容和学生编程的能力。
通过实验加强对数值方法的理解和掌握,编制出适用的程序。
同时,在理论教学的基础上,注意方法处理的技巧及其与计算机的结合,;其次要通过例子,学习使用各种数值方法解决实际计算问题。
要求学生应用高级计算机语言Matlab编程完成实验。
二、实验基本要求要求熟悉高级计算机语言Matlab,以及相关上机操作说明;上机时要遵守实验室的规章制度,爱护实验设备;记录调试过程及结果。
三、实验原理应用高级计算机语言实现数值计算方法课程中的各种算法。
四、设备及器材配置主机:微机操作系统:WINDOWS 98以上软件:高级计算机语言Matlab五、考核与报告每个实验完成后交一份实验报告。
本实验作为平时成绩的一部分占学期期末总成绩的20%。
六、适用对象自动化专业七、主要参考书1.王能超编,《数值分析简明教程》,高等教育出版社,2003年,第2版2.封建湖编,《数值分析原理》,科学出版社,2001年,第1版3.冯有前编,《数值分析》,清华大学出版社,2005年,第1版4.周璐等译, John H. Mathews等编,《数值方法(MATLAB版)》,电子工业出版社,2007年,第二版实验一 采用拉格朗日方法计算插值一、 实验目的:1. 掌握多项式插值的概念、存在唯一性;2. 能够熟练地应用拉格朗日方法计算插值,并完成插值程序的设计和调试。
二、 实验内容:构造拉格朗日插值多项式()p x 逼近3()f x x =,要求:(1) 取节点01x =-,11x =求线性插值多项式1()p x ;(2) 取节点01x =-,10x =,21x =求抛物插值多项式2()p x ;(3) 取节点01x =-,10x =,21x =,32x =求三次插值多项式3()p x ;(4) 分别求1(1.3)p 、2(1.3)p 、3(1.3)p 的值,并与精确值相比较。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数值计算方法》上机实验报告华北电力大学实验名称数值il•算方法》上机实验课程名称数值计算方法专业班级:电力实08学生姓名:李超然学号:200801001008 成绩: 指导教师:郝育黔老师实验日期:2010年04月华北电力大学实验报告数值计算方法上机实验报吿一.各算法的算法原理及计算机程序框图1、牛顿法求解非线性方程*对于非线性方程,若已知根的一个近似值,将在处展开成一阶xxfx ()0, fx ()xkk泰勒公式"f 0 / 2 八八,fxfxfxxxxx 0 0 0 0 0 kkkk2!忽略高次项,有,fxfxfxxx 0 ()()(),,, kkk右端是直线方程,用这个直线方程来近似非线性方程。
将非线性方程的**根代入,即fx ()0, X ,* fxfxxx 0 0 0 0, ,, kkkfx 0 fx 0 0,解出fX 0 *k XX,, k' fx 0 k水将右端取为,则是比更接近于的近似值,即xxxxk, Ik, Ikfx ()k 八XX, Ikk* fx()k这就是牛顿迭代公式。
,2,计算机程序框图:,见,,3,输入变量、输出变量说明:X输入变量:迭代初值,迭代精度,迭代最大次数,\0输出变量:当前迭代次数,当前迭代值xkl,4,具体算例及求解结果:2/16华北电力大学实验报吿开始读入l>k/fx()0?,0fx 0 Oxx,,01* fx ()0XX,,,?10kk, ,1,kN, ?xx, 10输出迭代输出X输出奇异标志1失败标志,3,输入变量、输出变量说明: 结束例:导出计算的牛顿迭代公式,并il •算。
(课本P39例2-16) 115cc (0), 求解结果:10. 75000010.72383710. 72380510. 7238052、列主元素消去法求解线性方程组,1,算法原理:高斯消去法是利用现行方程组初等变换中的一种变换,即用一个不为零的数乘 -个 方程后加只另一个方程,使方程组变成同解的上三角方程组,然后再自下而上 对上三角3/16华北电力大学实验报告方程组求解。
列选主元是当高斯消元到第步时,从列的以下(包括)的各元素中选出绝aakkkkkk 对值最大的,然后通过行交换将其交换到的位置上。
交换系数矩阵中的 两行(包括常ekk数项),只相当于两个方程的位置交换了,因此,列选主元不影响求解的结 ,2,计算机程序框图:,见下页,输入变量:系数矩阵元素,常向量元素baiji 输出变量:解向量元素bbb,,12n,4,具体算例及求解结果:例:用列选主元法求解下列线性方程组(课本P65例3-3)0. 501. 103. 106. OOxxx, , ,, 123, 2. 004. 500. 360. 020xxx, , ,, 123,5. 000. 966. 500. 96xxx,, , 123,求解结果:X,,2. 600000, 1, X, 1. 000000, 2,X, 2. 0000003,3、分解法求解线性方程组LU,1,算法原理:求解线性方程组时,当对进行分解,则等价于求解,这时可归AAxbLULUxb,结为利用递推计算相继求解两个三角形(系数矩阵为三角矩阵)方程组,用顺代,山Lyb,求出,再利用回带,由求出。
xyUxy,,2,计算机程序框图:,见下贝,,3,输入变量、输出变量说明:输入变量:系数矩阵元素,常向量元素baiji4/16华北电力大学实验报告开始读入数据,abiji从主程序来ijn, 1,2,…,,ad, kkk, Ikl,选主元ki,, laaa/, ikkkik,ikkn, , , 1, 2,…,ad, ?ikaaaa,, i jikkjikad, i jkkn, 1, 2, …,,,ikbabb,, il, iikkii jkkn, 1,2,・• • 0,, , kk, , 1,ii, ,lin, ?kn, ,1?,,输出,d,0?奇异标志bab/, nnnn,n, 0/babab,, Ik, ?, ii j jiii 结束ji, , 1, inn,,, 1, 2…,1 ataata,…,1 jkjl jkjbtbbtb,,,,, Iklkbbb,,12n返回主程序结束5/16华北电力大学实验报告开始读入数据,abijiuain,,, 1, 2八…lliiaillin,,, 2, 3,…,ilullrl,ualuirrn,,, , ,, 1,・・•,, ririrrkik, 1rl,aillin,,, 2, 3,…,ilulllaluuirrn,,八,()/, 1, 2,…,,iririkkrrrk, 1i, 1ybyblyin,,,,,, 2, 3,…,,lliiikkk, 1xyuxyuxuin,、、、、!、()/, 1,,…,2, 1, nnnniiikkiiki, , 1输出XXX,, (12)结束输出变量:解向量元素bbb •…,1,2, ,n,4,具体算例及求解结果:例:用杜里特尔分解法求解方程组(课本P74例3-8),八 4771X, 2,八, X, 2. 000000, 1, X,, 2. 000000, 2 ,X, 1. 0000003, 6 / 16华北电力大学实验报告4、拉格朗日插值法 ,1,算法原理: nxx,i 构造基函数,可以证明基函数满足下列条件:Olx,,kxx,,0iki,ikOik,八 1x(),, kilik,,对于给定(l)n,个节点,次拉格朗日插值多项式由下式给出:nnnxx, i () Lxy,,, kxx,, 0, Okiki , ikX22332457X3,,求解结果:jkkn,八0…,1, 1ytyy, ,kkk, , Ikn, ?输出y结束5、最小二乘法的曲线拟合,1,算法原理:对于给定的一组数据,要在给定的函数空间(,()),l,2,・・・,xfxini,ii八Span{八•••,},,, Oln中找一个函数,,,0011nnii,0i*使满足,()x n***** >,,>,()()()---() Oxaxaxaxax,,8/16华北电力大学实验报告nim2*2*2,,,,,,,[() ()]min[() ()]xfxxfx,, iiii2,八()x,, llii**这种求拟合函数的方法称为曲线拟合的最小二乘法,称为最小二乘法的,Ox, Ox最小二乘解。
,2,计算机程序框图:开始读入数据Cn, 11Cxil叫八,2, 3,…,1,1111,11,Cxikm,八,2, 3,…,1, llkk, li,Cxxilkm,八…2, 3八…,1 (1) (l)klkl,,, li,by, 11,11,bxykm,八,2, 3…,1 (l)kkii,, li,进行分解,框图如分解法,得系数LULUakm, 0, 1, -. ■,, k输出aaa,八…,Oln结束,3,输入变量、输出变量说明:输入变量:已知数据点(Jxyii输出变量:拟合多项式的系数ai9/16华北电力大学实验报告,4,具体算例及求解结果:例:根据给定的函数的实例数据表,试用最小二乘法求二次拟合多项式。
(课本yfx, 0P186习题3)X 3506 1241y 151516 141414141求解结果:6 14. 92857206,0. 8928571 a, 0. 17857122yxx,, , , 1. 3181713. 4318110. 3863636、变步长梯形求积分,1,算法原理:设将积分区间分成等份,即有个子区间,分点,其中nnxakhkn, , ,, 0, 1,…,匚]abk步长ba, h, n对于子区间,利用体型求其积分近似值[Jxxkk, 1h [()0], fxfxkk, 12对于子区间有[Jabn, Ih , , [() ()]Tfxfx, nkk, 12k, 0对于子区间再取其中点[Jxxkk, 11 XXX,, 0llkk, k, 22作新节点,此时区间数增加了一倍为,2n对子区间,其积分近似值[Jxxkk, 1h [()2()()], , fxfxfxkkll, k, 4210/ 16华北电力大学实验报告对区间有[,]abn, Ih, , , [()2() OlTfxfxfx, 211nkk, k, 4k, 02 nn,, llhh 八[()()]0fxfxfx,, kk, Ilk, 42kk,, 002,2,i|•算机程序框图:开始hbahfafbT,,, ,,[()()] 12SfxSxhx,八,0,xb,?ThSl, ,T222,hTT,,,?,,hTT, 21212打印T2结束,3,输入变量、输出变量说明:输入变量:积分区间,精度,[Jab输出变量:T积分结果211/ 16华北电力大学实验报告,4,具体算例及求解结果:Isinx例:用变步长梯形公式求积法计•算。
(课本P209例6-13)dx, Ox求解结果:0.94608271、改进欧拉法,1,算法原理:当取值较小时,让梯形法的迭代公式只迭代一次就结束。
这样先用欧拉公式求(0)—个初步近似值,称之为预报值,预报值的精度不高,用它替代梯形法右端的,yym 1, nl再直接讣算得出,并称之为校正值,这时得到预报-校正公式。
将预报-校正公 式 yn, 1 (0),yyhfxy, , (, )nnnn, 1, ,h(0), , yyfxyfxyC)(,)八, lib , ,2 称为改进欧拉公式。
,2,计算机程序框图:,见下贝,,3,输入变量、输出变量说明:输入变量:处置点,区间长度,计算次数 OxyNhOO输出变量:初值问题的数值解法结果(Jxyll,4,具体算例及求解结果:例:求解初值问题(课本P242例7-2)2x,,yyx,,,,, 01, y,求解结果:xyyx 0 xyyx () nnnnnn12 / 16 华 北电力 大学实 验报告0. 5 1.416402 1.416402 1.0 1.737867 1.737867开始读入xyhN,,,00,nnnnnn.0. 1 1.095909 1.095909 0.6 1.485956 1. 485955 0.2 1. 184097 1. 184097 0.7 1.562514 1.552514 0. 3 1. 266201 1. 266201 0.8 1.616475 1.616474 0.4 1.343360 1.3433600.9 1.678320 1.678166l>nxhx, , 01yhfxyy, , (,) OOOpyhfxyy, , OOlpcyyy, , () /21pc输出xy, 11nn.XX, nN, ?10,yy, 10结束8、四阶龙格,库塔法求解常微分方程的初值问题,1,算法原理:XX,用区间内四个不同点上的函数值的线性组合就得到四阶龙格-库塔四阶龙格-库塔法111223344, kfxy, (,)Inn,, kfxhykh,,, yyhkkkk, , , , , (),,,,,nm,kfxhykhkh, ,,,(,)32211222nn,,,,,kfxhykhkhkh, , , , , (, )43311322333nn,,,,,其中,均为待定系xyyx 0 nnn 类似于前面的讨论,把kkk,,分别在X 点展开成的探级数,代入y 并进行花 间,h234nn, 14yx()然后与在X 点上的泰勒展开式比较,使其两式比较,使其两式右端直到的系数hn, In13 / 16华北电力大学实验报告相等,经过复朵的数学演算可得到关于的一组特解,,iiij,,,,1211222,,,,0,,,, 213132, ,, 1,,, 333从而得到下列常用的经典公式,h, yykkkk, , , , , (22) nn, 112346,,kfxy, (,)Inn, h, kfxyk, ,,21 Inn, 22,,h,, kfxyk (,),312nm 2, 2,kfxyhk ,,(,),413nn, 经典的龙格-库塔法每一步需要4次计算函数值,它具有四阶精度,即局部fxyC)5截断误差是。