数值分析课程设计报告(95分)

合集下载

数值分析课程报告

数值分析课程报告

插值法和多项式拟合的研究摘要在科研和生产实践中,常常需要通过一组测量数据来寻找变量x与y的函数关系近似表达式。

解决这类问题的方法有两种:一种是插值法,另一种是拟合法。

插值法的原理是用一个简单函数逼近被计算函数,然后用该简单函数的函数值近似替代被计算函数的函数值。

拟合法能够是从给定的一组实验数据出发,寻找函数的一个近似表达式,该近似表达式能反映数据的基本趋势而又不一定过全部的点,即曲线拟合。

本文主要介绍拉格朗日插值法、埃尔米特插值法、三次样条插值法以及基于最小二乘法的多项式拟合。

关键词:拉格朗日插值,埃尔米特插值,样条插值,多项式拟合1方法的意义在许多实际问题及科学研究中,因素之间往往存在着函数关系,然而,这种关系经常很难有明显的解析表达,通常只是由观察与测试得到一些离散数值。

有时,即使给出了解析表达式,却由于表达式过于复杂,不仅使用不便,而且不易于进行计算与理论分析。

解决这类问题的方法有两种:一种是插值法,另一种是拟合法。

插值法的原理是用一个简单函数逼近被计算函数,然后用该简单函数的函数值近似替代被计算函数的函数值。

它要求给出函数的一个函数表,然后选定一种简单的函数形式,比如多项式、分段线性函数及三角多项式等,通过已知的函数表来确定一个简单的函数()x ϕ作为()f x 的近似,概括地说,就是用简单函数为离散数组建立连续模型。

插值法在实际应用中非常广泛,但是它也有明显的缺陷,一是测量数据常常带有测试误差,而插值多项式又通过所有给出的点,这样就是插值多项式保留了这些误差;二是如果实际得到的数据过多,则必然得到次数较高的插值多项式,这样近似的效果并不理想。

拟合法能够很好的解决这些问题,它从给定的一组实验数据出发,寻找函数的一个近似表达式y=()x ϕ,该近似表达式能反映数据的基本趋势而又不一定过全部的点,即曲线拟合的问题,函数的近似表达式y=()x ϕ称为拟合曲线。

常用最小而二乘法来确定拟合曲线。

