当前位置:文档之家› MATLAB插值与拟合实验报告

MATLAB插值与拟合实验报告

MATLAB插值与拟合实验报告
MATLAB插值与拟合实验报告

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 ==

的基础。其中,拉格朗日插值和最小二乘法拟合是最常见到的,所以实验报告就这两种方法进行了相关解释。插值和拟合,基础但不简单,需要大量的训练才能很好的进行掌握,所以,继续加油吧!

相关主题
文本预览
相关文档 最新文档