无约束方程matlab,带约束的非线性方程组

本文介绍了如何在Matlab中解决带有不等式约束的非线性方程组,包括使用fsolve的不同算法、lsqnonlin以及fmincon。通过示例展示了如何设置约束条件和初始点来寻找满足约束的解。
摘要由CSDN通过智能技术生成

求解具有不等式约束的方程

fsolve 求解非线性方程组。但是,它不允许您包含任何约束,甚至是边界约束。那么,如何求解带约束的非线性方程组?

满足您的约束的解不一定存在。事实上,此问题可能没有任何解,哪怕是不满足约束的解。然而,有一些方法可以帮助您搜索满足约束的解。

为了说明这些方法,假设要设法求解以下方程

F1(x)=(x1+1)(10-x1)1+x221+x22+x2F2(x)=(x2+2)(20-x2)1+x121+x12+x1,

其中 x 的分量必须为非负值。这些方程有四个解:

x=(-1,-2)x=(10,-2)x=(-1,20)x=(10,20).

只有一个解满足约束,即 x=(10,20)。

位于此示例末尾的 fbnd 辅助函数会以数值方式计算 F(x)。

使用不同起点

一般情况下,包含 N 个变量、N 个方程的方程组有孤立的解,这意味着每个解都没有同为解的邻点。因此,搜索满足某些约束的解的一种方法是生成多个初始点 x0,然后从每个 x0 开始运行 fsolve。

对于此示例,要寻找 的解,请取 10 个随机点,这些点呈正态分布,均值为 0,标准差为 100。

rng default % For reproducibility

N = 10; % Try 10 random start points

pts = 100*randn(N,2); % Initial points are rows in pts

soln 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值