数值分析实验作业课题七

合集下载

数值分析课程实验设计——数值线性代数实习题

数值分析课程实验设计——数值线性代数实习题

数值分析课程实验设计——数值线性代数
实习题
1. 实验目的
本实验的主要目的是进一步加深对数值线性代数的理解,熟悉
常见矩阵分解方法,并在此基础上解决实际问题。

2. 实验内容
本次实验将任务分为两个部分,分别是矩阵分解与求解线性方
程组。

2.1 矩阵分解
首先,我们需要熟悉三种常见的矩阵分解:QR分解、LU分解
和奇异值分解。

我们需要通过Python语言实现这三种分解方法,
并利用这些方法解决实际问题。

2.2 求解线性方程组
其次,我们需要学会用矩阵分解的方法来求解线性方程组。


们将通过两个例子来进行说明,并利用Python语言实现这些方法。

3. 实验要求
本次实验要求熟悉矩阵分解的基本方法,在此基础上解决实际问题;能够运用多种方法来求解线性方程组,并分析比较它们的优缺点。

4. 实验总结
本次实验通过矩阵分解和求解线性方程组两个部分的学习,巩固了我们对于数值线性代数的知识,并在实际问题的解决中得到了应用。

感谢老师的指导,我们会在今后的学习中持续探索数值分析方面的知识。

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

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

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. 解决此问题的拉格朗日插值多项式公式如下

数值分析作业

数值分析作业

利用二分法原理编程实现方程在区间上的近似解一、实验目的用二分法求方程和的正根(要求精度)二、二分法的原理和数学模型将函数用二分区间的方法解方程是一种用无限逼近的数学思想,去解方程,它的依据是:如果函数)在闭区间[]b a ,上连续,且已知函数在两端点的函数与取异号,即两端点函数值的乘积,则函数在区间()b a ,内至少有一个零点,即至少存在一点c ,使得的解。

(1)计算在有解区间[]b a ,端点处的值。

(2)计算在区间中点处的值。

