18、科学编程与图形可视化:Julia 语言的应用探索

科学编程与图形可视化:Julia 语言的应用探索

1. 使用 MathProgBase 接口

NLopt 实现了用于非线性优化的 MathProgBase 接口,因此它可以与 JuMP 互换使用。NLopt 求解器名为 NLoptSolver,以下是一个求解问题的示例代码:

using JuMP
using NLopt
m = Model(solver=NLoptSolver(algorithm=:LD_MMA));
a1 = 2;  b1 = 0;
a2 = -1; b2 = 1;
@defVar(m, x1);
@defVar(m, x2 >= 0);
@setNLObjective(m, Min, sqrt(x2));
@addNLConstraint(m, x2 >= (a1*x1+b1)^3);
@addNLConstraint(m, x2 >= (a2*x1+b2)^3);
setValue(x1, 1.2);
setValue(x2, 5.6);
status = solve(m);
@printf "Ans => %6.4f at (%5.3f,%5.3f)\n" getObjectiveValue(m) getValue(x1) getValue(x2);

此代码表明宏定义在将问题定义与编码的实际细节解耦方面的强大功能。调用时需要指定算法参数,其他一些参数可以使用默认值,除非明确提供。

2. 随机问题

到目前为止遇到的问题完全由模型确定,会反复产生相同的解。但有些模型包含随机出现的项,这些被称为随机问题。例如,不稳定股

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值