主要内容

适合歌唱参数使用优化变量

这个例子展示了如何找到参数,优化一个常微分方程(ODE)在最小二乘意义上,使用优化变量(具体问题具体分析的方法)。

问题

这个问题是一个多步反应模型在内的几种物质,其中一些相互反应产生不同的物质。

对于这个问题,真实的反应速率是未知的。所以,你需要观察和推断出率的反应。假设你可以测量一组次的物质 t 。从这些观察,配合最好的一组反应速率的测量。

模型

该模型有六个物质, C 1 通过 C 6 ,反应如下:

  • 一个 C 1 和一个 C 2 形成一个反应 C 3 在速度 r 1

  • 一个 C 3 和一个 C 4 形成一个反应 C 5 在速度 r 2

  • 一个 C 3 和一个 C 4 形成一个反应 C 6 在速度 r 3

反应速率的乘积成正比的数量所需的物质。所以,如果 y 代表物质的数量 C 生产,则反应速率 C 3 r 1 y 1 y 2 。同样,生产反应速率 C 5 r 2 y 3 y 4 生产,反应速率 C 6 r 3 y 3 y 4

换句话说,微分方程控制系统的发展

dy dt = ( - - - - - - r 1 y 1 y 2 - - - - - - r 1 y 1 y 2 - - - - - - r 2 y 3 y 4 + r 1 y 1 y 2 - - - - - - r 3 y 3 y 4 - - - - - - r 2 y 3 y 4 - - - - - - r 3 y 3 y 4 r 2 y 3 y 4 r 3 y 3 y 4 ]

开始时间0点的微分方程 y ( 0 ) = ( 1 , 1 , 0 , 1 , 0 , 0 ] 。这些初始值完全确保所有的物质反应,导致 C 1 通过 C 4 随着时间的增长接近零。

在MATLAB中表达模型

diffun函数实现了微分方程的形式准备好解决方案数值

类型diffun
函数dydt = diffun (~, y, r) dydt = 0 (6,1);s12 = y y (1) * (2);s34 = y (3) * y (4);dydt (1) = - r (1) * s12;dydt (2) = - r (1) * s12;dydt (3) = - r (2) * s34 + r (1) * s12 - r (3) * s34;dydt (4) = - r (2) * s34 - r (3) * s34;dydt (5) = r (2) * s34;dydt (6) = r (3) * s34;结束

真实的反应率 r 1 = 2 5 , r 2 = 1 2 , r 3 = 0 4 5 。计算系统的演变乘以0到5通过调用数值

rtrue = (2.5 1.2 0.45);y0 = [1 1 0 1 0 0];tspan = linspace (0 5);soltrue =数值(@ (t, y) diffun (t y rtrue) tspan, y0);yvalstrue =德瓦尔(soltrue tspan);i = 1:6次要情节(3、2、1)情节(tspan, yvalstrue(我,:))标题([“y (”num2str(我),“)”])结束

图包含6轴对象。1标题y坐标轴对象(1)包含一个类型的对象。2标题y坐标轴对象(2)包含一个类型的对象。与标题y坐标轴对象3(3)包含一个类型的对象。与标题y坐标轴对象4(4)包含一个类型的对象。与标题y坐标轴对象5(5)包含一个类型的对象。与标题y坐标轴对象6(6)包含一个类型的对象。

优化问题

准备解决的问题的具体问题具体分析的方法,创建一个三元素优化变量r的下界0.1和一个上限的10

r = optimvar (“r”3,“下界”,0.1,“UpperBound”10);

这个问题的目标函数的平方和ODE的解决方案与参数之间的区别r和解决方案真正的参数yvals。要表达这种目标函数,首先编写一个MATLAB函数计算ODE的解决方案使用参数r。这个函数是RtoODE函数。

类型RtoODE
函数solpts = RtoODE (r, tspan, y0)溶胶=数值(@ (t, y) diffun (t、y, r), tspan, y0);solpts =德瓦尔(溶胶,tspan);结束

使用RtoODE在一个目标函数,利用函数转换为一种优化表达式fcn2optimexpr。看到将非线性函数优化表达式

myfcn = fcn2optimexpr (@RtoODE r tspan, y0);

目标函数表示为平方的总和ODE的解决方案和解决方案之间的差异与真正的参数。

obj =总和(和((myfcn - yvalstrue) ^ 2));