(3)判断若,则即是根,否则检验:①若与异号,则知道解位于区间,,②若与同号,则知道解位于区间,,反复执行步骤2、3,便可得到一系列有根区间:(4)当()0=x f []b a ,1)sin(++=x x y )tan(12x x y -+=00001.0=ε()x f ()0=x f ()x f y =()a f ()b f ()()0<*b f a f ()x f y =()0=x f ()x f ()x f ()1x f ()01=x f 1x ()1x f ()a f []1,x a 11x b =a a 1=()1x f ()a f []b x ,111x a =b b 1=()()()k k b a b a b a ,,...,,,11ε<-++11k k a b ()k k k b a x +=+211三、实验过程方法一1.在MATLAB2018b编辑器中建立一个实现二分法的dichotomy.m和dichotomyRoot.m两个M 文件,建立一个myfunction.m的函数用来存储所要计算的方程/函数;当方程为时2.在命令行调用dichotomy.m 求解方程y;3.依次输入求根区间[x1,x2]和求根精度e ;4.得到函数输出根的近似值。

同理:当方程为时1)sin(++=x xy )tan(12x x y -+=方法二1.在MATLAB2018b软件中,建立一个实现二分法的M函数agui_bisect.m如下:2.在MATLAB命令窗口求解方程3.得到计算结果,且计算结果为4.在MATLAB命令窗口求解方程5.得到计算结果,且计算结果为。

数值分析实验 实验报告

数值分析实验 实验报告

数值分析实验实验报告数值分析实验实验报告一、引言数值分析是一门研究如何利用计算机对数学问题进行数值计算和模拟的学科。

在实际应用中,数值分析广泛应用于工程、物理、金融等领域。

本实验旨在通过实际操作,探索数值分析方法在实际问题中的应用,并通过实验结果对比和分析,验证数值分析方法的有效性和可靠性。

二、实验目的本实验的主要目的是通过数值分析方法,解决一个实际问题,并对比不同方法的结果,评估其准确性和效率。

具体来说,我们将使用牛顿插值法和拉格朗日插值法对一组给定的数据进行插值,并对比两种方法的结果。

三、实验步骤1. 收集实验数据:我们首先需要收集一组实验数据,这些数据可以来自实验测量、调查问卷等方式。

在本实验中,我们假设已经获得了一组数据,包括自变量x和因变量y。

2. 牛顿插值法:牛顿插值法是一种基于差商的插值方法。

我们可以通过给定的数据点,构造一个插值多项式,并利用该多项式对其他点进行插值计算。

具体的计算步骤可以参考数值分析教材。

3. 拉格朗日插值法:拉格朗日插值法是另一种常用的插值方法。

它通过构造一个满足给定数据点的多项式,利用该多项式对其他点进行插值计算。

具体的计算步骤也可以参考数值分析教材。

4. 结果比较与分析:在完成牛顿插值法和拉格朗日插值法的计算后,我们将比较两种方法的结果,并进行分析。

主要考虑的因素包括插值误差、计算效率等。

四、实验结果在本实验中,我们选取了一组数据进行插值计算,并得到了牛顿插值法和拉格朗日插值法的结果。

经过比较和分析,我们得出以下结论:1. 插值误差:通过计算插值点与实际数据点之间的差值,我们可以评估插值方法的准确性。

在本实验中,我们发现牛顿插值法和拉格朗日插值法的插值误差都较小,但是拉格朗日插值法的误差稍大一些。

2. 计算效率:计算效率是衡量数值分析方法的重要指标之一。

在本实验中,我们发现牛顿插值法的计算速度较快,而拉格朗日插值法的计算速度稍慢。

五、实验结论通过本实验,我们对数值分析方法在实际问题中的应用有了更深入的了解。

数值分析实验题和程序报告

数值分析实验题和程序报告

数值分析实验题和程序实验2.1 多项式插值的振荡现象问题提出:考虑在一个固定的区间上用插值逼近一个函数。

显然Lagrange 插值中使用的节点越多,插值多项式的次数就越高。

我们自然关心插值多项的次数增加时,()n L x 是否也更加靠近被逼近的函数。

Runge 给出的一个例子是极著名并富有启发性的。

设区间[-1,1]上函数21()125f x x=+实验内容:考虑区间[-1,1]的一个等距划分,分点为21,0,1,2,,i i x i n n =-+=则拉格朗日插值多项式为201()()125nn i i iL x l x x==+∑其中,(),0,1,2,,i l x i n = 是n 次Lagrange 插值基函数。

实验要求:(1)选择不断增大的分点数目2,3,n = 画出原函数()f x 及插值多项式函数()n L x 在[-1,1]上的图像,比较并分析实验结果。

(2)选择其他的函数,例如定义在区间[-5,5]上的函数4(),()arctan 1x h x g x x x==+重复上述的实验,看其结果如何。

1、实验MATLAB 程序function charpt2_1%数值实验2.1:多项式插值的震荡现象%输入:函数式选择,插值节点数%输出:拟合函数及原函数的图形promps={'选择实验函数,若选f(x),输入f,若选h(x),输入h,若选g(x),输入g:'};result=inputdlg(promps,'charpt2_1',1,{'f'});Nb_f=char(result);if(Nb_f~='f' & Nb_f~='h' & Nb_f~='g')errordlg('实验函数选择错误!'); return;endresult=inputdlg({'请输入第一幅图插值节点数N>=2:'},'charpt2_1',1,{'2'}); Nd0=str2num(char(result));if(Nd0<2)errordlg('节点数输入错误!'); return;endresult=inputdlg({'请输入两幅图间插值节点数差值D:'},'charpt2_1',1,{'1'}); D=str2num(char(result));switch Nb_fcase'f'f=inline('1./(1+25*x.^2)');a=-1;b=1;case'h'f=inline('x./(1+x.^4)');a=-5;b=5;case'g'f=inline('atan(x)');a=-5;b=5;endfor i=1:6Nd=Nd0+(i-1).*D;x0=linspace(a,b,Nd+1);y0=feval(f,x0);x=a:0.01:b;y=Lagrange(x0,y0,x);subplot(2,3,i);plot(x0,y0,'*');hold on;fplot(f,[a,b],'k');hold on;plot(x,y,'b--');s1='x (节点数N=';s2=num2str(Nd);s3=')';s=[s1 s2 s3];xlabel(s);ylabel('y=f(x) - and y=Ln(x)--');end%Lagrange插值函数function y=Lagrange(x0,y0,x)n=length(x0);m=length(x);for i=1:mz=x(i);s=0.0;for k=1:np=1.0;for j=1:nif(j~=k)p=p*(z-x0(j))/(x0(k)-x0(j));endends=s+p*y0(k);endy(i)=s;end2、实验结果对于函数f(x),当选择的分点数目不断增大时,得到的拟合插值多项式函数图形如图1-1和图1-2所示。

数值分析第七章实验报告7

数值分析第七章实验报告7

贵州师范大学数学与计算机科学学院学生实验报告课程名称: 数值分析 班级:实验日期:学 号: 点名序号:26姓名: 指导教师:实验成绩:一、实验名称实验六: 常微分方程初值问题数值解法二、实验目的及要求1. 让学生掌握用Euler 法, Runge-Kutta 法求解常微分方程初值问题.2. 培养Matlab 编程与上机调试能力.三、实验环境每人一台计算机,要求安装Windows XP 操作系统,Microsoft office2003、MATLAB6.5(或7.0).四、实验内容1. 取步长h=0.1,0.05,0.01, ,用Euler 法及经典4阶Runge-Kutta 法求解初值问题⎩⎨⎧=≤≤++-=1)0()10(2222'y t t t y y 要求:1) 画出准确解(准确解22t e y t +=-)的曲线,近似解折线;2) 把节点0.1和0.5上的精确解与近似解比较,观察误差变化情况.2. 用 Euler 法,隐式Euler 法和经典4阶R-K 法取不同步长解初值问题⎪⎩⎪⎨⎧=∈-=21)0(],1,0[,50'y x y y 并画出曲线观察稳定性.注:题1必须写实验报告五、算法描述及实验步骤4阶R-K 算法:功能输入 f(x),a,b,x0(x0=a),y0.输出 4阶R-K 解y.步1 m<=(b-a)/h,xn=a+n*h(n=1.2…m)步2 对n=0.1…m-1执行K1<=f(xn,yn)K2<=f(xn+0.5,y n+0.5*h*K1),K3<=f(xn+0.5,y n+0.5*h*K2).K4<f(x n+1,y n+h*K3).yn+1<=yn+(h/6)*(K1+2*K2+2*K3+K4);步3 输出y=(y1,y2,…,ym)’;结束Euler法算法功能解初值问题y’=f(x,y),y(x0)=y0;输入 f(x,y),a,b,h,x0(x0=a),y0;输出 Euler解y;步1 m<=(b-a)/h ,xn=a+n*h(n=1.2…m);步2 对n=0.1…m-1执行Yn+1<=yn+h*f(xn,yn);步3 输出y=(y1,y2,…,ym)’结束实验步骤:1.按要求在安装Windows2000或Windows XP操作系统,Matlab软件环境下编写源程序。

数值分析实验题目及解答

数值分析实验题目及解答

内容包括:实验题目1:算法的数值稳定性实验实验题目2:LU分解实验实验题目3:三次样条插值外推样条实验实验题目4:第二类Fredholm 积分方程实验实验题目5:M级显式R_K法实验题目:算法的数值稳定性实验实验内容:计算积分()10()d 1515nx I n x a x==+⎰ (n=1,2,…,20) 易得到下面递推公式()()11I n aI n n=--+并有估计式()()()()11111I n a n a n <<+++计算方法:算法一:采用下面递推公式计算:()()11I n aI n n =--+()1,2,,20n = 取初值()1160ln ln 15a I a +==算法二: 采用下面递推公式计算:()()111I n I n a n ⎡⎤-=-+⎢⎥⎣⎦()20,19,,1n =结果分析:(分析哪个好哪个不好,原因是什么) 我觉得算法二比较好, 原因一:根据式()()()()11111I n a n a n <<+++得知,I(n)不可能小于零,而算法一的计算结果有部分结果小于零。

原因二:对算法一记初始误差ε0=/I 0-I(0)/>0;则εn =/I n -I(n)/=a/I n-1-I(n-1)/=a n*ε0由此可知,当n=20时, ε20把ε0放大了a 20倍,其结果造成严重的。

而对于算法二^^11n n a εε-=,…, ^^01n n aεε=,尽管有初始误差^20ε,但随着计算的进程,这个误差的影响不断减小。

附:源程序:(把源程序附上) 算法一程序: >> format long>> a=15;I=log(16/15); for n=1:20 nI=-a*I+1/n end算法二程序: >> format long>> a=15;I=31/10080; >> for n=20:-1:1 n II=1/a*(-I+1/n); End。

数值分析实验题

数值分析实验题

分别先运行所给的例题程序,记录结果。

然后对给定的方程进行求解。

用二分法求出方程018824=+-x x 的所有实根。

分别用牛顿法求方程0134=+-x x
在区间[0.3, 0.4]内的实根,精确到小
数后第五位。

求非线性方程实根的二分法
一、 功能
用二分法搜索0)(=x f 在[a,b]区间内的所有根。

二、方法说明
三、函数语句
四、 形参说明
a ——双精度实型变量。

求根区间的左端点。

b ——双精度实型变量。

求根区间的右端点。

h——双精度实型变量。

搜索求根时采用的步长。

Eps——双精度实型变量。

控制精度要求,
x——双精度实型一维数组,长度为m;返回在区间[a,b]内的实根,其实根个数由函数值返回。

m——整型变量。

在区间[a,b]内实根个数的预估值。

五、函数程序(文件名ddhrt.c)
六、例子
用牛顿迭代法求方程0
x
f在[a,b]区间内的一个实根
(
)
三、函数语句
四、形参说明
x——双精度实型变量指针。

在此指针指向的单元中存放迭代初值;返回时存放迭代终值。

eps——双精度实型变量,控制精度要求。

js——整型变量。

最大迭代次数。

五、函数程序(文件名:dnewt.c)
六、例。

《数值分析实验》实验

《数值分析实验》实验

数值分析实验实验1 方程求根一、实验目的:1.掌握常用的求非线性方程近似根的数值方法,用所学方法求非线性方程满足指定精度要求的数值解,比较各种方法的异同点并进行收敛性分析。

2.通过对二分法与牛顿迭代法作编程练习与上机运算,进一步体会二分法与牛顿迭代法的不同特点。

3.编写割线迭代法的程序,求非线性方程的解,并与牛顿迭代法作比较。

二、实验内容:1.用二分法求方程0104)(23=-+=x x x f 在1.5附近的根。

2.用牛顿迭代法求方程033)(23=--+=x x x x f 在1.5附近的根。

3.用简单迭代法求解非线性方程3sin )1(2=-+x x 的根。

取迭代函数)1sin 3(*5.0)(2x x x --+=ϕ,精度取2101-⨯4.(选做)用牛顿法求下列方程的根: (1)02=-x e x ; (2)01=-x xe ; (3)02lg =-+x x 。

5.(选做)编写一个弦截法程序,求解题目4中的方程。

6.(选做)Matlab 函数fzero 可用于求解非线性方程的根。

例如,fzero(@(x) x^3+4*x^2-10, 1.5)可以求解题目1。

尝试用此方法求解实验中的其他题三、实验要求:1.程序要添加适当的注释,程序的书写要采用缩进格式。

2.程序要具在一定的健壮性,即当输入数据非法时,程序也能适当地做出反应,如插入删除时指定的位置不对等等。

3.程序要做到界面友好,在程序运行时用户可以根据相应的提示信息进行操作。

四、实验步骤1.按照实验内容和实验要求编写代码 2.编译并运行代码 3.检查是否发生错误五、实验源代码与实验结果实验1源代码:运行结果:实验2源代码:运行结果:实验3源代码:运行结果:4(1)的源代码:运行结果:4(2)的源代码:运行结果:4(3)的源代码:运行结果:5(3)的源代码:运行结果:六、实验心得体会通过本次实验我加深了对二分法、简单迭代法、牛顿迭代法和弦截法算法思想的了解,并对各个不同方法的优劣有了更深的理解。

数值分析实验 实验报告

数值分析实验 实验报告

数值分析实验实验报告数值分析实验实验报告引言在现代科学与工程领域,数值分析是一项重要的技术手段。

通过数值方法,我们可以利用计算机模拟和解决各种实际问题,如物理、化学、生物、经济等领域中的方程求解、优化问题、数据拟合等。

本实验旨在通过实际案例,探讨数值分析的应用和效果。

实验一:方程求解首先,我们考虑一个简单的方程求解问题。

假设我们需要求解方程f(x) = 0的根,其中f(x)是一个在给定区间[a, b]上连续且单调的函数。

为了实现这个目标,我们可以采用二分法、牛顿法、弦截法等数值方法。

在本实验中,我们选择使用二分法来求解方程f(x) = 0。

这种方法的基本思想是通过不断缩小区间[a, b]的范围,直到找到一个近似的根。

我们首先选取一个中间点c,计算f(c)的值,然后根据f(c)与0的关系,将区间[a, b]分成两部分。

重复这个过程,直到找到满足精度要求的根。

实验二:数据拟合接下来,我们考虑一个数据拟合的问题。

假设我们有一组离散的数据点,我们希望找到一个函数,使得该函数与这些数据点的拟合误差最小。

为了实现这个目标,我们可以采用最小二乘法等数值方法。

在本实验中,我们选择使用最小二乘法来进行数据拟合。

这种方法的基本思想是通过最小化数据点与拟合函数之间的误差平方和,来确定拟合函数的参数。

我们首先选择一个拟合函数的形式,如线性函数、多项式函数等。

然后,通过最小化误差平方和的方法,计算出拟合函数的参数。

实验三:优化问题最后,我们考虑一个优化问题。

假设我们需要在给定的约束条件下,找到一个使得目标函数取得最大或最小值的变量。

为了实现这个目标,我们可以采用梯度下降法、遗传算法等数值方法。

在本实验中,我们选择使用梯度下降法来解决优化问题。

这种方法的基本思想是通过迭代的方式,不断调整变量的取值,直到找到一个满足约束条件的最优解。

我们首先计算目标函数关于变量的梯度,然后根据梯度的方向和大小,更新变量的取值。

通过不断迭代,我们可以逐步接近最优解。

数值分析课程设计实验七

数值分析课程设计实验七

数值分析课程设计实验七一、教学目标本课程的学习目标主要包括知识目标、技能目标和情感态度价值观目标。

知识目标要求学生掌握数值分析的基本原理和方法,了解相关数学背景知识。

技能目标则要求学生能够运用数值分析方法解决实际问题,提高解决问题的能力。

情感态度价值观目标则是培养学生的科学精神、创新意识和团队合作能力。

通过本课程的学习,学生将能够:1.掌握数值分析的基本原理和方法,如插值法、逼近法、数值微积分、线性代数的数值方法等。

2.了解相关数学背景知识,如函数、极限、微积分、线性代数等。

3.运用数值分析方法解决实际问题,如数值求解微分方程、线性方程组等。

4.培养科学精神、创新意识和团队合作能力。

二、教学内容本课程的教学内容主要包括数值分析的基本原理、方法和应用。

具体安排如下:1.第一章:数值分析导论。

介绍数值分析的基本概念、误差、稳定性等基本原理。

2.第二章:插值法。

包括一元插值、多元插值、样条插值等方法。

3.第三章:逼近法。

包括最小二乘法、最佳逼近等方法。

4.第四章:数值微积分。

包括数值积分、数值微分等方法。

5.第五章:线性代数的数值方法。

包括线性方程组的求解、特征值问题的求解等。

6.第六章:非线性方程和方程组的求解。

包括迭代法、牛顿法、弦截法等。

7.第七章:常微分方程的数值解法。

包括初值问题的求解、边界值问题的求解等。

三、教学方法本课程的教学方法主要包括讲授法、讨论法、案例分析法和实验法。

1.讲授法:通过教师的讲解,使学生掌握数值分析的基本原理和方法。

2.讨论法:引导学生进行思考和讨论,提高学生的理解能力和解决问题的能力。

3.案例分析法:通过分析实际案例,使学生了解数值分析方法在工程和科研中的应用。

4.实验法:通过上机实验,让学生亲手操作,加深对数值分析方法的理解和掌握。

四、教学资源本课程的教学资源主要包括教材、参考书、多媒体资料和实验设备。

1.教材:选用《数值分析》作为主要教材,辅助以相关参考书。

2.参考书:为学生提供丰富的学习资料,以便深入理解和掌握数值分析的知识。

《数值分析》实验报告书

《数值分析》实验报告书

N4(0.895) function [y,R]= newcz(X,Y,x,M) x=0.895; M=4; X=[0.4,0.55,0.65,0.8,0.9]; Y=[0.41075,0.57815,0.69675,0.88811,1.02652];
n=length(X); m=length(x); for t=1:m z=x(t); A=zeros(n,n);A(:,1)=Y'; s=0.0; p=1.0; q1=1.0; c1=1.0; for j=2:n for i=j:n A(i,j)=(A(i,j-1)-A(i-1,j-1))/(X(i)-X(i-j+1)); end q1=abs(q1*(z-X(j-1)));c1=c1*j; end C=A(n,n);q1=abs(q1*(z-X(n))); for k=(n-1):-1:1 C=conv(C,poly(X(k)));d=length(C); C(d)=C(d)+A(k,k); end y(k)= polyval(C, z); end R=M*q1/c1; 运行结果: ans = 1.0194
实验三、解线性方程组的直接法
解线性方程组的直接法是指经过有限步运算后能求得方程组精确解
的方法。但由于实际计算中舍入误差是客观存在的,因而使用这类方法 也只能得到近似解。目前较实用的直接法是古老的高斯消去法的变形, 即主元素消去法及矩阵的三角分解法。引进选主元的技巧是为了控制计 算过程中舍入误差的增长,减少舍入误差的影响。一般说来,列主元消 去法及列主元三角分解法是数值稳定的算法,它具有精确度较高、计算 量不大和算法组织容易等优点,是目前计算机上解中、小型稠密矩阵方 程组可靠而有效的常用方法。
Y=[0.82741,0.82659,0.82577,0.82495]; n=length(X); m=length(x); for i=1:m z=x(i);s=0.0; for k=1:n p=1.0; q1=1.0; c1=1.0; for j=1:n if j~=k p=p*(z-X(j))/(X(k)-X(j)); end q1=abs(q1*(z-X(j))); c1=c1*j; end s=p*Y(k)+s; end y(i)=s; end R=M.*q1./c1; 运行结果: ans = 0.8261 2. N3(0.596) function [y,R]= newcz(X,Y,x,M) x=0.596; M=3;

数值分析实验报告题目与模板

数值分析实验报告题目与模板

数值分析实验报告第一题1、题目及要求题目:1、运用按列选主元的Gauss 消去法求解下列线性代数方程组:⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡ 4.89- 7.58 8.12 8.56- 1.05 4.12- 8.25 6.14 1.01 1.21- 8.45- 9.25 8.54 9.12 7.12 3.54 0.05 2.01 0.12 9.25 5.25 7.12- 4.12- 7.58- 6.21- 1.02- 0.128.65- 1.05- 6.14- 4.12- 9.95- 9.25 0.03 1.02 3.217.15 6.18 4.93 1.05- 4.18- 7.25- 2.48 3.89 4.29 3.27 5.67- 3.91- 6.42 9.57 1.48 0.45- 9.26 6.48 6.12 3.87 0.89 1.48 9.24 7.56 0.45- 3.78- 4.45 4.36 7.01 0.24 0.95 5.12 7.24- 6.89 7.21- 7.450.45- 8.87 4.99 0.78 6.14- 4.85 6.45 7.45 5.45⎪⎪⎪⎪⎪⎪⎭⎪⎪⎪⎪⎪⎪⎬⎫⎪⎪⎪⎪⎪⎪⎩⎪⎪⎪⎪⎪⎪⎨⎧987654321x x x x x x x x x =⎪⎪⎪⎪⎪⎪⎭⎪⎪⎪⎪⎪⎪⎬⎫⎪⎪⎪⎪⎪⎪⎩⎪⎪⎪⎪⎪⎪⎨⎧145.8299.7113.1-164-164.4264.5293.8175.7225.5 实验要求及目的:1、要求编程完成,不能使用现存的函数2、流程图3、源代码4、运行截图5、实验心得第二题1、题目及要求题目:2、将区间[-1,1]上取n =10,对函数 21()125f x x=+取等距节点完成下述工作 (1) 求多项式插值和三次样条插值,并画出相应的图形;(2) 求三次曲线拟合,并画出相应的图形;(3) 将上述结果进行比较实验要求及目的:2、流程图3、源代码4、运行截图5、实验心得第三题1、题目及要求题目:3、多项式求根是一个病态问题,考虑多项式P(x)=(x-1)(x-2)…(x-10)=a 0+a 1x 1+…+a 8x 8+a 9x 9+x 10求解扰动方程 p(x)+εx 9=0.(1) 产生系数a 0,a 1,…a 9.(2) 取ε=10-6,10-8,10-10用MATLAB 求根函数计算扰动方程的根。

数值分析实验题目

数值分析实验题目

实验一:函数插值与数据拟合1.1实验目的(1)由函数()f x 的1n +个节点处函数值得出n 次Lagrange 插值函数; (2)由函数()f x 的1n +个节点处函数值得出n 次Newton 插值函数;(3)由函数()f x 的个1n +节点处函数值得出Hermite 插值函数或分段三次Hermite 函数; (4)由未知函数的离散数据(),1,2,,i f x i n = 得出最小二乘拟合函数。

1.2 实验原理(1)00,()()nnj n k k j j kk jx x L x y x x ==≠-=⋅-∑∏(2)00100120101011()()[,]()[,,]()()[,,,]()()()n n n N x f x f x x x x f x x x x x x x f x x x x x x x x x -=+-+--++---(3)222100,0,0,1[12()]()n n nn i i n k k k kk i i k i i k i i k k i k i k i x x x x H y x x y x x x x x x x x +==≠=≠=≠⎧⎫⎛⎫⎛⎫--⎪⎪'=⋅--+⋅-⎨⎬ ⎪ ⎪---⎝⎭⎝⎭⎪⎪⎩⎭∑∑∏∏(4)()()()()()()()()()()()()0001000101111101001122,,,,,,,,,,,,n n n n n n n n n na y a y a y S a a a a φφφφφφφφφφφφφφφφφφφφφφφφφ⎛⎫⎛⎫⎛⎫⎪ ⎪ ⎪⎪⎪ ⎪= ⎪ ⎪ ⎪⎪ ⎪⎪ ⎪ ⎪⎝⎭⎝⎭⎝⎭=++++1.3实验内容1.3,===用Lagrange23,===用Newton3. 给定函数21(),551f x x x=-≤≤+,取插值节点5,0,1,2,,10k x k k =-+= ,求分段三次Hermite 插值函数,并在一个坐标系中画出两函数的图形。

数值分析实验(参考答案)

数值分析实验(参考答案)

数值分析上机实验学生姓名: 学号: 教师:实验1:1. 实验项目的性质和任务通过上机实验,使学生对病态问题、线性方程组求解和函数的数值逼近方法有一个初步理解。

2.教学内容和要求 1)对高阶多多项式201()(1)(2)(20)()k p x x x x x k ==---=-∏编程求下面方程的解 19()0p x x ε+=并绘图演示方程的解与扰动量ε的关系。

