湖南大学电气与信息工程学院
《数值计算》课程 上机实验报告
姓名: | 班级: | 学号: | 日期: |
指导老师: | |||
本次实验题号:第 3 次实验 | |||
1) 实验目的:
1) 用MATLAB实现拉格朗日插值和分段线性插值。
2) 了解matlab实现曲线拟合方法的实际应用。
2. 实验内容:
1) 插值算法的应用:
题目:用拉格朗日插值程序,分段线形插值函数分别研究f(X)的数据表,计算f(0.472)
X | 0.46 | 0.47 | 0.48 | 0.49 |
Y | 0.4846555 | 0.4937542 | 0.5027498 | 0.5116683 |
2) 曲线拟合方法的实际应用
用电压V=10V的电池给电容器充电,电容器上t时刻的电压v(t)=V-(V-V0)e^(-t/T),其中V0是电容器的初始电压,T是充电常数。实验测量了一组数据如下,请根据数据表确定V0和T的大小。
t | 0.5 | 1 | 2 | 3 | 4 | 5 | 7 | 9 |
V(t) | 6.36 | 6.48 | 7.26 | 8.22 | 8.66 | 8.99 | 9.43 | 9.63 |
三. 算法介绍或方法基础
1.1 拉格朗日插值法
对于已给定的点 和待估计的点的横坐标x,如上述理论,将其值代入
计算出插值基函数的值,然后根据公式:
计算出纵坐标的估计值,由此完成对该点的插值过程,其中k为该点插值的阶数。
1.2 线性分段插值
利用已给定的点 对插值区间分为段,将每段的端点与作为数据点利用公式
在所构成的区间进行线性插值。
1.3曲线拟合
将拟合函数取线性函数是一种简单的数据拟合方法,利用数据点
确定线性拟合函数
解得的值,将其代入即可得到拟合线性函数。
为了确定数据拟合问题,选用幂函数作为函数类,则
这就是多项式拟合函数.
为了确定拟合函数的系数,需要求解正规方程组
解得最优解即可,将其代入即可得到拟合多项式。若用指数函数对数据进行拟合,则使用线性化方法,对等式两边求对数得:
令得
对和进行线性拟合求出B, C,由此可进一步求出A。
抛物线拟合数据,令然后对和进行线性拟合,求出参数a, b;
用指数曲线拟合数据,先对纵坐标数据取对数,然后如上述理论对 和 进行线性拟合,进一步求出参数a,b。
4. 程序
1) Lagrange插值程序:
function f = Language(x,y,x0)
%求已知数据点的拉格朗日插值多项式
%已知数据点的x坐标向量: x
%已知数据点的y坐标向量: y
%插值点的x坐标: x0
%求得的拉格朗日插值多项式或在x0处的插值: f
x=[0.46 0.47 0.48 0.49];%input x data
y=[0.4846555 0.4937542 0.5027498 0.5116683];%input y data
x0=[0.472];%input x0 data
syms t l;
if(length(x) == length(y))
n = length(x);
else
disp('x和y的维数不相等!');
return; %检错
end
p=sym(0);
for (i=1:n)
l=sym(y(i));
for(k=1:i-1)
l=l*(t-x(k))/(x(i)-x(k));
end;
for(k=i+1:n)
l=l*(t-x(k))/(x(i)-x(k));
end;
p=p+l;
end
simplify(p);%简化多项式
matlab拟合数据 f = subs (p,'t',x0); %计算插值点的函数值
f = vpa(f,9); %将插值多项式的值化成6位精度的小数
end
2) 分段线性插值函数:
% fd.m 分段线性插值函数
function fd
x=[0.46 0.47 0.48 0.49];
y=[0.4846555 0.4937542 0.5027498 0.5116683];
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论