matlab在tic处出现解析错误,matlab优化求解中遇到问题,望大神指点。。。 - 程序语言 - 小木虫 - 学术 科研 互动社区...

该博客展示了如何使用MATLAB的fmincon函数解决一个约束优化问题。初始值设为[38.61914, 0.06],边界条件在[251853.5, 402507.0]之间,采用active-set算法,并设置了最大函数评估次数、函数误差和变量误差的容忍度。约束条件包括四个非线性函数,目标函数涉及二次项和三次项的组合。最终输出了优化后的参数值和各个约束条件函数的值。
摘要由CSDN通过智能技术生成

CODE:

function test_1106

clear all;clc,format long

tic,

x0=[38.6 191 4.06];

lb=[25 185 3.5];

ub=[40 250 7.0];

OPTIONS=optimset('MaxFunEvals',5000,'TolFun',1e-6,'TolX',1e-6,'Algorithm','active-set');%,'Algorithm','interior-point','sqp','active-set');

[x,fval]=fmincon(@func,x0,[],[],[],[],lb,ub,@NlinCons,OPTIONS);

[ff fff]=NlinCons(x);

fprintf('\n\n计算结果:\n');

fprintf(' \t目标函数值 fval = %.6e\n\n',fval);

fprintf(' \t约束条件1函数值 f1 = %.6e\n',ff(1));

fprintf(' \t约束条件2函数值 f2 = %.6e\n',ff(2));

fprintf(' \t约束条件3函数值 f3 = %.6e\n',ff(3));

fprintf(' \t约束条件4函数值 f4 = %.6e\n',ff(4));

fprintf('\n\t参数 x1 = %.6f',x(1))

fprintf('\n\t参数 x2 = %.6f',x(2))

fprintf('\n\t参数 x3 = %.6f',x(3))

%---------------------------------------------------------

function[C,Ceq]=NlinCons(x)

C=[1.35*10^(5)/x(1)+12.76*10^(6)*x(2)^2-6.9*10^5*x(1)*x(2)/(12.56*x(1)^3*x(2)-12.56*x(1)^4);x(1)^2*10^10/(x(2)*x(3));(x(1)*x(3)+x(1))/x(2)+86.25*10^3/x(2);x(1)*x(3)+1.5*x(1)-215];

Ceq=[];

%C=[];

%Ceq=[1.35*10^(5)/x(1)+12.76*10^(6)*x(2)^2-6.9*10^5*x(1)*x(2)/(12.56*x(1)^3*x(2)-12.56*x(1)^4);x(1)^2*10^10/(x(2)*x(3));(x(1)*x(3)+x(1))/x(2)+86.25*10^3/x(2);x(1)*x(3)+1.5*x(1)-215];

%---------------------------------------------------------

function f=func(x)

f=0.5*1.935*10^(-5)*x(1)^2*x(2)*(x(3)+1.5)+0.5*5.75*x(2)^3*x(3)/x(1)^4;

toc

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值