Matlab 程序:x=1:20;y=zeros(1,20); ve=zeros(1,21); plot(x,y,'o') hold on ; pause; for x=1:5ve(2)=10^(-x);e=roots(poly(1:20)+ve);plot(e,'*') hold on pause; end0510152025303540-20-15-10-5051015202)对2~20n =,生成对应的Hilbert 矩阵,计算矩阵的条件数;通过先确定解获得常向量b 的方法,确定方程组 n H x b =最后,用矩阵分解方法求解方程组,并分析计算结果。

Matlab 程序:for n=2:20; H=hilb(n); ca=cond(H,2) x=(1:n)'; b=H*x; [L,U]=lu(H); y=L\b;x1=U\yplot(x,x,'o',x1,x1,'*') hold on pause; end-500-400-300-200-100100200300400500-500-400-300-200-10001002003004005003)对函数 21()[1,1]125f x x x=∈-+的Chebyshev 点 (21)cos()1,2,...,12(1)kk x k n n π-==++编程进行Lagrange 插值,并分析插值结果。

Matlab 程序:function y=lagrangen(x0,y0,x) n=length(x0);m=length(x); for i=1:m z=x(i);s=0;for k=1:nL=1;for j=1:nif j~=kL=L*(z-x0(j))/(x0(k)-x0(j));endends=s+L*y0(k);endy(i)=s;endy;for n=5:20x=-1:0.01:1; y=1./(1+25*x.^2);plot(x,y,'r')hold onk=n+1:-1:1;x0=cos((2*k-1)*pi./(2*(n+1))),y0=1./(1+25*x0.^2);x=-1:0.01:1; y1=lagrangen(x0,y0,x);plot(x0,y0,'o',x,y1), pausehold off end-1-0.8-0.6-0.4-0.200.20.40.60.81-0.200.20.40.60.811.2-1-0.8-0.6-0.4-0.200.20.40.60.81-1-0.8-0.6-0.4-0.200.20.40.60.81。

