首页 > 电脑 > MATLAB非线性优化求最小值时,有一个含有优化变量的积分如何处理(编程.积分

MATLAB非线性优化求最小值时,有一个含有优化变量的积分如何处理(编程.积分

电脑 2023-10-25

MATLAB作非线性优化求最小值时,有一个含有优化变量的积分如何处理

对于含有优化变量的积分问题,我的建议如能直接积分得到结果,可以直接在表达式上改变量,这样可以少浪费时间把问题解决。即用下列代码得到积分解析解

syms a x1 x2

F1=cos(a)*exp(3*(a-x2)*tan(pi/3));

F2=(1/3)*int(F1,a,x2,x1);

F=subs(F2,{x1,x2},{'x(1)','x(2)'})

然后用自定义函数去定义F表达式。

按此要求更改运行,可以得到如下结果:

x = 0.017453 0.53841

fval = -0.05507

从运行结果来看,求解的问题为最大值问题。

下面的结果,是用遗传算法得到的。有问题可以私信联系或其他方式交流。

Matlab非线性优化求助

将下属两个目标函数分别保存在两个m文件中 function f1=func1(x) %第一目标函数 f1=x(:,1).*x(:,1)./4+x(:,2).*x(:,2)./4; function f2=func2(x) %第二目标函数 f2=x(:,1).*(1-x(:,2))+10; function GA() clear;clc;close all NIND=100; %个体数目 MAXGEN=50; %最大遗传代数 NVAR=2; %变量个数 PRECI=20; %变量的二进制位数 GGAP=0.9; %代沟 trace1=[];trace2=[];trace3=[]; %性能跟踪 %

MATLAB非线性优化中求积分,求积分的时候怎么卡住不动,左下角显示正忙,这是怎么回事,该如何解决?

这里有比较多的问题。

1、先解决这个问题,x变量不连续,应该这样使用,x(1)、x(2)、x(3)、。。。

func=@(nm)cos(nm)-cos(p1).*exp(((p1-nm)./(x(5)-x(4))).*log((sin(x(4))./sin(x(2))).*exp((x(5)-x(2)).*tan(p1))));

上式,请重新调整变量位置。

MATLAB非线性优化中求积分,求积分的时候怎么卡住不动,左下角显示正忙,程序运行不动,该如何解决?

求积分的时候为什么停滞不前,是因为下式

QQ=(1./cos(TZ))*(1-sin(TZ)+2.*n*((sin(TZ)-sin(p1))/(1+sin(p1)))).*exp((2.*(x(5)-x(4))./(TM-p1)).*log(cos(TZ)./cos(TM)))
CC=int(QQ,s,x(4),x(5))

被积函数含有变量矩阵x,所以用无法对其积分表达式进行积分运算,如matlab的int()、quad()等。

解决的方法,可以单独对其积分运算,然后用x(1)替代x1,x(2)替代x2,。。。

构建了一个非线性优化数学模型,目标函数中含有定积分,用什么求解器呢,Cplex,lingo好像都不支持啊

你可以尝试用matlab的非线性优化函数求解,目标函数中含有定积分可以考虑用梯形数值积分来求解。

标签:matlab 信息技术 非线性 积分

大明白知识网 Copyright © 2020-2022 www.wangpan131.com. Some Rights Reserved. 京ICP备11019930号-18