Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 其它 > 资料存档
资料存档 资料存档
回复
 
主题工具 显示模式
旧 2019-12-10, 16:49   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 如何在MATLAB中绘制由3个具有3个符号变量的方程组成的非线性系统?

我在Matlab上没有很多经验。我知道您可以绘制带有2个变量的方程式,如下所示:

ezplot(f1) hold on ezplot(f2) hold off; 您将如何绘制具有三个符号变量的三个方程式?

一个示例系统是:

x^2+y^2+z^2-1=0 2*x^2+y^2-4*z=0 3*x^2-4y+z^2=0 如果有一种方法可以绘制任何由3个方程组成的系统,那将是理想的。


回答:
我相信ezsurf接近您想要的。您首先必须求解z每个方程,然后为该方程创建一个函数并使用ezsurf对其进行ezsurf 。这是使用上面的第一个方程式的方法:

func1 = @(x, y) sqrt(1-x.^2-y.^2); ezsurf(func1); 这应该显示球体的上半部分。

要一起显示所有三个方程,可以执行以下操作:

func1 = @(x, y) sqrt(1-x.^2-y.^2); func2 = @(x, y) 0.5.*x.^2+0.25.*y.^2; func3 = @(x, y) sqrt(4.*y-3.*x.^2); ezsurf(func1, [-1 1 -1 1]); hold on; ezsurf(func2, [-1 1 -1 1]); ezsurf(func3, [-1 1 -1 1]); axis([-1 1 -1 1 0 1]); 结果图将如下所示:



通过旋转绘图,您会发现所有三个表面相交处似乎有两个点,从而为方程组提供了两种解决方案。



更多&回答...
poster 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛禁用 表情符号
论坛启用 [IMG] 代码
论坛启用 HTML 代码



所有时间均为北京时间。现在的时间是 03:29


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.