MATLAB 响应面法程序为什么运行不出来求助!!!

MATLAB 响应面法程序为什么运行不出来求助!!!,第1张

存在四个问题:

1、从程序结构上说,代码包括三部分:

(1)第一个function(即bate2)为目标函数

(2)第二、三个function,其中st为约束条件,xym为st调用的子函数;

(3)下面这行代码以及后面的内容为主程序

Mu=[10 25];  %输入平均值

主程序可以作为脚本(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 zd

global Mu Sigama  %定义全局变量

Mu=[10 25];  %输入平均值

Sigama=[2 0375]   %输入标准差

X0=[10 25];  %输入初始迭代点

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=[10000 100000 25000 1000000 62500;

    10000 160000 25000 2560000 62500;

    10000 40000 25000 2560000 62500;

    10000 100000 36250 1000000 131406;

    10000 100000 13750 1000000 18906];

B1=[136728;108005;165451;168897;-103136];

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 less

 than optionsTolFun and maximum constraint violation is less

 than optionsTolCon

X =

   102991    15136

fval =

    69410

exitflag =

     1

output =

       iterations: 3

        funcCount: 12

     lssteplength: 1

         stepsize: 01441

        algorithm: 'medium-scale: SQP, Quasi-Newton, line-search'

    firstorderopt: 85143e-008

          message: [1x144 char]

Pf =

    00042

你好,注册码:7814。

PS:X-plore从122版以后需联网认证。也就是说,有注册码“联网认证”也通不过!

现有完美破解的X-plore151单图标版,无需注册、签名。

留个邮箱发给你!

警告默认算法没有找到最小值, 而自动改为active-set 算法

去掉这条警告,可以设置options

options=optimset('Algorithm','active-set');

[X,fval,exitflag,output]=fmincon(@bata2,X0,A,b,Aeq,beq,lb,ub,@st,options);

以上就是关于MATLAB 响应面法程序为什么运行不出来求助!!!全部的内容,包括:MATLAB 响应面法程序为什么运行不出来求助!!!、跪求X-plore注册码,手机串号是359319022694831、求大师们帮忙看一下,这是关于一个用matlab优化工具箱编的有关程序,为什么运行时候会出现如下问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9686036.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存