《数值分析》_实验

《数值分析》_实验

( )
( )
4、另外选取一个近似表达式,尝试拟合效果的比较; 5、* 绘制出曲线拟合图。 三、目的和意义 1、掌握曲线拟合的最小二乘法; 2、最小二乘法亦可用于解超定线代数方程组; 3、探索拟合函数的选择与拟合精度间的关系
第5页
数值分析实验,宋伦继
6
实验四 数值积分与数值微分
一、问题提出 选用复合梯形公式,复合 Simpson 公式,Romberg 算法,计算
x
*
⎡ 0 ⎤ ⎢ −6 ⎥ ⎥ ⎢ ⎢ 20 ⎥ ⎥ ⎢ ⎢ 23 ⎥ ⎢ 9 ⎥ ⎥ ⎢ ⎢− 22⎥ ⎢ − 15 ⎥ ⎥ ⎢ ⎥ ⎢ 45 ⎦ ⎣
=
( 1,
-1,
0,
2,
1,
-1,
0,
2)
T
第7页
数值分析实验,宋伦继
8
3、三对角形线性方程组
⎡ 4 − 1 0 0 0 0 0 0 0 0 ⎤ ⎡ x1 ⎤ ⎡ 7 ⎤ ⎢− 1 4 − 1 0 0 0 0 0 0 0 ⎥ ⎢ x ⎥ ⎢ 5 ⎥ ⎥ ⎢ 2⎥ ⎥ ⎢ ⎢ ⎢ 0 − 1 4 − 1 0 0 0 0 0 0 ⎥ ⎢ x3 ⎥ ⎢ − 13⎥ ⎥⎢ ⎥ ⎥ ⎢ ⎢ ⎢ 0 0 − 1 4 − 1 0 0 0 0 0 ⎥ ⎢ x4 ⎥ ⎢ 2 ⎥ ⎢ 0 0 0 − 1 4 − 1 0 0 0 0 ⎥ ⎢ x5 ⎥ ⎢ 6 ⎥ ⎥⎢ ⎥ = ⎢ ⎥ ⎢ ⎢ 0 0 0 0 − 1 4 − 1 0 0 0 ⎥ ⎢ x6 ⎥ ⎢− 12⎥ ⎢ 0 0 0 0 0 −1 4 −1 0 0 ⎥ ⎢ x ⎥ ⎢ 14 ⎥ ⎥ ⎢ 7⎥ ⎥ ⎢ ⎢ ⎢ 0 0 0 0 0 0 − 1 4 − 1 0 ⎥ ⎢ x8 ⎥ ⎢−4⎥ ⎢ 0 0 0 0 0 0 0 − 1 4 − 1⎥ ⎢ x ⎥ ⎢ 5 ⎥ ⎥ ⎢ 9⎥ ⎥ ⎢ ⎢ ⎥ ⎥⎢ ⎥ ⎢ 0 0 0 0 0 0 0 0 −1 4 ⎦ ⎢ −5⎦ ⎣ ⎣ ⎣ x10 ⎦

