数学建模社区-数学中国
标题:
帮忙做下统计显著性检验和K值的误差以及灵敏度分析
[打印本页]
作者:
箫剑→残念
时间:
2016-10-25 16:50
标题:
帮忙做下统计显著性检验和K值的误差以及灵敏度分析
function parafit
, m% L" s: e: H2 A
% k1->k-1,k2->k1,k3->k2,k4->k3,k5->k4
9 \" D m$ y9 F2 M( X% w
% k6->k6 k7->k7
. o1 T! G, s5 Y7 R8 a' N, x/ m
% dGlcdt = k-1*C(Fru)-(k1+k2)*C(Glc);
) L' Y/ }3 {/ T+ k0 f, |
% dFrudt = k1*C(Glc)-(k-1+k3+k4)C(Fru);
% Y' F5 @1 ?. z. o" u6 z; i/ l4 r; A, r
% dFadt = k(2)*C(Glc)+k4*C(Fru)+(k6+k7)*C(Hmf);
$ r1 R( ~) W6 y: u( x% l4 r, q
% dLadt = k(7)*C(Hmf);
& G; w( z' M$ n9 Y8 q- Z
%dHmfdt = k(3)*C(Fru)-(k6+k7)*C(Hmf);
8 Z2 y( \ K+ A9 o
clear all
$ ?. S4 v) i2 d7 K- H% R. m
clc
6 G% S: B3 n4 D, E! |; I7 K" {$ D) Q7 P3 {
format long
8 O, W' g( r9 }& b7 l; ?9 u3 g
% t/min Glc Fru Fa La HMF/ mol/L
! T5 q4 N1 f$ i6 F* g- W5 A
Kinetics=[0 0.25 0 0 0 0
. d: C X* {0 X1 Q
15 0.2319 0.01257 0.0048 0 2.50E-04
2 C" {/ c9 `6 A: i5 ~9 E
30 0.19345 0.027 0.00868 0 7.00E-04
' K' H$ C/ u# j; o, {& g. z c# U5 `! k
45 0.15105 0.06975 0.02473 0 0.0033
& c0 K/ O/ X- v8 _
60 0.13763 0.07397 0.02615 0 0.00428
0 C( |& P4 I3 c/ a4 [* ~ I
90 0.08115 0.07877 0.07485 0 0.01405
; Z2 y3 B2 d( r1 Y
120 0.0656 0.07397 0.07885 0.00573 0.02143
. J# s$ {" ~5 r, G6 u
180 0.04488 0.0682 0.07135 0.0091 0.03623
9 o3 I0 m$ r( Q; t$ W6 @. H( j
240 0.03653 0.06488 0.08945 0.01828 0.05452
4 u0 `$ a7 e4 i( L A* D+ {
300 0.02738 0.05448 0.09098 0.0227 0.0597
2 L5 q" x4 Q4 k: G! V
360 0.01855 0.04125 0.09363 0.0239 0.06495];
5 [ d% J; {. u y2 l
k0 = [0.0000000005 0.0000000005 0.0000000005 0.00000000005 0.00005 0.0134 0.00564 0.00001 0.00001 0.00001]; % 参数初值
8 H( }9 ~2 t1 @6 r% }9 C
lb = [0 0 0 0 0 0 0 0 0 0]; % 参数下限
! B( o# [% p+ W% V! x* D
ub = [1 1 1 1 1 1 1 1 1 1]; % 参数上限
. a$ k/ A# B6 b$ U) B6 ^1 _3 x2 C
x0 = [0.25 0 0 0 0];
0 P# w7 H0 v4 b$ R5 u) p: s6 }, m9 s
yexp = Kinetics; % yexp: 实验数据[x1 x4 x5 x6]
, k5 M/ T1 E$ J x( d2 ^" d1 q0 d
% warning off
& z7 k" G8 V! B
% 使用函数 ()进行参数估计
4 h# H' l5 [/ }; B) c) S0 R/ g* o
[k,fval,flag] = fmincon(@ObjFunc7Fmincon,k0,[],[],[],[],lb,ub,[],[],x0,yexp);
@$ G! f1 q- H$ R0 c# c
fprintf('\n使用函数fmincon()估计得到的参数值为:\n')
- |1 D; T4 E' S$ A
fprintf('\tk1 = %.11f\n',k(1))
: e' w7 f( F" s3 J/ w
fprintf('\tk2 = %.11f\n',k(2))
- ^& O& T P; Q1 [. L8 v
fprintf('\tk3 = %.11f\n',k(3))
/ {' [" P1 [) v; ?
fprintf('\tk4 = %.11f\n',k(4))
! M1 s9 h3 H7 z2 j9 M- v4 B7 ^
fprintf('\tk5 = %.11f\n',k(5))
4 A; M. \5 F+ r- Q1 W1 J
fprintf('\tk6 = %.11f\n',k(6))
. p% @- A$ k. M8 Q9 ~6 \
fprintf('\tk7 = %.11f\n',k(7))
0 s* H1 g$ v a7 w8 s7 K+ D. Q
fprintf('\tk8 = %.11f\n',k(8))
0 a- ?# j! x; f9 E5 A' W, z
fprintf('\tk9 = %.11f\n',k(9))
1 b6 F& j$ _& U4 s5 ]$ T6 V' ]
fprintf('\tk10 = %.11f\n',k(10))
! r/ q( e& O9 _% x7 t
fprintf(' The sum of the squares is: %.1e\n\n',fval)
' f' B l: h- K) ~% c7 M
k_fm= k;
, w- d: _5 |6 I( \/ X/ j7 k* C
% warning off
+ G0 Y) [& q: t' Z; p4 C
% 使用函数lsqnonlin()进行参数估计
6 m( p7 E" M& o i
[k,resnorm,residual,exitflag,output,lambda,jacobian] = ...
L9 r2 Z! Z6 S, S$ U% E, w
lsqnonlin(@ObjFunc7LNL,k0,lb,ub,[],x0,yexp);
' g/ q% h( B8 I
ci = nlparci(k,residual,jacobian);
! @& a4 }0 l6 v7 @" s( y
fprintf('\n\n使用函数lsqnonlin()估计得到的参数值为:\n')
! W4 @- B+ @, I( L
fprintf('\tk1 = %.11f\n',k(1))
) P% v8 r p: {4 U7 _. X
fprintf('\tk2 = %.11f\n',k(2))
3 @3 N# E4 S" A8 o
fprintf('\tk3 = %.11f\n',k(3))
, x8 X7 l: y" ~$ u1 y
fprintf('\tk4 = %.11f\n',k(4))
' }" E% L0 ^6 s& |2 I* N x1 V! L' W
fprintf('\tk5 = %.11f\n',k(5))
" j1 ]' Y; g5 K) k! b, c1 Z! K
fprintf('\tk6 = %.11f\n',k(6))
4 d- G7 T7 D9 j1 G: g C
fprintf('\tk7 = %.11f\n',k(7))
6 d k, z s0 b5 Q" Z# O4 H! A" b( }% |
fprintf('\tk8 = %.11f\n',k(8))
! q) o! {% F& s9 \8 T
fprintf('\tk9 = %.11f\n',k(9))
, A" m5 C- U; ? u7 |
fprintf('\tk10 = %.11f\n',k(10))
N3 r0 C6 E% g, N' B3 n* k! c
fprintf(' The sum of the squares is: %.1e\n\n',resnorm)
" D/ e& j: O/ c O2 K9 b
k_ls = k;
5 E0 ]4 E- ^9 S- b& m
output
" v' a- F/ ?5 Q$ R( {$ O% |
warning off
* x& |; X/ X. Q$ ] l4 V
% 以函数fmincon()估计得到的结果为初值,使用函数lsqnonlin()进行参数估计
4 B/ n9 Q9 l$ o) P$ R0 ~
k0 = k_fm;
. y6 ]/ b+ j$ [2 ~" n* }
[k,resnorm,residual,exitflag,output,lambda,jacobian] = ...
: j% m4 X/ R6 C$ K; _/ G, D
lsqnonlin(@ObjFunc7LNL,k0,lb,ub,[],x0,yexp);
1 r7 u$ K g$ g* N, {2 c1 N
ci = nlparci(k,residual,jacobian);
; a- V9 c( Y0 ~+ U! s+ F8 C! ^
fprintf('\n\n以fmincon()的结果为初值,使用函数lsqnonlin()估计得到的参数值为:\n')
& p) Q9 F( R# H, x0 i: h
fprintf('\tk1 = %.11f\n',k(1))
. `6 o( f$ y. W
fprintf('\tk2 = %.11f\n',k(2))
- |9 \. H: Z* z* Y5 a6 e7 p n, _
fprintf('\tk3 = %.11f\n',k(3))
# S( h# e% z, A/ o M
fprintf('\tk4 = %.11f\n',k(4))
1 B9 K) v3 i! S: K& u% ]
fprintf('\tk5 = %.11f\n',k(5))
' A% B. Q& ?1 z) d% ^
fprintf('\tk6 = %.11f\n',k(6))
0 g/ m/ |" w# B. F
fprintf('\tk7 = %.11f\n',k(7))
2 k% R+ J) B1 G& a3 ^# H& j3 k
fprintf('\tk8 = %.11f\n',k(8))
' V* {5 R4 u. l
fprintf('\tk9 = %.11f\n',k(9))
3 D; {- p7 _8 }9 p
fprintf('\tk10 = %.11f\n',k(10))
. S6 H$ W( u' M' n* _
fprintf(' The sum of the squares is: %.1e\n\n',resnorm)
( z0 P# C- i8 w- S5 Q4 n
k_fmls = k;
) ?( t/ }( h6 j5 d6 C7 g$ H
output
6 u* C' N# d2 ^' V5 d7 \
tspan = [0 15 30 45 60 90 120 180 240 300 360];
1 ^$ q2 u& t& x- J( W- s
[t x] = ode45(@KineticEqs,tspan,x0,[],k_fmls);
' ~. D5 U0 ^- z+ D$ i; n
figure;
* f4 S5 Q+ ~' p6 |7 p$ B4 s8 z+ Z& ]
plot(t,x(:,1),t,yexp(:,2),'*');legend('Glc-pr','Glc-real')
9 _# y; _/ H+ o0 A- a2 t& a5 n& k
figure;plot(t,x(:,2:5));
% p$ C+ @5 S& T3 g6 g; Q
p=x(:,1:5)
R1 C) O5 H) c% M7 ~3 d
hold on
5 _) f1 W- ?9 q$ v9 ^
plot(t,yexp(:,3:6),'o');legend('Fru-pr','Fa-pr','La-pr','HMF-pr','Fru-real','Fa-real','La-real','HMF-real')
$ W* ^" k; l' [0 K5 h5 H
; o+ P$ t7 U( M" C: i
' B. k* z9 N# M) }9 @3 m4 j) o
% b( d2 L8 c4 V8 ~" K6 s
function f = ObjFunc7LNL(k,x0,yexp)
5 F& U* h c1 L- q# s3 F' W" W; ^2 L
tspan = [0 15 30 45 60 90 120 180 240 300 360];
# n- @# I2 \9 n) K
[t, x] = ode45(@KineticEqs,tspan,x0,[],k);
0 w' a& g. d Z6 s
y(:,2) = x(:,1);
3 K, _( V! T# f4 Q9 f* w# y* M
y(:,3:6) = x(:,2:5);
: U& k( G+ h* M. o' S, j
f1 = y(:,2) - yexp(:,2);
; c- d% s5 a0 T$ l9 _
f2 = y(:,3) - yexp(:,3);
$ h; Q5 i! b" T- }! m; C4 C
f3 = y(:,4) - yexp(:,4);
# a6 F+ k; m/ I# I
f4 = y(:,5) - yexp(:,5);
' i( P: \ `: s( B9 e9 Z
f5 = y(:,6) - yexp(:,6);
- _' H1 e( I( {9 V r3 e' [
f = [f1; f2; f3; f4; f5];
, R3 A: M& f8 ~$ {7 }& ]
3 b3 x0 q4 p& W S2 Y2 t* U2 e
' [7 e7 N; e( q: L* E
: Q/ H0 ?# |. G
function f = ObjFunc7Fmincon(k,x0,yexp)
# B- x5 ~+ B, t
tspan = [0 15 30 45 60 90 120 180 240 300 360];
+ t* ~9 U; I9 f, ] `' X
[t x] = ode45(@KineticEqs,tspan,x0,[],k);
) h T" z8 ?: a: l, f! S
y(:,2) = x(:,1);
6 ^2 O( X& G7 S$ ?# L5 [" U
y(:,3:6) = x(:,2:5);
( Y- o/ Y% k; X9 z
f = sum((y(:,2)-yexp(:,2)).^2) + sum((y(:,3)-yexp(:,3)).^2) ...
. u8 w/ q. ~, B6 H* U4 W
+ sum((y(:,4)-yexp(:,4)).^2) + sum((y(:,5)-yexp(:,5)).^2) ...
9 G: u/ f( l7 v% C6 c, K2 O+ S
+ sum((y(:,6)-yexp(:,6)).^2) ;
& S1 J3 p1 L8 S
% I( a) i9 b) P2 M) D' N- O
3 X0 [+ L4 [+ j5 ?4 C; w1 _+ i
1 b6 C. {$ W5 x' U. t" }! U% v
4 w# I1 I- T3 S
function dxdt = KineticEqs(t,x,k)
7 B! h2 |, B4 m; H3 {, r
dGldt = k(1)*x(2)-(k(2)+k(3)+k(8))*x(1);
g# \- Y% g' N: w6 W4 ^
dFrdt = k(2)*x(1)-(k(1)+k(4)+k(5)+k(9))*x(2);
; T+ W: V/ y3 N0 f1 }* e3 w
dFadt = k(3)*x(1)+k(5)*x(2)+(k(6)+k(7))*x(5);
% V' }1 u& r% N) \
dLadt = k(7)*x(5);
' g3 _4 _ Z; ]( @- n! R$ ?) j
dHmdt = k(4)*x(2)-(k(6)+k(7)+k(10))*x(5);
7 \5 n: J8 l* |
dxdt = [dGldt; dFrdt; dFadt; dLadt; dHmdt];
, j! D" V: \5 z, E
% C" V4 ]' h8 V' g
2 e# T) E/ D" N0 G0 H
Glc.zip
2016-10-25 16:49 上传
点击文件名下载附件
下载积分: 体力 -2 点
2.33 KB, 下载次数: 0, 下载积分: 体力 -2 点
M文件以及数据
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5