MATLAB插值与拟合实验报告材料
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实用标准文档
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);
hold on,plot(x,y1,'b'),gtext('n=2'),pause,
hold off
n=5;
x0=-5:10/(n-1):5;
y0=1./(1+x0.^2);
y2=fLagrange(x0,y0,x);
hold on,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>拉格朗日插值(课下修改)
function yh=lagrange (x,y,xh)
n = length(x);
m = length(xh);
yh = zeros(1,m);
c1 = ones(n-1,1);
c2 = ones(1,m);
for i=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]
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>课上实例
一种新药用于临床之前,必须设计给药方案药物进入机体后通过血液输送到全身,在这个过程中不断地被吸收、分布、代谢,最终排出体外,药物在血液中的浓度,即单位体积血液中的药物含量,称为血药浓度.
一室模型:将整个机体看作一个房室,称中心室,室内血药浓度是均匀的.快速静脉注射后,浓度立即上升;然后迅速下降.当浓度太低时,达不到预期的治疗效果;当浓度太高,
又可能导致药物中毒或副作用太强.临床上,每种药物有一个最小有效浓度c1和一个最大有效浓度c2.设计给药方案时,要使血药浓度 保持在c1~c2之间.本题设c1=10ug/ml ,c2=25ug/ml.
要设计给药方案,必须知道给药后血药浓度随时间变化的规律.从实验和理论两方面着手:
在实验方面,对某人用快速静脉注射方式一次注入该药物300mg 后,在一定时刻t(h)采集血药,测得血药浓度c(ug/ml)如下表:
模型假设
1.机体看作一个房室,室内血药浓度均匀——一室模型
2.药物排除速率与血药浓度成正比,比例系数 k(>0)
3.血液容积v, t=0注射剂量d, 血药浓度立即为d/v. 模型建立
在此,d=300mg ,t 及c (t )在某些点处的值见前表,需经拟合求出参数k 、v.
用线性最小二乘拟合c (t
)
3 (0)/c d ν=由假设得:d 2 -d c kc t
=由假设得:()e kt d c t v -⎫⇒=⎬⎭
程序:
d=300;
t=[0.25 0.5 1 1.5 2 3 4 6 8];
c=[19.21 18.15 15.36 14.10 12.89 9.32 7.45 5.24 3.01]; y=log(c);
a=polyfit(t,y,1)
k=-a(1)
v=d/exp(a(2))
运行得
c1 =
-0.0785 1.3586 -22.1079 967.7356
a1 =
-0.2356 2.7173 -22.1079
计算得
三、实验感受
本次实验,我们主要学习了插值和拟合这两个在实际应用
中十分广泛的建模方法,同时,它们也是我们学习数学建模
)(02.15),/1(2347.0l v h k ==