数值分析的实验报告

数值分析的实验报告

数值分析的实验报告数值分析的实验报告导言数值分析是一门研究数值计算方法和数值计算误差的学科,它在科学计算、工程技术和社会经济等领域具有广泛的应用。

本实验旨在通过对数值分析方法的实际应用,验证其有效性和可靠性。

实验一:方程求根方程求根是数值分析中的基础问题之一。

我们选取了一个非线性方程进行求解。

首先,我们使用二分法进行求解。

通过多次迭代,我们得到了方程的一个近似解。

然后,我们使用牛顿法进行求解。

与二分法相比,牛顿法的收敛速度更快,但需要选择一个初始点。

通过比较两种方法的结果,我们验证了牛顿法的高效性。

实验二:插值与拟合插值与拟合是数值分析中常用的数据处理方法。

我们选取了一组实验数据,通过拉格朗日插值法和最小二乘法进行插值和拟合。

通过对比两种方法的拟合效果,我们验证了最小二乘法在处理含有噪声数据时的优势。

同时,我们还讨论了插值和拟合的精度与样本点数量之间的关系。

实验三:数值积分数值积分是数值分析中的重要内容之一。

我们选取了一个定积分进行计算。

首先,我们使用复化梯形公式进行积分计算。

通过增加分割区间的数量,我们得到了更精确的结果。