创建一个目标函数的优化问题obj

概率= optimproblem (“客观”、obj);

解决问题

找到最佳拟合参数r,给一个初始猜测r0解算器和电话解决

r0。r=(111]; [rsol,sumsq] = solve(prob,r0)
使用lsqnonlin解决问题。局部最小值。优化完成因为梯度的大小小于最优值的宽容。
rsol =结构体字段:r (3 x1双):
sumsq = 3.8659 e15汽油

平方的总和差异基本上是零,这意味着参数解算器发现导致ODE的解决方案与真正的参数匹配的解决方案。所以,正如所料,解决方案包含真正的参数。

disp (rsol.r)
2.5000 1.2000 0.4500
disp (rtrue)
2.5000 1.2000 0.4500

有限的观察

假设你不能观察的所有组件y,但只有最后的输出y (5)y (6)。你能得到所有的反应速率的值根据有限的信息吗?

为了找到答案,修改功能RtoODE只返回第五和第六颂歌输出。修改后的ODE求解器RtoODE2

类型RtoODE2
函数solpts = RtoODE2 (r, tspan, y0) solpts = RtoODE (r, tspan, y0);solpts = solpts ((5、6):);% y y(5)和(6)结束

RtoODE2函数简单地调用RtoODE然后需要的最后两行输出。

创建一个新的优化表达式RtoODE2和优化变量r,时间跨度的数据tspan,初始点y0

myfcn2 = fcn2optimexpr (@RtoODE2 r tspan, y0);

修改的比较数据,包括输出5和6只。

yvals2 = yvalstrue ((5、6):);

创建一个新的目标和新的优化问题从优化表达式myfcn2和比较数据yvals2

methoda =总和(和((myfcn2 - yvals2) ^ 2));prob2 = optimproblem (“客观”,methoda);

解决这个问题基于这一组有限的观察。

[rsol2, sumsq2] =解决(prob2 r0)
使用lsqnonlin解决问题。局部最小值。lsqnonlin停止是因为最后的平方和的变化相对于其初始值小于公差的值函数。
rsol2 =结构体字段:r (3 x1双):
sumsq2 = 2.1616 e-05

再一次,返回的平方和基本上是零。这是否意味着解决者发现正确的反应速率?

disp (rsol2.r)
1.7811 1.5730 0.5899
disp (rtrue)
2.5000 1.2000 0.4500

没有;在这种情况下,新利率完全不同于真正的利率。然而,一个新的颂歌的情节显示解决方案相比,真正的值y (5)y (6)真正的值相匹配。

图绘制(tspan yvals2 (1:)“b -”)举行ss2 = RtoODE2 (rsol2.r tspan, y0);:情节(ss2 tspan, (1),“r——”)情节(tspan yvals2 (2:)“c -”ss2)情节(tspan (2:)“m——”)传说(“真正y (5) ',“新y (5)”,“真正y (6) ',“新y (6)”,“位置”,“西北”)举行

图包含一个坐标轴对象。坐标轴对象包含4线类型的对象。这些对象代表真正的y(5),新的y(5),真正的y(6),新的y (6)。

识别正确的反应这个问题,你必须观察数据比y (5)y (6)

情节的所有组件的解决方案与新参数,和策划解决方案真正的参数。

图yvals2 = RtoODE (rsol2.r tspan, y0);i = 1:6次要情节(3 2,我)情节(tspan, yvalstrue(我,:)“b -”、tspan yvals2(我,:),“r——”)传说(“真正的”,“新”,“位置”,“最佳”)标题(“y (”num2str(我),“)”])结束

图包含6轴对象。坐标轴对象1标题y(1)包含2线类型的对象。这些对象是真实的,新的。2标题y坐标轴对象(2)包含2线类型的对象。这些对象是真实的,新的。与标题y坐标轴对象3(3)包含2线类型的对象。这些对象是真实的,新的。与标题y坐标轴对象4(4)包含2线类型的对象。这些对象是真实的,新的。与标题y坐标轴对象5(5)包含2线类型的对象。 These objects represent True, New. Axes object 6 with title y(6) contains 2 objects of type line. These objects represent True, New.

使用新的参数,物质 C 1 C 2 排水更慢和物质 C 3 不积累。但物质 C 4 , C 5 , C 6 有完全相同的进化与新的参数和真实的参数。

另请参阅

||

相关的话题