clear all; clc
disp('插值求取平滑曲线后的数值' )
t = [5 10 15 20 30 40 60 80 120] ;
A = [29.84 40.01 46.71 53.87 63.32 67.01 67.33 67.54 67.87];
knots = 3; K = 3 ; % 三次B样条
sp = spap2(knots,K,t,A);
pp = fnder(sp); % 计算B样条函数的导函数
dAdt = fnval(pp,t); % 计算t处的导函数值
rAm = dAdt;
% 绘制浓度拟合曲线
ti = linspace(t(1),t(end),200);
Ai = fnval(sp,ti);
plot(t,A,'ro',ti,Ai,'b:')
hold on
t = [5 10 15 20 30 40 60 80 120] ;
B = [36.32 48.21 55.81 62.21 69.81 72.39 72.72 72.91 73.92];
knots = 3; K = 3 ; % 三次B样条
sp = spap2(knots,K,t,B);
pp = fnder(sp); % 计算B样条函数的导函数
dBdt = fnval(pp,t); % 计算t处的导函数值
rBm = dBdt;
ti = linspace(t(1),t(end),200);
Bi = fnval(sp,ti);
plot(t,B,'rx',ti,Bi,'b:')
hold on
t = [5 10 15 20 30 40 60 80 120] ;
C = [41.91 55.62 64.13 70.46 77.64 79.80 80.04 80.57 83.92];
knots = 3; K = 3 ; % 三次B样条
sp = spap2(knots,K,t,C);
pp = fnder(sp); % 计算B样条函数的导函数
dCdt = fnval(pp,t); % 计算t处的导函数值
rCm = dCdt;
% 绘制浓度拟合曲线
ti = linspace(t(1),t(end),200);
Ci = fnval(sp,ti);
plot(t,C,'rs',ti,Ci,'b:')
hold on
t = [5 10 15 20 30 40 60 80 120] ;
D = [42.16 62.13 72.91 79.87 84.21 85.61 85.84 86.21 86.22];
knots = 3; K = 3 ; % 三次B样条
sp = spap2(knots,K,t,D);
pp = fnder(sp); % 计算B样条函数的导函数
dDdt = fnval(pp,t); % 计算t处的导函数值
rDm = dDdt;
% 绘制浓度拟合曲线
ti = linspace(t(1),t(end),200);
Di = fnval(sp,ti);
plot(t,D,'rv',ti,Di,'b:')
Xlabel('t')
ylabel('X_A')
legend(o,'100%',x,'90%',s,'80%',v,'70%')