然后,我们使用复化辛普森公式进行积分计算。

与复化梯形公式相比,复化辛普森公式具有更高的精度。

通过比较两种方法的结果,我们验证了复化辛普森公式的优越性。

实验四:常微分方程数值解常微分方程数值解是数值分析中的重要应用之一。

我们选取了一个常微分方程进行数值解的计算。

首先,我们使用欧拉方法进行数值解的计算。

然后,我们使用改进的欧拉方法进行数值解的计算。

通过比较两种方法的结果,我们验证了改进的欧拉方法的更高精度和更好的稳定性。

实验五:线性方程组的数值解法线性方程组的数值解法是数值分析中的重要内容之一。

我们选取了一个线性方程组进行数值解的计算。

首先,我们使用高斯消元法进行数值解的计算。

然后,我们使用追赶法进行数值解的计算。

通过比较两种方法的结果,我们验证了追赶法在求解三对角线性方程组时的高效性。

数值分析实验学生版.doc

数值分析实验学生版.doc

计算机与信息工程学院数值分析实验报告计科专业2013级3班姓名:茆彩云学号:201340910348实验一:Lagrange插值法一、实验目的插值法是一个古老实用的课题,是函数逼近、数值积分微分和微分议程数值解的基础。

本实验目的是通过实验掌握Lagrange插值方法,并能用自已熟悉的语言编程求解具体的插值问题。

