问题描述
我在Matlab上没有很多经验.我知道您可以用2个变量绘制方程式:
I don't have a lot of experience with Matlab. I know that you can plot equations with 2 variables like this:
ezplot(f1)
hold on
ezplot(f2)
hold off;
您将如何绘制具有三个符号变量的三个方程式?
How would you plot three equations with three symbolic variables?
示例系统为:
x^2+y^2+z^2-1=0
2*x^2+y^2-4*z=0
3*x^2-4y+z^2=0
如果有一种方法可以绘制任何由3个方程组成的系统,那将是理想的选择.
It would be ideal if there was a way to plot any system of 3 equations.
推荐答案
我相信 ezsurf
接近您想要的.您首先必须为z
求解每个方程,然后为该方程创建一个函数并用ezsurf
对其进行绘制.下面是使用上面的第一个方程式的方法:
I believe ezsurf
comes close to what you want. You would first have to solve each equation for z
, then make a function for that equation and plot it with ezsurf
. Here's how to do it with your first equation from above:
func1 = @(x, y) sqrt(1-x.^2-y.^2);
ezsurf(func1);
这应该显示一个球体的上半部分.
This should display the upper half of a sphere.
要一起显示所有三个方程,您可以执行以下操作:
To display all three equations together, you can do the following:
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]);
,结果图将如下所示:
通过旋转绘图,您会发现所有三个表面相交处似乎有两个点,从而为方程组提供了两种解决方案.
By rotating the plot, you will notice that there appear to be two points where all three surfaces intersect, giving you two solutions for the system of equations.
这篇关于如何在MATLAB中绘制由3个具有3个符号变量的方程组成的非线性系统?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!