作业帮 > 综合 > 作业

matlab中约束条件非线性,求目标函数(线性)最大值怎么做?

来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/04/25 16:55:22
matlab中约束条件非线性,求目标函数(线性)最大值怎么做?
matlab中约束条件非线性,求目标函数(线性)最大值怎么做?
脚本如下:
fun = @(t)-(183545*t-367490003);
lb = 2004;
ub = 2030;
t0 = 2015;
x = fmincon(fun,t0,[],[],[],[],lb,ub,@c)
起始值t0随便写一个.
另外在c.m中定义非线性约束函数:
function [c,ceq] = c(t)
c = 462.2*t.^2-2e6*t+2e9; % nonlinear inequalities at x.
ceq = 0; % nonlinear equalities at x.
运行结果2030.
再问: 还想再请问下,我发现算出来的结果和我设的ub值有关,如果我把ub值改成2050年,那算出来最大值就是2050。这个结果是不是不对呢??
再答: 其实你可以验证一下你的约束函数,先看看其在ub处是不是