2插值法的介绍2.1 插值法定义设 f (x )为[a ,b ]上的函数,在互异点n x x x ,...,,10处的函数值分别为 )(),...,(),(10n x f x f x f ,构造一个简单函数 ϕ(x ) 作为函数 f (x ) 的近似表达式y = f (x ) ≈ ϕ(x ),使)()(i i x f x =ϕ , i =0, 1, 2, …,n (1.0) 则称ϕ(x ) 为关于节点n x x x ,...,,10的插值函数;称n x x x ,...,,10 为插值节点;称))((i i x f x , i =1,2,… , n 为插值点;f (x ) 称为被插值函数。

数值分析(计算方法)课程设计实验报告(附程序)

数值分析(计算方法)课程设计实验报告(附程序)

n=4 时,max[L(X)-h(X)]=0.4020;
n=8 时,max[L(X)-h(X)]=0.1708;
n=10 时,max[L(X)-h(X)]=0.1092。
图象分析: 从图象可以看出随着插值节点数的增加出现异常的摆动,中间能较好的接近 原函数,但两边却出现很大的误差。
(3).对定义在(-5,5)上的函数
程序代码 2:
x=[-1:0.2:1]; y=1./(1+25.*x.^2); x0=[-1:0.01:1]; y0=lagrange(x,y,x0); y1=1./(1+25.*x0.^2);
plot(x0,y0,'--r'); hold on; plot(x0,y1,'-b'); x2=abs(y0-y1); max(x2) ; 程序代码3: n=3; for i=1:n x(i)=cos(((2.*i-1).*pi)./(2.*(n+1))); y(i)=1./(1+25.*x(i).*x(i)); end x0=-1:0.01:1; y0=lagrange(x,y,x0); y1=1./(1+25.*x0.^2); plot(x0,y0,'--r') hold on plot(x0,y1,'-b')
以 x1,x2,„,xn+1 为插值节点构造上述各函数的 Lagrange 插值多项式, 比较其 结果。
设计过程: 已知函数 f(x)在 n+1 个点 x0,x1,…,xn 处的函数值为 y0,y1,…,yn 。 求一 n 次多 项式函数 Pn(x),使其满足: Pn(xi)=yi,i=0,1,…,n. 解决此问题的拉格朗日插值多项式公式如下

大学数值分析课程设计

大学数值分析课程设计

大学数值分析课程设计一、课程目标知识目标:1. 理解数值分析的基本概念,掌握数值计算方法及其数学原理;2. 掌握线性代数、微积分等基本数学工具在数值分析中的应用;3. 学会分析数值算法的稳定性和误差,评估数值结果的正确性。

技能目标:1. 能够运用数值分析方法解决实际工程和科学研究问题;2. 掌握常用数值分析软件的使用,提高数据处理和问题求解的效率;3. 培养编程实现数值算法的能力,提高解决复杂问题的技能。

情感态度价值观目标:1. 培养学生对数值分析的浓厚兴趣,激发学习积极性;2. 培养学生的团队合作精神,提高沟通与协作能力;3. 增强学生的数学素养,使其认识到数学在科学研究和社会发展中的重要性。

课程性质分析:本课程为大学数值分析课程,旨在教授学生数值计算的基本理论和方法,培养学生解决实际问题的能力。

学生特点分析:学生具备一定的高等数学基础,具有较强的逻辑思维能力和抽象思维能力。

教学要求:1. 注重理论与实践相结合,提高学生的实际操作能力;2. 鼓励学生主动参与讨论,培养学生的创新意识和解决问题的能力;3. 结合实际案例,强化学生对数值分析在工程和科研中的应用认识。

二、教学内容1. 数值分析基本概念:包括误差分析、稳定性、收敛性等;教材章节:第一章 数值分析概述2. 数值线性代数:矩阵运算、线性方程组求解、特征值与特征向量计算等;教材章节:第二章 线性代数的数值方法3. 数值微积分:数值积分、数值微分、常微分方程数值解等;教材章节:第三章 微积分的数值方法4. 非线性方程与系统求解:迭代法、牛顿法、弦截法等;教材章节:第四章 非线性方程与系统的数值解法5. 优化问题的数值方法:线性规划、非线性规划、最小二乘法等;教材章节:第五章 优化问题的数值方法6. 数值模拟与数值实验:蒙特卡洛方法、有限元方法、差分方法等;教材章节:第六章 数值模拟与数值实验7. 数值软件应用:MATLAB、Python等数值计算软件在数值分析中的应用;教材章节:第七章 数值软件及其应用教学进度安排:第1-2周:数值分析基本概念第3-4周:数值线性代数第5-6周:数值微积分第7-8周:非线性方程与系统求解第9-10周:优化问题的数值方法第11-12周:数值模拟与数值实验第13-14周:数值软件应用及综合案例分析教学内容确保科学性和系统性,注重理论与实践相结合,提高学生的实际操作能力。

数值分析课程设计论文

数值分析课程设计论文

《数值分析课程设计》报告专业:信息与计算科学学号: xxxxxxxxx学生姓名: xxx指导教师: xxx一.题目掌握拉格朗日插值函数和三次样条插值函数的构造方法,试比较两种插值函数的优劣,并且说明原因。

二、理论拉格朗日插值函数的定义和构造:通过1n +个节点012n x x x x <<<<…的n 次插值多项式()n L x ,假定它满足条件()n j j L x y = ,0,1,2,,.j n =…………………………………………………………① 为了构造L ()n x ,我们先定义n 次插值基函数。

若n 次多项式()(0,1,,)j l x j n =…在1n +个节点01n x x x <<<…上满足条件1,(),0,1,,.0,j k k j l x j k n k j =⎧==⎨≠⎩………………………………………………………②就称这1n +个n 次多项式01(),(),,()n l x l x l x …为节点01,,,n x x x …上的n 次插值基函数。

通过推导方法可得到n 次插值基函数为011011()()()()()()()()()k k n k k k k k k k n x x x x x x x x l x x x x x x x x x -+-+----=----…………0,1,,.k n =………………………③显然它满足条件②。

于是,满足条件①的插值多项式()n L x 可表示为0().nn k k k L y l x ==∑………………………………………………………………………④由()k l x 的定义,知0()(),0,1,,.nn j k k j j k L x y l x y j n ====∑…形如④式的插值多项式L ()n x 称为拉格朗日插值多项式。

若引入记号101()()()()n n x x x x x x x ω+=---……………………………………………………⑤容易求得'1011()()()()()n k k k k k k k n x x x x x x x x x ω+-+=----……于是公式④可改写成1'1()L ().()()nn n kk k n x x y x x x ωω+=+=-∑………………………………………………………⑥ 注意:n 次插值多项式()n L x 通常是次数为n 的多项式,特殊情况下次数可能小于n 。

数值分析课程设计(最终版)

数值分析课程设计(最终版)

数值分析课程设计(最终版)本⽂主要通过Matlab 软件,对数值分析中的LU 分解法、最⼩⼆乘法、复化Simpon 积分、Runge-Kutta ⽅法进⾏编程,并利⽤这些⽅法在MATLAB 中对⼀些问题进⾏求解,并得出结论。

实验⼀线性⽅程组数值解法中,本⽂选取LU 分解法,并选取数据于《数值分析》教材第5章第153页例5进⾏实验。

所谓LU 分解法就是将⾼斯消去法改写为紧凑形式,可以直接从矩阵A 的元素得到计算L 、U 元素的递推公式,⽽不需要任何步骤。

⽤此⽅法得到L 、U 矩阵,从⽽计算Y 、X 。

实验⼆插值法和数据拟合中,本⽂选取最⼩⼆乘拟合⽅法进⾏实验,数据来源于我们课堂学习该章节时的课件中的多项式拟合例⼦进⾏实验。

最⼩⼆乘拟合是⼀种数学上的近似和优化,利⽤已知的数据得出⼀条直线或者曲线,使之在坐标系上与已知数据之间的距离的平⽅和最⼩。

利⽤excel 的⾃带函数可以较为⽅便的拟合线性的数据分析。

实验三数值积分中,本⽂选取复化Simpon 积分⽅法进⾏实验,通过将复化Simpson 公式编译成MATLAB 语⾔求积分∫e ;x dx 10完成实验过程的同时,也对复化Simpon 积分章节的知识进⾏了巩固。

实验四常微分⽅程数值解,本⽂选取Runge-Kutta ⽅法进⾏实验,通过实验了解Runge-Kutta 法的收敛性与稳定性同时学会了学会⽤Matlab 编程实现Runge-Kutta 法解常微分⽅程,并在实验的过程中意识到尽管我们熟知的四种⽅法,事实上,在求解微分⽅程初值问题,四阶法是单步长中最优秀的⽅法,通常都是⽤该⽅法求解的实际问题,计算效果⽐较理想的。

实验五数值⽅法实际应⽤,本⽂采⽤最⼩⼆乘法拟合我国2001年到2015年的⼈⼝增长模型,并预测2020年我国⼈⼝数量。

关键词:Matlab ;LU 分解法;最⼩⼆乘法;复化Simpon 积分;Runge-Kutta⼀.LU分解法 (1)1.1实验⽬的 (1)1.2基本原理 (1)1.3实验内容 (2)1.4数据来源 (3)1.5实验结论 (3)⼆.Lagrange插值 (4)2.1实验⽬的 (4)2.2基本原理 (5)2.3实验内容 (5)2.4数据来源 (6)2.5实验结论 (6)三.复化simpon积分 (7)3.1实验⽬的 (7)3.2基本原理 (7)3.3实验内容 (7)3.4数据来源 (8)3.5实验结论 (8)四.Runge-Kutta⽅法 (9)4.1实验⽬的 (9)4.2基本原理 (9)4.3实验内容 (10)4.4数据来源 (11)4.5实验结论 (11)五.数值⽅法实际应⽤ (11)5.1实验⽬的 (11)5.2基本原理 (12)5.3实验内容 (12)5.4数据来源 (13)5.5实验结论 (13)总结 (16)参考⽂献 (17)⼀.LU 分解法1.1实验⽬的[1] 了解LU 分解法的基本原理和⽅法;[2] 通过实例掌握⽤MATLAB 求线性⽅程组数值解的⽅法; [3] 编程实现LU 分解1.2基本原理对于矩阵A ,若存在⼀个单位下三⾓矩阵L 和⼀个上三⾓U ,使得A =LU (1.1)。

数值分析实验报告(插值法)

数值分析实验报告(插值法)

武汉理工大学学生实验报告书实验课程名称数值分析开课学院计算机科学与技术学院指导老师姓名学生姓名学生专业班级2010—2010学年第一学期实验课程名称:数值分析第二部分:实验调试与结果分析(可加页)一、调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等)(1)用拉格朗日插值法计算时,输入及运行结果如下:拉格朗日插值法牛顿插值法(2)利用二次插值计算时,输入及运行结果如下:拉格朗日插值法牛顿插值法(3)用艾尔米特插值法计算时,f(x)的插值多项式H5(x)=(1+4*x)*(x-0.5)*(x-0.5)*(x-2)*(x-2)+(3.90807-6.03838*x)*(x-2)*(x-2)*x*x+(2.34573-4.16674*x)*x*x*(x-0.5)*(x-0.5)(4)各插值算法的精度差异比较经过比较,拉格朗日插值法要比牛顿插值法算法的计算量多一些,拉格朗日插值法后一次计算时用到了前一次计算的结果,提高了运算的效率,但拉格朗日插值法在构造艾尔米特插值法时很方便,将坐标点和对应的导数结合起来的精度比线性插值的精度又要高一些。

但从实验数据来看,在坐标不是很多的情况下,已知的点越多精度也就相对较高。

对于实验要求的第二组数据用拉格朗日插值法(或者牛顿插值法)实验结果如下:一下分别是二阶、三阶、四阶、五阶插值得到的结果以上只是实验结果的一部分,改变插值的位置时,得到的实验结果精度也是有所不同的。

由以上结果分析可知,插值次数并不是越多越好,多了反而会让结果更加偏离真实结果,这充分说明了高次插值存在“病态性质”,在已知点很多的情况下应该采用分段低次插值,将拉格朗日插值法和牛顿插值法运用到分段低次插值法当中,这样得到的结果可能胡更加精确。

数值分析实验报告

数值分析实验报告
i −1 1 (bi − ∑ aij x j − aii j =1
高斯-赛德尔迭代流程图如图 2 所示。
计算 xi =
j =i + 1
∑a
n
1j
x (j0 ) )
k=k+1
x (0 )=x

x − x (0 ) < ε


k>N
输出x

结束
3.设计算法求解 设计算法为“共轭梯度—高斯赛德尔联合迭代法” 。单纯的共轭梯度算法在求解此病 态矩阵时精度不够高,但迭代时间非常短;高斯赛德尔迭代精度可达很高,但迭代时间 很长。所以,将两种算法联合起来,先利用共轭梯度算法迭代产生具有一定精度的解, 将此解作为高斯赛德尔迭代的初值求解更高精度的解。这样既缩短了求解时间,又可得 到足够精确的解。 “共轭梯度—高斯赛德尔联合迭代法”流程图如图 3 所示。
3
生成矩阵 A 和 b 平衡处理 A 和 b 生成 x 和 x1
注: x—精确解向量 x1—迭代向量
ε —共轭梯度迭代精度
输出 x1
Y
x − x1 ∞ < ε
N 共轭梯度迭代求解
图 3 “共轭梯度法”流程图
(三)实验结果 1.列主元高斯消去算法求解 依图 1 所示流程图利用 matlab 编程求解。 5 阶 hilbert 矩阵 A 的列主元消去过程为 以 例说明所编程序为列主元消去。消去过程:
Hn x = b
1/ 2 L 1/ n 1 1/ 2 L 1/(n + 1) ; 1/ 3 H n = (hij ) = M M M 1/ n 1/(n + 1) L 1/(2n − 1)
(1)
式中:

[调研报告]《数值分析》课程设计报告范文

[调研报告]《数值分析》课程设计报告范文

课程设计报告课程设计题目: 非线性方程求解2011年 11月 27 日题目:用二分法,简单迭代法、牛顿迭代法以及弦截法求非线性方程2sin 02-=x x误差不超过10-4,输出迭代次数,初始值和根的近似值。

一、摘要在matlab 环境下运用熟悉的计算机编程语言结合二分法、简单迭代法、牛顿迭代法以及弦截法求解非线性方程,在运行完程序后,对运行结果做出了各方面的分析和比较。

最终得出二分法迭代次数最多,需14次,而简单迭代法、牛顿迭代法以及弦截法的迭代次数都较少,只需4—5次。

由于方程有多个解,所以当赋的初始值不同或给定的区间不同时,根的近似值也会有所不同。

二、设计目的用熟悉的计算机语言编程,上机完成用二分法、简单迭代法、牛顿迭代法以及弦截法求解非线性方程,掌握各种方法的理论依据及求解思路,了解各种迭代方法的异同。

三、理论基础二分法:二分法就是将方程根所在的区间平分为两个小区间,再判断根属于哪个小区间;把有根的小区间再平分为二,再判断根所在的更小的区间,对分;重复这一过程,最后求出所要的近似值。

简单迭代法:简单迭代法是将方程()0f x =化为一个等价的方程:()(1)x x ϕ=从而构成序列:1()0,1,2...(2)k k x x k ϕ+==即给定一个初值0x ,由(2)可算得10()x x ϕ=,再将1x 带入(2)的右端,又可得21()x x ϕ=,…。

我们{k x }为迭代序列,而称(1)式中的()x ϕ为迭代函数,(2)为迭代格式。

如果()x ϕ连续,迭代序列{k x }收敛于*x ,则*x 就是方程(1)的解。

事实上*1()()()lim lim lim k k k k k k x x x x ϕϕϕ+→∞→∞→∞===,又*1,k k x x +→∞→,亦即:**()x x ϕ=或*()0f x =所以,如果迭代序列收敛,总能收敛于原方程的解。

实际计算中,无穷过程不可能实现,只迭代到一定程度,取1k x +作为原方程的近似根。

《数值分析》课程设计

《数值分析》课程设计

1.直接三角形分解#include<stdio.h>#include<math.h>#define N 10double a[N][N],b[N],X[N],Y[N],u[N][N],v[N][N],c[N][N];int n;void input(){int i,j;printf("请输入矩阵的阶数n=");scanf("%d",&n);printf("请输入矩阵的各项元素(按矩阵形式输入以空格隔开)a[n][n]:\n");for(i=0;i<n;i++)for(j=0;j<n;j++)scanf("%lf",&a[i][j]);printf("请输入矩阵的常数列:\n");for(i=0;i<n;i++)scanf("%lf",&b[i]);}void solveUandV(){int i,j,k;double temp1,temp2;for(i=n-1;i>=0;i--){for(j=i;j>=0;j--){temp1=0;for(k=i+1;k<n;k++){temp1+=u[j][k]*v[k][i];}u[j][i]=a[j][i]-temp1;temp2=0;for(k=i+1;k<N;k++){temp2+=u[i][k]*v[k][j];}v[i][j]=(a[i][j]-temp2)/u[i][i];}}printf("上三角u为:\n");for(i=0;i<n;i++){for(j=0;j<n;j++)printf("%lf\t",u[i][j]);printf("\n");}printf("下三角单位矩阵v为:\n");for(i=0;i<n;i++){for(j=0;j<n;j++)printf("%lf\t",v[i][j]);printf("\n");}}void substituting(){int i,j;double temp1,temp2;printf("中间解Y=\n");for(i=n-1;i>=0;i--){temp1=0;for(j=i+1;j<n;j++)temp1+=Y[j]*u[i][j];Y[i]=(b[i]-temp1)/u[i][i];printf("%lf\t\t",Y[i]);}printf("\n");for(i=0;i<n;i++){temp2=0;for(j=0;j<i;j++){temp2+=X[j]*v[i][j];}X[i]=Y[i]-temp2;}}void verification(){int i,j,k;double t;for(i=0;i<n;i++){for(j=0;j<n;j++){t=0;for(k=0;k<n;k++)t+=u[i][k]*v[k][j];c[i][j]=t;}}printf("原系数矩阵为:\n");for(i=0;i<n;i++){for(j=0;j<n;j++)printf("%lf\t",c[i][j]);printf("\n");}}void output(){int i;printf("方程的解为:\n");for(i=0;i<n;i++)printf("x[%d]= %lf\n",i,X[i]); }void main(){input();solveUandV();substituting();verification();output();}结果:#include"iostream.h"#include"math.h"#define e 0.00000000000001 double f(double x){double y;if (x==0){return y=1.0;}else y=sin(x)/x;return y;}void romberg(double a,double b) {int n=1,k=0;double h,T2,S2=0,C2=0,R2=0,T1,C1,S1,R1;h=(b-a)/2;T2=h*(f(a)+f(b));while (fabs((R2-R1))>e){R1=R2;T1=T2;S1=S2;C1=C2;double sum=0;int i;for(i=1;i<=n;i++){sum=sum+f(a+(2*i-1)*h);}T2=T1/2+sum*h;S2=(4*T2-T1)/3;C2=(16*S2-S1)/15;R2=(64*C2-C1)/63;n=n*2;k++;h=h/2;}cout<<"*****最后结果为:"<<"I="<<R2<<endl;}void main(){double a,b;cout<<"***输入上下限a,b的值用空格隔开***"<<endl;cin>>a>>b;cout<<"***下限a="<<a<<endl;cout<<"***上限b="<<b<<endl;cout<<"***被积函数为:y=sin(x)/x"<<endl;cout<<"*********************结果如下*********************"<<endl;romberg(a,b);}牛顿插值:#include <iostream.h>#include <math.h>void main(){int n,i,j;double A[50][50];double x[50],y[50];double K=1,X=0,N=0,P;cout<<"请输入所求均差阶数:";cin>>n;for(i=0;i<=n;i++){cout<<"请输入x"<<i<<"=";cin>>x[i];cout<<"请输入y"<<i<<"=";cin>>y[i];A[i][0]=x[i]; A[i][1]=y[i];}for(j=2;j<=n+1;j++){for(i=1;i<=n;i++){A[i][j]=(A[i][j-1]-A[i-1][j-1])/(A[i][0]-A[i-j+1][0]);}}for(i=0;i<=n;i++){cout<<"输出第"<<i<<"阶均差为:"<<A[i][i+1]<<endl;}cout<<"请所要代入计算的x的值:X=";cin>>X;for(i=0;i<n;i++){K*=X-x[i];N+=A[i+1][i+2]*K;P=A[0][1]+N;}cout<<"所要求的函数值为:y="<<P<<endl;}(1)Jacobi迭代法#include<stdio.h>#include<math.h>void main(){float a[10][11],x1[10],x2[10],temp=0,fnum=0; int i,j,n,bk=0;printf("输入方程组的未知数的个数(n<10):\nn="); scanf("%d",&n);for(i=1;i<n+1;i++)x1[i]=0;printf("\n输入方程组的系数矩阵:\n");for(i=1;i<n+1;i++){j=1;while(j<n+1){printf("a%d%d=",i,j);scanf("%f",&a[i][j]);j++;}}printf("输入方程组的常数项:\n");for(i=1;i<n+1;i++){printf("b%d=",i);scanf("%f",&a[i][n+1]);}printf("\n");while(bk!=1){for(i=1;i<n+1;i++){for(j=1;j<n+1;j++){if (j!=i)temp=a[i][j]*x1[j]+temp;}x2[i]=(a[i][n+1]-temp)/a[i][i]; temp=0;}for(i=1;i<n+1;i++){fnum=float(fabs(x1[i]-x2[i])); if(fnum>temp) temp=fnum;}if(temp<=pow(10,-4)) bk=1;for(i=1;i<n+1;i++)x1[i]=x2[i];}printf("原方程组的解为:\n");for(i=1;i<n+1;i++){printf("x%d=%7.4f ",i,x1[i]); printf("\n");}}(2)Gauss-Seidel迭代法# include <stdio.h># include <math.h>double sd(double c[3][3],double d[3],int n,double x[3],double ep,int ip,int nmax) {int i,j,k;double emax,s;k=0;do{emax=0;for(i=0;i<n;i++){s=d[i];for(j=0;j<n;j++){s=s+c[i][j]*x[j];}if(fabs(s-x[i])>emax) emax=fabs(s-x[i]);x[i]=s;}k=k+1;}while((emax>ep)&&(k<nmax));if(k>=nmax) ip=-1;else ip=1;return(x[0],x[1],x[2]);}void main(){double ep;int n,ip,nmax;double c[3][3]={{0,0.2,0.1},{0.2,0,0.1},{0.2,0.4,0}};static double d[3]={0.3,1.5,2};static double x[3]={0,0,0};n=3;ip=1;ep=0.000001;nmax=10;sd(c,d,3,x,ep,ip,nmax);if(ip==1){printf("Guass-Seideln");printf("the solution of equestion:n");printf("x1=%1.10fnx2=%1.10fnx3=%1.10fn",x[0],x[1],x[2]);} else printf("seidel method is failure");}。

数值分析课程设计报告

数值分析课程设计报告

数值分析课程设计报告姓名班级学号所在单位指导老师201 年月日实验一1.1 水手、猴子和椰子问题:五个水手带了一只猴子来到南太平洋的一个荒岛上,发现那里有一大堆椰子。

由于旅途的颠簸,大家都很疲惫,很快就入睡了。

第一个水手醒来后,把椰子平分成五堆,将多余的一只给了猴子,他私藏了一堆后便又去睡了。

第二、第三、第四、第五个水手也陆续起来,和第一个水手一样,把椰子分成五堆,恰多一只给猴子,私藏一堆,再去入睡,天亮以后,大家把余下的椰子重新等分成五堆,每人分一堆,正好余一只再给猴子,试问原先共有几只椰子?试分析椰子数目的变化规律,利用逆向递推的方法求解这一问题(15621)。

①程序清单n=input('input n:');for x=1:np=5*x+1;for k=1:5p=5*p/4+1;endif p==fix(p),break,endenddisp([x,p])②运行结果运行这段程序后,屏幕出现要求从键盘输入 x 数据的信息input n,输入1200后,MATLAB计算出合适的 x 和 p0 的值为1023 15621截图如下:③算法性能分析(算法思想、精度、复杂度)算法思想:使用逆推的方式解决问题。

每个水手起来的椰子数量等于前一个水手醒来时椰子数量少一的五分之四。

最后每个水手得到的椰子数量会等于最后一堆椰子少一的五分之一。

根据这个逆推,由于椰子的数量是整数,所以利用循环语句知道整数的解答为止。

要使得最初的椰子数p 0为整数,必须取 (x +1) 为 4 5( =1024)的倍数,一种简单的处理可取 x = 1023。

1.2 设,15nn x I dx x=+⎰ (1)从0I 尽可能精确的近似值出发,利用递推公式:115(1,2,20)n n I I n n-=-+=计算机从1I 到20I 的近似值;(2)从30I 较粗糙的估计值出发,用递推公式:111(30,29,,3,2)55n n I I n n-=-+=计算从1I 到20I 的近似值;(3)分析所得结果的可靠性以及出现这种现象的原因。

数值分析课程设计实验报告

数值分析课程设计实验报告

院系:数学与统计学学院专业:信息与计算科学年级: 11级课程名称:数值分析课程设计 2014年6月11日一摘要从设计图形用户界面的框架结构及实现人机交互人手,着重说明用MATLAB语言进行图形用户界面程序设计时数值分析算法动态演示系统界面及集成测试,并以具体实例,详细论述制作图形用户界面时回调函数的编写方法。

本文探讨了数值分析算法动态演示系统界面和系统集成及测试。

将数值分析课程设计所需要的输入和结果用GUI界面显示出来,自动生成所需要的生成报告,将结果用图形和文本输出的两种方式展示出来,方便老师的批阅同时也是学生自己一目了然。

关键词:MATLAB;图形用户界面;动态演示;集成测试;控件设计;回调函数二引言MATLAB是一套高性能的数值分析和可视化的科技应用软件。

它集高效的数值分析、完备的信号处理和图像处理、功能丰富的应用工具箱为一体,构成了一个方便快捷,界面友好的用户环境,是一种适应多种硬件平台的数学计算工具,它的出现给各课程的计算机辅助教学带来了福音。

特别是它的集成图形用户界面GUIDE(Graphical User Interface Development Environment),包含了窗口菜单、对话框、按钮和文本等各种控件的用户界面,用户通过键盘或鼠标操作,就可以设计出具有自己独特风格的图形界面,再通过编写回调函数皆可以实现GUI与用户之间的交互,为教学课件的制作提供了极大的方便,GUIDE程序设计分两步进行,一是静态图形界面制作,二是控件回调函数编程。

1 静态图形界面制作在matlab 的命令窗口中键入“guide”命令,启动GUIDE 的GUI 编辑器,GUI 控制面板包括了所有的图形界面控件uicontrol,如按钮(Push Butter)、滑动条(Slider)、单选按钮(Radio Butter)、复选框(Check box)、文本框(Edit Text)、文本标签(Ststic Text)、下拉菜单(PopupMenu)、下拉列表框(List box)、双位按钮(Toggle Butter)、坐标轴(Axes)等,用户选中需要的控件,拖移到空白处,即可创建出相应的控件,并通过拖拉可调整其大小,如图1所示。

合工大数值分析课程设计

合工大数值分析课程设计

合工大数值分析课程设计一、课程目标知识目标:1. 掌握数值分析的基本概念、原理及方法,如插值、数值微积分、常微分方程数值解等;2. 理解数值算法的稳定性、收敛性等性能指标,并能够分析给定数值问题的适用算法;3. 了解数值分析在工程、物理及计算机科学等领域的应用,并能运用所学知识解决实际问题。

技能目标:1. 能够运用数值分析方法解决实际工程问题,具备数值计算编程能力;2. 能够运用所学软件(如MATLAB等)进行数值实验,分析实验结果,优化算法;3. 能够对给定数值问题进行误差分析,提出改进措施,提高计算精度。

情感态度价值观目标:1. 培养学生严谨的科学态度,认识到数值分析在工程技术领域的重要性;2. 激发学生对数值分析的兴趣,培养其主动探索、创新的精神;3. 增强学生的团队协作意识,提高沟通与交流能力。

本课程针对合肥工业大学数值分析课程设计,结合大三年级学生特点,注重理论与实践相结合,培养学生的数值计算能力和实际应用能力。

课程目标旨在使学生在掌握基本理论知识的基础上,能够解决实际问题,提高学生的综合素质,为未来的学术研究或工程实践打下坚实基础。

通过对课程目标的分解,教师可以更好地进行教学设计和评估,确保学生达到预期学习成果。

二、教学内容本章节教学内容主要包括以下几部分:1. 数值分析基本概念:介绍数值分析的定义、研究内容及其在工程中的应用。

- 教材章节:第1章 数值分析引论2. 插值法:讲解拉格朗日插值、牛顿插值、样条插值等方法。

- 教材章节:第2章 插值法3. 数值微积分:介绍数值积分和数值微分的基本原理及方法。

- 教材章节:第3章 数值微积分4. 常微分方程数值解:讲解初值问题和边值问题的数值解法。

- 教材章节:第4章 常微分方程数值解5. 线性方程组的迭代法:介绍雅可比迭代、高斯-赛德尔迭代等方法。

- 教材章节:第5章 线性方程组迭代法6. 数值算法性能分析:分析算法的稳定性、收敛性等性能指标。

数值分析课程设计95分

数值分析课程设计95分

数值分析课程设计95分一、教学目标本节课的教学目标是让学生掌握数值分析的基本概念和方法,培养学生运用数值分析解决实际问题的能力。

具体目标如下:1.知识目标:(1)了解数值分析的基本概念和研究对象;(2)掌握数值逼近、数值积分和数值解方程等基本方法;(3)了解数值分析在工程和科学计算中的应用。

2.技能目标:(1)能够运用数值分析方法解决实际问题;(2)能够正确选择合适的数值方法并分析其优缺点;(3)能够编写简单的数值计算程序。

3.情感态度价值观目标:(1)培养学生对数值分析的兴趣和好奇心;(2)培养学生勇于探索、严谨治学的科学态度;(3)培养学生团队协作、交流分享的合作精神。

二、教学内容本节课的教学内容主要包括数值分析的基本概念、数值逼近、数值积分和数值解方程等。

具体安排如下:1.数值分析的基本概念:介绍数值分析的研究对象、特点和方法。

2.数值逼近:包括插值法、函数逼近法和数值微积分。

3.数值积分:介绍数值积分的基本方法和误差分析。

4.数值解方程:包括线性方程组的求解、非线性方程的求解和最优化问题。

三、教学方法为了提高学生的学习兴趣和主动性,本节课将采用多种教学方法相结合的方式。

具体方法如下:1.讲授法:用于讲解数值分析的基本概念、原理和方法。

2.案例分析法:通过分析实际案例,让学生了解数值分析在工程和科学计算中的应用。

3.实验法:让学生动手编写数值计算程序,培养实际操作能力。

4.讨论法:学生分组讨论,促进学生间的交流与合作。

四、教学资源为了支持教学内容和教学方法的实施,本节课将采用以下教学资源:1.教材:《数值分析教程》;2.参考书:《数值分析与应用》;3.多媒体资料:数值分析相关视频、动画等;4.实验设备:计算机、编程环境等。

通过以上教学资源的使用,丰富学生的学习体验,提高学生的学习效果。

五、教学评估本节课的评估方式包括平时表现、作业和考试等,以全面反映学生的学习成果。

具体评估方式如下:1.平时表现:通过观察学生在课堂上的参与程度、提问回答等情况,评估学生的学习态度和理解程度。

数值分析课程方案报告(分)

数值分析课程方案报告(分)

数值分析课程设计报告设计题1、2、3、5学院、系:专业:姓名:学号:任课教师:提交日期:电子邮箱:目录[设计题一]31.1问题分析与设计思路31.2程序清单41.4 结果分析71.5设计总结7[设计题二]82.1问题分析与设计思路82.2程序清单82.3 运行结果102.4结果分析与设计总结10 [设计题三]113.1问题分析与设计思路113.2程序清单113.3 运行结果133.4结果分析与设计总结13 [设计题五]144.1问题分析与设计思路144.2程序清单154.3 运行结果204.4结果分析21【数值分析课程设计总结】22[设计题一]设计实验验证Hilbert矩阵的病态性。

1.1问题分析与设计思路在求解任何反问题的过程中通常会遇到病态矩阵问题,而且病态矩阵问题还未有很好的解决方法,尤其是长方形、大型矩阵。

目前主要有Tikhonov、奇异值截断、奇异值修正等方法。

求解方程组时对数据的小扰动很敏感的矩阵就是病态矩阵。

解线性方程组Ax=b时,若对于系数矩阵A及右端项b的小扰动δA、δb,方程组(A+δA>χ=b+δb的解χ与原方程组Ax=b的解差别很大,则称矩阵A为病态矩阵。

方程组的近似解χ一般都不可能恰好使剩余r=b-Aχ为零,这时χ亦可看作小扰动问题Aχ=b-r(即δA=0,δb=-r>的解,所以当A为病态时,即使剩余很小,仍可能得到一个与真解相差很大的近似解。

因此,设计思路如下:令x0=<1,1…..1),计算出b=Hx0,求出b,然后再用高斯消去法球解Hx=b,得到近似解x,然后利用标准差:比较x与x0之间的误差。

截图是取了几个n<程序中设置为1至30)去计算,看一下随着n的增大误差的变化情况。

1.2程序清单共两个文件qm1.mgauss_liezhu1.m <在qm1.m中调用此程序)qm1.mgauss_liezhu1.m1.4 结果分析N=14按照N的递增顺序取了9个误差数据,制成散点折线图如上所示。