验证基本算法和了解基本算法在计算机上的实现过程。

二、实验题目:给出f(x)的函数表如下:x0.40.550.650.80.9 1.05f(x)0.410750.578150.696750.88811 1.02652 1.25382按Lagrange插值算法编程求出f(0.596)的近似值;三、实验原理通过n+1个节点X0<X1<...<Xn的n次插值基函数,再写出n次插值多项式。

四、实验内容与步骤先定义n次插值基函数再写出n次插值多项式五、实验程序Lagrange插值算法:Newton插值方法:六、实验结果及其分析Lagrange 插值算法:结果是0.631917 Newton 插值方法:结果是0.631918 两种算法的计算结果不完全一样对于给定的点才能用Lagrange 插值算法,需要计算出基函数教师评语: 实验成绩:_____计算机与信息工程学院数值分析实验报告实验二:最小二乘法一、 实验目的1、 掌握最小二乘法的基本思路和拟合步骤;2、 培养编程与上机调试能力。

二、 实验题目三、实验原理已知数据对()(),1,2,,j j x y j n =,求多项式0()()mii i p x a x m n ==<∑使得20110(,,,)nm i n i j j j i a a a a x y ==⎛⎫Φ=- ⎪⎝⎭∑∑为最小,这就是一个最小二乘问题四、实验内容与步骤最小二乘法计算步骤用线性函数()p x a bx =+为例,拟合给定数据(),,1,2,,i i x y i m =。

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

