存在四个问题:
1、从程序结构上说,代码包括三部分:
(1)第一个function(即bate2)为目标函数;
(2)第二、三个function,其中st为约束条件,xym为st调用的子函数;
(3)下面这行代码以及后面的内容为主程序
Mu=[10 2.5] %输入平均值主程序可以作为脚本(Script)直接使用,也可以保存成一个函数。保存成函数的好处是可以把三部分代码存在同一个文件中,但需要注意,主函数必须在最前面。
2、下面这行代码多了一个逗号:
[X,fval,exitflag,output]=fmincon(@bata2,X0,A,b,Aeq,,beq,lb,ub,@st)3、目标函数的名字为bate2,但在调用fmincon的时候写成了bata2。
4、在目标函数中使用了全局变量Mu、Sigama,但主程序中未声明其为全局变量。全局变量需要在每一个使用它的模块中都要声明,也就是说,需要在主程序中增加一行:
global Mu Sigama另外,程序中有些应该输出的信息没有输出,却输出了一些不必输出的信息(语句后面是否加分号),也作了调整。
改写后的代码如下(可以保存在一个文件中,已作为附件上传):
function zdglobal Mu Sigama %定义全局变量
Mu=[10 2.5] %输入平均值
Sigama=[2 0.375] %输入标准差
X0=[10 2.5] %输入初始迭代点
A=[]b=[]Aeq=[]beq=[]
lb=[]ub=[]
[X,fval,exitflag,output]=fmincon(@bata2,X0,A,b,Aeq,beq,lb,ub,@st) %调用优化工具箱求解
bata=sqrt(fval)
Pf=cdf('norm',-bata,0,1) %计算失效概率
function CC=bata2(X) %目标函数子函数
global Mu Sigama %定义全局变量
CC=((X(1)-Mu(1))/Sigama(1))^2+((X(2)-Mu(2))/Sigama(2))^2 %X均为正态分布
function [c,ceq]=st(X) %约束条件子函数
c=[] %非线性不等式约束
ceq=xym(X) %非线性等式约束
function Z=xym(X) %响应面函数子函数
A1=[1.0000 10.0000 2.5000 100.0000 6.2500
1.0000 16.0000 2.5000 256.0000 6.2500
1.0000 4.0000 2.5000 256.0000 6.2500
1.0000 10.0000 3.6250 100.0000 13.1406
1.0000 10.0000 1.3750 100.0000 1.8906]
B1=[13.672810.800516.545116.8897-10.3136]
C=A1\B1 %求解二次响应面函数各项系数
Z=C(1)+C(2)*X(1)+C(3)*X(2)+C(4)*X(1)+C(5)*X(2) %计算功能函数值
运行结果如下:
Optimization terminated: first-order optimality measure lessthan options.TolFun and maximum constraint violation is less
than options.TolCon.
X =
10.2991 1.5136
fval =
6.9410
exitflag =
1
output =
iterations: 3
funcCount: 12
lssteplength: 1
stepsize: 0.1441
algorithm: 'medium-scale: SQP, Quasi-Newton, line-search'
firstorderopt: 8.5143e-008
message: [1x144 char]
Pf =
0.0042
响应面法是指通过一系列确定性实验,用多项式函数来近似隐式极限状态函数。通过合理地选取试验点和迭代策略,来保证多项式函数能够在失效概率上收敛于真实的隐式极限状态函数的失效概率。
当真实的极限状态函数非线性程度不大时,线性响应面具有较高的近似精度。二次不含交叉项的响应面法基本思想: 与线性响应面法类似,只不过它选取二次不含交叉项的多项式来近似隐式功能函数。
扩展资料:
响应面分析也是一种最优化方法,它是将体系的响应(如萃取化学中的萃取率)作为一个或多个因素(如萃取剂浓度、酸度等)的函数,运用图形技术将这种函数关系显示出来,以供我们凭借直觉的观察来选择试验设计中的最优化条件。
要构造这样的响应面并进行分析以确定最优条件或寻找最优区域,首先必须通过大量的量测试验数据建立一个合适的数学模型(建模),然后再用此数学模型作图。建模最常用和最有效的方法之一就是多元线性回归方法,对于非线性体系可作适当处理化为线性形式。
参考资料:百度百科-响应面法
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)