数值分析课程设计实验报告

数值分析课程设计实验报告
17.3785,18.484,19.498,20.399,23.419,24.433,25.447};
y[22]={51.12036405,44.10152093,39.3445281,36.88021926,36.08693844,
33.01166479,34.61458483,35.33279747,38.44874,70.58616637,74.79205304,
70.74232197,60.78930702,62.99681227,58.99594462,55.73472518,55.68433211,
59.05993154,57.55529831,59.05993154,50.95438885,44.87523183};
(,22,5);
(0<=5)
("a[]\n"[i]);
然后将程序加以修改,将上述的三个求解功能加进去就完成了本次设计。
最终源代码:
<>
<>
<>
();
();
();
([][][]);
()
{
i;
a[6];
x[22]={0.4605,1.382,2.396,3.41,4.4245,5.439,6.453,7.467,
8.4475,11.493,12.493,13.4145,14.4285,15.4425,16.3645,
4、根据公式:*D*D*4计算各个时刻水塔中水的体积(表格列E(n)*D*D*表格列D(n)/4),然后求出各个时间段内用水的体积(表格列F(n)(1)(n)):
5、求中间时刻的用水率,即求该时间段(时刻差)内的平均用水量(表格列G(n)(n)(n)):
6、将中间时刻和中间时刻的用水率复制到另一张表中,以便处理(这时共产生22组数据):

数值分析课程设计报告

数值分析课程设计报告

数值分析课程设计报告摘要(中):本文建立在数值分析的理论基础上,能够在Matlab环境中运行,给出了理论分析、程序清单以及计算结果。

更重要的是,还有详细的对算法的框图说明。

首先运用Romberg积分方法对给出定积分进行积分,然后对得到的结果用插值方法,分别求出Lagrange插值多项式和Newton插值多项式,再运用最小二乘法的思想求出拟合多项式,最后对这些不同类型多项式进行比较,找出它们各自的优劣。

Summary(Enlish):This essay is based on numerical analysis ,and could be operated in Matlab environment, including theroy analysis, program and results. What’s more, there are detailed diagram which shows how the algorithm works. It first uses the integrating method of Romberg , which is an improved trapezoidal integration, to solve the given definite integral,then we create Lagrange’s interpolation polynomial and Newton’s interpolation polynomial. And according to least square method, curve fitting polynomial is created. At the last part of the essay, we compare these different patterns of polynomial, founding their distinctive advantages and disadvantages.主题词:Romberg积分,插值方法,Langrange插值多项式,Newton插值多项式,拟合多项式。

数值分析实验报告

数值分析实验报告

数值分析实验报告一、实验目的数值分析是一门研究用计算机求解数学问题的数值方法及其理论的学科。

本次实验的目的在于通过实际操作和编程实现,深入理解和掌握数值分析中的常见算法,提高运用数值方法解决实际问题的能力,并对算法的精度、稳定性和效率进行分析和比较。

二、实验环境本次实验使用的编程语言为 Python,使用的开发工具为 PyCharm。

实验所依赖的主要库包括 NumPy、Matplotlib 等。

三、实验内容(一)函数逼近与插值1、拉格朗日插值法通过给定的离散数据点,构建拉格朗日插值多项式,对未知点进行函数值的估计。

2、牛顿插值法与拉格朗日插值法类似,但采用了不同的形式和计算方式。

(二)数值积分1、梯形公式将积分区间划分为若干个梯形,通过计算梯形面积之和来近似积分值。

2、辛普森公式基于抛物线拟合的方法,提高积分近似的精度。

(三)线性方程组求解1、高斯消元法通过逐行消元将线性方程组化为上三角形式,然后回代求解。

2、 LU 分解法将系数矩阵分解为下三角矩阵 L 和上三角矩阵 U,然后通过两次前代和回代求解。

(四)非线性方程求解1、二分法通过不断将区间一分为二,逐步缩小根所在的区间,直到满足精度要求。

2、牛顿迭代法利用函数的切线来逼近根,通过迭代逐步收敛到根的近似值。

四、实验步骤(一)函数逼近与插值1、拉格朗日插值法定义计算拉格朗日基函数的函数。

根据给定的数据点和待求点,计算插值多项式的值。

输出插值结果,并与真实值进行比较。

2、牛顿插值法计算差商表。

构建牛顿插值多项式。

进行插值计算和结果分析。

(二)数值积分1、梯形公式定义积分区间和被积函数。

按照梯形公式计算积分近似值。

分析误差。

2、辛普森公式同样定义积分区间和被积函数。

运用辛普森公式计算积分近似值。

比较与梯形公式的精度差异。

(三)线性方程组求解1、高斯消元法输入系数矩阵和右端项向量。

进行消元操作。

回代求解方程。

输出解向量。

2、 LU 分解法对系数矩阵进行 LU 分解。

《数值分析》课程实验报告范文

《数值分析》课程实验报告范文

《数值分析》课程实验报告范文《数值分析》课程实验报告姓名:学号:学院:机电学院日期:2022年某月某日目录实验一函数插值方法1实验二函数逼近与曲线拟合5实验三数值积分与数值微分7实验四线方程组的直接解法9实验五解线性方程组的迭代法15实验六非线性方程求根19实验七矩阵特征值问题计算21实验八常微分方程初值问题数值解法24实验一函数插值方法一、问题提出对于给定的一元函数的n+1个节点值。

试用Lagrange公式求其插值多项式或分段二次Lagrange插值多项式。

实验二函数逼近与曲线拟合一、问题提出从随机的数据中找出其规律性,给出其近似表达式的问题,在生产实践和科学实验中大量存在,通常利用数据的最小二乘法求得拟合曲线。

在某冶炼过程中,根据统计数据的含碳量与时间关系,试求含碳量与时间t的拟合曲线。

t(分)051015202530354045505501.272.162.863.443.874.154.374.51 4.584.024.64二、要求1、用最小二乘法进行曲线拟合;2、近似解析表达式为;3、打印出拟合函数,并打印出与的误差,;4、另外选取一个近似表达式,尝试拟合效果的比较;5、某绘制出曲线拟合图。

三、目的和意义1、掌握曲线拟合的最小二乘法;2、最小二乘法亦可用于解超定线代数方程组;3、探索拟合函数的选择与拟合精度间的关系四、实验步骤:第一步先写出线性最小二乘法的M文件functionc=lpoly(某,y,m)n=length(某);b=zero(1:m+1);f=zero(n,m+1); fork=1:m+1f(:,k)=某.^(k-1);enda=f'某f;b=f'某y';c=a\b;c=flipud(c);第二步在命令窗口输入:>>lpoly([0,5,10,15,20,25,30,35,40,45,50,55],[0,1.27,2.16,2.86,3.44,3.87,4.15,4.37,4.51,4.58,4.02,4.64],2)回车得到:an=-0.00240.20370.2305即所求的拟合曲线为y=-0.0024某2+0.2037某+0.2305在编辑窗口输入如下命令:>>某=[0,5,10,15,20,25,30,35,40,45,50,55];>>y=-0.0024某某.^2+0.2037某某+0.2305;>>plot(某,y)命令执行得到如下图五、实验结论分析复杂实验数据时,常采用分段曲线拟合方法。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数值分析课程设计报告设计题1、2、3、5学院、系:专业:姓名:学号:任课教师:提交日期:电子邮箱:目录[设计题一] (3)1.1问题分析与设计思路 (3)1.2程序清单 (4)1.4 结果分析 (5)1.5设计总结 (6)[设计题二] (6)2.1问题分析与设计思路 (7)2.2程序清单 (7)2.3 运行结果 (9)2.4结果分析与设计总结 (9)[设计题三] (10)3.1问题分析与设计思路 (10)3.2程序清单 (10)3.3 运行结果 (12)3.4结果分析与设计总结 (13)[设计题五] (13)4.1问题分析与设计思路 (14)4.2程序清单 (15)4.3 运行结果 (20)4.4结果分析 (21)【数值分析课程设计总结】 (22)1112111231111121n n H n nn n ⎛⎫ ⎪ ⎪ ⎪ ⎪=+ ⎪ ⎪ ⎪⎪+-⎝⎭[设计题一]设计实验验证Hilbert 矩阵的病态性。

1.1问题分析与设计思路在求解任何反问题的过程中通常会遇到病态矩阵问题,而且病态矩阵问题还未有很好的解决方法,尤其是长方形、大型矩阵。

目前主要有Tikhonov 、奇异值截断、奇异值修正等方法。

求解方程组时对数据的小扰动很敏感的矩阵就是病态矩阵。

解线性方程组Ax =b 时,若对于系数矩阵A 及右端项b 的小扰动δA 、δb ,方程组(A +δA )χ=b +δb 的解χ与原方程组Ax =b 的解差别很大,则称矩阵A 为病态矩阵。

方程组的近似解χ一般都不可能恰好使剩余r=b -A χ为零,这时χ亦可看作小扰动问题A χ=b -r(即δA =0,δb =-r)的解,所以当A 为病态时,即使剩余很小,仍可能得到一个与真解相差很大的近似解。

因此,设计思路如下:令x0=(1,1…..1),计算出b=Hx0,求出b ,然后再用高斯消去法球解Hx=b ,得到近似解x ,然后利用标准差:比较x与x0之间的误差。

截图是取了几个n(程序中设置为1至30)去计算,看一下随着n的增大误差的变化情况。

1.2程序清单共两个文件qm1.mgauss_liezhu1.m (在qm1.m中调用此程序)qm1.mgauss_liezhu1.m1.4 结果分析N=14按照N 的递增顺序取了9个误差数据,制成散点折线图如上所示。

由此可以看出,此矩阵求解方程组时对数据的小扰动很敏感实验验证Hilbert 矩阵的病态性成立。

1.5设计总结(1)认识什么事矩阵的病态性(2)令x0=(1,1…..1),计算出b=Hx0,求出b ,然后再用高斯消去法球解Hx=b ,得到近似解x ,然后利用标准差公式比较x 与x0之间的误差。

(3)取几个点进行误差记录 (4)绘制误差的散点图,形象分析[设计题二]1225年,达芬奇研究了方程32210200x x x ++-=并得到它的一个近似根=+=1()- (0, 1, 2,)(2.1)'()n n n nf x x x n f x *1.368808107x =。

没有人知道他用什么方法得到它。

设计两种方法去计算,并比较这两种方法。

2.1问题分析与设计思路f (x )=0的根(或f (x )的零点),当f (x )复杂时,很难求,需要找到有效简单的近似方法去求: (1)二分法理论: f (x )∈C[a,b],单调,f (a )f (b )<0,f (x )=0在(a,b)中有惟一根。

(2)迭代法(3)牛顿(Newton )法针对本题,采用了两种方法。

第一种方法是二分法,得到的近似根与精确解的误差小于。

第二种方法是用牛顿迭代法。

二分法优点:条件和方法简单(只要求f (x )连续即可),方法收敛;缺点:收敛速度慢,不易求偶数重根(如图).Newton 迭代法迭代公式2.2程序清单二分法程序:erfen.mNewton 迭代法程序: qm2_2.mnanewtom.m (在qm2_2.m 中调用)二分法Newton迭代法2.3 运行结果二分法:Newton迭代法2.4结果分析与设计总结通过二分法与Newton迭代法得出的答案相同。

(1)确定求方程近似根的三种方法(2)翻书了解编程步骤(3)总结本章重点知识:1.熟悉区间二分法;2.熟悉迭代法的建立,会使用收敛定理;3.熟悉Newton迭代法及其几何意义;4.熟悉收敛阶的定义;5.熟悉Newton迭代法的收敛阶;[设计题三]某飞机头部的光滑外形曲线的型值点坐标由下表给出:i0 x142 1462 1841 iy 6 272 275 i...800处的函数值y及一阶、二阶导数值y’,y”。

绘出模拟曲线的图形。

3.1问题分析与设计思路曲线拟合的一般步骤(一)绘制散点图,选择合适的曲线类型一般根据资料性质结合专业知识便可确定资料的曲线类型,不能确定时,可在方格坐标纸上绘制散点图,根据散点的分布,选择接近的、合适的曲线类型。

(二)进行变量变换,使变换后的两个变量呈直线关系。

(三)按最小二乘法原理求线性方程和方差分析(四)将直线化方程转换为关于原变量X、Y的函数表达式此题用三次样条插值三次样条函数定义:函数S(x)∈C2[a,b] ,且在每个小区间[ xj,xj+1 ]上是三次多项式,其中 a =x0 <x1<...< xn= b 是给定节点,则称S(x)是节点x0,x1,...xn上的三次样条函数。

若在节点x j 上给定函数值Yj= f (Xj).( j =0, 1, , n) ,并成立S(xj ) =yj .( j= 0, 1, , n) ,则称S(x)为三次样条插值函数。

3.2程序清单text5.mcsfitf.m (function 文件)daos1.m(function文件)daos2.m(function文件)daos1.m文件Csfitf.m文件daos2.m文件text5.m文件3.3 运行结果3.4结果分析与设计总结用三次样条插值拟合出的曲线及计算结果如上图所示。

实际计算是还需要引入边界条件才能完成计算。

边界通常有自然边界(边界点的导数为0),夹持边界(边界点导数给定),非扭结边界(使两端点的三阶导与这两端点的邻近点的三阶导相等)。

Matlab把非扭结边界条件作为默认的边界条件。

[设计题五]给定单摆方程初值问题..s i n ,(0),'(0)0glθθθθθ=-==其中g=9.8,l=25. (1) 取初始偏离角度0100.1745θ== (2) 取初始偏离角度0300.5236θ== 其精确解为0()co s ,gt t lθθωω==。

分别对上述两种情况按照下列方法求出其数值解,比较各方法的优缺点,并将计算结果与精确解做比较(列表、画图)。

(方案I )欧拉法,步长h = 0.025, h = 0.1; (方案II )改进的欧拉法,步长h = 0.05, h = 0.1; (方案III )四阶经典龙格—库塔法,步长h = 0.1。

4.1问题分析与设计思路令,则可以将 改写为:然后改写欧拉法、改进的欧拉法即龙格库塔公式。

欧拉法:改进的欧拉法:龙格库塔法:4.2程序清单euler.meuler_gai.mf5_2.morig6.mR-K.mtext_1.m text_1_2.m text_2.m text_2_2.m text_3.m text_3_2.m4.3 运行结果欧拉改进欧拉R|K4.4结果分析欧拉公式y(xi+1)=yi+h*f(xi,yi)且xi=x0+i*h (i=0,1,2,…,n-1),局部截断误差为O(h^2),欧拉格式仅为一阶方法。

改进欧拉它的局部截断误差为O(h^3),可见,改进欧拉格式较欧拉格式提高了精度,其截断误差比欧拉格式提高了一阶。

欧拉法用差商[y(xi+1)-y(xi)]/h 近似代替y(xi)的导数,局部截断误差较大;改进欧拉法先用欧拉法求出预报值,再利用梯形公式求出校正值,局部截断误差比欧拉法低了一阶,较大程度地提高了计算精度。

龙格-库塔法具有精度高,收敛,稳定(在一定条件下),计算过程中可以改变步长,不需要计算高阶导数等优点,但仍需计算在一些点上的值,如四阶龙格-库塔法每计算一步需要计算四次的值,这给实际计算带来一定的复杂性。

【数值分析课程设计总结】假期在家整整做了一个星期,终于完成了以上四道题的所有内容。

这次MAT LAB课程设计为我们提供了与众不同的学习方法和学习机会,让我们从传统的被动授学转变为主动求学;从死记硬背的模式中脱离出来,转变为在实践中学习,增强了领悟、创新和推断的能力。

掌握自学的方法,形成工程理论整体模式,使工作、学习、生活都步入系统化流程;思考方式成熟,逻辑性规范、明确。

这些方法的提高是终身受益的,我认为这难得的一周,让我真正懂得了生活和学习的基本规律。

在对插值多项式的程序进行编辑过程中,遇到了很多方法不知道用什么函数表达的问题,通过查找有关Matab软件和现代数值计算的书籍得出本程序,在对程序调用时,不知道如何调用,通过上网查找方法知道了需要在Matlab中的文件中新建一个M文件,然后保存,然后到命令区直接调用就可以了。

特别注意的是,在对M文件保存时,要直接保存到默认的matlab文件夹中,不可以随意更改保存路径。

完成了课程设计的任务,但是从中发现的问题也是值得去深思的。

我想经过这一个周的课程设计所发现的问题对我们会有很大的启示,在以后的学习中也会大有帮助。

在以后的学习中我会不断的改进学习方法,在实践中学习,不断提高自我,完美自我,全面提高自己。

我认为在编程方面,1、2、5题自己独立完成的较好,给自己一个优秀吧。

相关文档
最新文档