MATLAB实验报告
题目: 学生姓名: 学院: 专业班级: 学号:
第二次实验报告
年月
****班**号 ***
MATLAB第二次实验报告
————插值与拟合
插值即在离散数据的基础上补插连续函数,使得这条连续曲线通过全部给定的离散数据点。插值是离散函数逼近的重要方法,利用它可通过函数在有限个点处的取值状况,估算出函数在其他点处的近似值。
所谓拟合是指已知某函数的若干离散函数值{f1,f2,…,fn}通过调整该函数中若干待定系数f(λ1, λ2,…,λn),使得该函数与已知点集的差别(最小二乘意义)最小。
一、插值
<1>拉格朗日插值(课上例子)
m=101;
x=-5:10/(m-1):5; y=1./(1+x.^2);z=0*x;
plot(x,z,'r',x,y,'LineWidth',1.5), gtext('y=1/(1+x^2)'),pause n=3;
x0=-5:10/(n-1):5; y0=1./(1+x0.^2);
y1=fLagrange(x0,y0,x);
holdon,plot(x,y1,'b'),gtext('n=2'),pause, hold off n=5;
x0=-5:10/(n-1):5; y0=1./(1+x0.^2);
1
****班**号
y2=fLagrange(x0,y0,x);
holdon,plot(x,y2,'b:'),gtext('n=4'),pause, hold off n=7;
x0=-5:10/(n-1):5; y0=1./(1+x0.^2);
y3=fLagrange(x0,y0,x);hold on, plot(x,y3,'r'),gtext('n=6'),pause, hold off n=9;
x0=-5:10/(n-1):5; y0=1./(1+x0.^2);
y4=fLagrange(x0,y0,x);hold on, plot(x,y4,'r:'),gtext('n=8'),pause, hold off
n=11;
x0=-5:10/(n-1):5; y0=1./(1+x0.^2);
y5=fLagrange(x0,y0,x);hold on, plot(x,y5,'m'),gtext('n=10')
运行后得
***
2
****班**号 ***
<2>拉格朗日插值(课下修改)
functionyh=lagrange (x,y,xh) n = length(x); m = length(xh); yh = zeros(1,m); c1 = ones(n-1,1); c2 = ones(1,m); fori=1:n
xp = x([1:i-1 i+1:n]);
yh = yh + y(i)*prod((c1*xh-xp'*c2)./(x(i)-xp'*c2)); end
输入 x=[1 2 3 4 5 6] y=[13 21 34 6 108 217]
3
****班**号 ***
xh=3.2 lagrange(x,y,xh) 运行后得
x =
1 2 3 4 5 6 y =
13 21 34 6 108 217 xh =
3.2000
ans =
26.0951
二、拟合 <1>课上实例
一种新药用于临床之前,必须设计给药方案药物进入机体后通过血液输送到全身,在这个过程中不断地被吸收、分布、代谢,最终排出体外,药物在血液中的浓度,即单位体积血液中的药物含量,称为血药浓度.
一室模型:将整个机体看作一个房室,称中心室,室内血药浓度是均匀的.快速静脉注射后,浓度立即上升;然后迅速下降.当浓度太低时,达不到预期的治疗效果;当浓度太高,
4