三次样条插值法1、满足自然边界条件自定义函数:followup.m%追赶法求m%A为线性方程组的系数矩阵%b为常数向量function m=followup(A,b)n=rank(A);for i=1:nif A(i,i)==0disp('error:对角元素中有数据为0');return;endendd=ones(n,1);a=ones(n-1,1);c=ones(n-1);for i=1:n-1a(i,1)=A(i+1,i);c(i,1)=A(i,i+1);d(i,1)=A(i,i);endd(n,1)=A(n,n);for i=2:nd(i,1)=d(i,1)-(a(i-1,1)/d(i-1,1))*c(i-1,1);b(i,1)=b(i,1)-(a(i-1,1)/d(i-1,1))*b(i-1,1);endm(n,1)=b(n,1)/d(n,1);for i=(n-1):-1:1m(i,1)=(b(i,1)-c(i,1)*m(i+1,1))/d(i,1);end自定义函数:thrsample2.m%a为要求的插值点%f为区间内的插值函数%f0为输入点处的插值%m为追赶法解出的弯矩向量function thrsample2(a)x=[0.2:0.2:1.0];y=[0.9798652 0.9177710 0.8080348 0.6386092 0.3843735]; s02=0;s10=0;x0=a;n=length(x);for i=1:nif (x(i)<=x0)&&(x(i+1)>=x0)index=i;break;endendA=diag(2*ones(1,n));A(1,2)=1;A(n,n-1)=1;u=zeros(n-2,1);lamda=zeros(n-1,1);c=zeros(n,1);for i=2:n-1u(i-1)=(x(i)-x(i-1))/(x(i+1)-x(i-1));lamda(i)=(x(i+1)-x(i))/(x(i+1)-x(i-1));c(i)=3*lamda(i)*(y(i)-y(i-1))/(x(i)-x(i-1))+...3*u(i-1)*(y(i+1)-y(i))/(x(i+1)-x(i));A(i,i+1)=u(i-1);A(i,i-1)=lamda(i);endc(1)=3*(y(2)-y(1))/(x(2)-x(1))-(x(2)-x(1))*s02/2;c(n)=3*(y(n)-y(n-1))/(x(n)-x(n-1))-(x(n)-x(n-1))*s10/2; m=followup(A,c)h=x(index+1)-x(index);syms t;f=y(index)*(2*(t-x(index))+h)*(t-x(index+1))^2/h/h/h+...y(index+1)*(2*(x(index+1)-t)+h)*(t-x(index))^2/h/h/h+... m(index)*(t-x(index))*(x(index+1)-t)^2/h/h-...m(index+1)*(x(index+1)-t)*(t-x(index))^2/h/hf0=subs(f,'t',x0)运行结果:>> thrsample2(0.2)m =-0.2604-0.4106-0.6747-1.0781-1.3677f =2125.0000000 (t - 0.400000000000000022) (1.959730400 t - 0.1959730400) +2125.0000000 (t - 0.200000000000000011) (0.9177710000 - 1.835542000 t)+ 25.000000002(0.400000000000000022 - t) (-0.260410062500000095 t + 0.05208201250)- 25.000000002(t - 0.200000000000000011) (-0.1642371500 +0.410592874999999580 t)f0 =0.9798652000>> thrsample2(0.3)f0 =0.9525726703>> thrsample2(0.4)f0 =0.9177710000>> thrsample2(0.5)f0 =0.8695049390>> thrsample2(0.6)f0 =0.8080348000>> thrsample2(0.7)f0 =0.7334085485>> thrsample2(0.8)f0 =0.6386092000>> thrsample2(0.9)f0 =0.5187304296>> thrsample2(1.0)f0 =0.38437350002、满足第一类边界条件自定义函数:thrsample1.m%a为要求的插值点%f为区间内的插值函数%f0为输入点处的插值%m为追赶法解出的弯矩向量function thrsample1(a)x=[0.2:0.2:1.0];y=[0.9798652 0.9177710 0.8080348 0.6386092 0.3843735]; s02=0.20271;s10=1.55741;x0=a;n=length(x);for i=1:nif (x(i)<=x0)&&(x(i+1)>=x0)index=i;break;endendA=diag(2*ones(1,n));u=zeros(n-2,1);lamda=zeros(n-1,1);c=zeros(n,1);for i=2:n-1u(i-1)=(x(i)-x(i-1))/(x(i+1)-x(i-1));lamda(i)=(x(i+1)-x(i))/(x(i+1)-x(i-1));c(i)=3*lamda(i)*(y(i)-y(i-1))/(x(i)-x(i-1))+...3*u(i-1)*(y(i+1)-y(i))/(x(i+1)-x(i));A(i,i+1)=u(i-1);A(i,i-1)=lamda(i);endc(1)=2*s02;c(n)=2*s10;m=followup(A,c)h=x(index+1)-x(index);syms t;f=y(index)*(2*(t-x(index))+h)*(t-x(index+1))^2/h/h/h+...y(index+1)*(2*(x(index+1)-t)+h)*(t-x(index))^2/h/h/h+... m(index)*(t-x(index))*(x(index+1)-t)^2/h/h-...m(index+1)*(x(index+1)-t)*(t-x(index))^2/h/hf0=subs(f,'t',x0)运行结果:>> thrsample1(0.2)m =0.2027-0.5869-0.4327-1.86991.5574f =2125.0000000 (t - 0.400000000000000022) (1.959730400 t - 0.1959730400) +2125.0000000 (t - 0.200000000000000011) (0.9177710000 - 1.835542000 t)+ 25.000000002(0.400000000000000022 - t) (0.202710000000000001 t - 0.04054200000)- 25.000000002(t - 0.200000000000000011) (-0.2347507964 +0.586876991071428211 t)f0 =0.9798652000>> thrsample1(0.3)f0 =0.9685577748>> thrsample1(0.4)f0 =0.9177710000>> thrsample1(0.5)f0 =0.8590474261>> thrsample1(0.6)f0 =0.8080348000 >> thrsample1(0.7)f0 =0.7592534958 >> thrsample1(0.8)f0 =0.6386092000 >> thrsample1(0.9)f0 =0.4258081535 >> thrsample1(1.0)f0 =0.3843735000。

相关文档
最新文档