matlab求解非线性超越方程

 我来答
lhmhz
高粉答主

2020-05-27 · 专注matlab等在各领域中的应用。
lhmhz
采纳数:7264 获赞数:17017

向TA提问 私信TA
展开全部

题主给出的非线性超越方程,如用matlab的vpasolve函数求解得到的结果,并不符合0<α1<α2<α3<α4<α5<π/2的条件。但可以通过fmincon函数,得到接近值。求解思路:

1、创建目标函数,即使得eq1+eq2+eq3+eq4+eq5为最小并接近于0。

eq1=cos(a1)-cos(a2)+cos(a3)-cos(a4)+cos(a5)-m*pi/4;

eq2=cos(5*a1)-cos(5*a2)+cos(5*a3)-cos(5*a4)+cos(5*a5);

eq3=cos(7*a1)-cos(7*a2)+cos(7*a3)-cos(7*a4)+cos(7*a5);

eq4=cos(11*a1)-cos(11*a2)+cos(11*a3)-cos(11*a4)+cos(11*a5);

eq5=cos(13*a1)-cos(13*a2)+cos(13*a3)-cos(13*a4)+cos(13*a5);

2、创建约束条件函数,即使得

eq1+eq2+eq3+eq4+eq5=0

cos(a1)-cos(a2)+cos(a3)-cos(a4)+cos(a5)=m*pi/4

α1<α2,α2<α3,α3<α4,α4<α5

3、设定α的上下限,即lb=[0,0,0,0,0];ub=[pi/2,pi/2,pi/2,pi/2,pi/2];

4、使用fmincon函数,求出满足条件的α1、α2、α3、α4、α5近似值

5、验证约束条件是否成立

6、从执行结果,我们可以看到,使用fmincon函数可以得到我们想要的值。


7、用vpasolve函数,得到α1、α2、α3、α4、α5的值。

当然,α1、α2、α3、α4、α5的值并不是最优解,还可以进一步优化。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式