matlab求解多元函数仅保留实数解 您所在的位置:网站首页 matlab中fsolve函数怎么求解方程组 matlab求解多元函数仅保留实数解

matlab求解多元函数仅保留实数解

2023-07-27 18:28| 来源: 网络整理| 查看: 265

matlab求解这样一个二元方程组,如果不加限制条件的话,求出来会有三个解:

clc; clear all; syms y x z=3; x1=0.4; y1=1; eq1=-x1+(x/sqrt(x^2+y^2))*(sqrt(x^2+y^2+z^2)/(tand(acosd(sqrt((x^2+y^2)/(x^2+y^2+z^2)))))); eq2=-y1+(y/sqrt(x^2+y^2))*(sqrt(x^2+y^2+z^2)/(tand(acosd(sqrt((x^2+y^2)/(x^2+y^2+z^2)))))); [x,y]=solve(eq1,eq2,x,y); x=double(x) y=double(y)

如下所示,其中前两个都是伪解:

x = 0.0000 + 0.0000i 0.0000 + 1.1768i 0.3787 + 0.0000i y = 0.0000 + 0.0000i 0.0000 + 2.9419i 0.9468 + 0.0000i

如果只想要第三个解的第一项,就是实数解,可以约束solve

[x,y]=solve(eq1,eq2,x,y,"real",true);

这样求出来的就是只有一个解了。

x =0.3787 y =0.9468


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有