湖南大学电气与信息工程学院
《数值计算》课程  上机实验报告
姓名
班级
学号
日期
指导老师
本次实验题号:第  3  次实验
1) 实验目的:
1) MATLAB实现拉格朗日插值和分段线性插值。
2) 了解matlab实现曲线拟合方法的实际应用。
2. 实验内容:
1) 插值算法的应用:
题目:用拉格朗日插值程序,分段线形插值函数分别研究fX)的数据表,计算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是充电常数。实验测量了一组数据如下,请根据数据表确定V0T的大小。
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
指数曲线拟合数据,先对纵坐标数据取对数,然后如上述理论对 进行线性拟合,进一步求出参数ab
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小时内删除。