Как построить нелинейную систему из 3 уравнений с 3 символьными переменными в MATLAB?

StackOverflow https://stackoverflow.com/questions/925555

  •  06-09-2019
  •  | 
  •  

Вопрос

У меня не очень большой опыт работы с Matlab.Я знаю, что вы можете построить уравнения с двумя переменными следующим образом:

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.Вот как это сделать с вашим первым уравнением, приведенным выше:

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]);

и получившийся сюжет будет выглядеть примерно так:

enter image description here

Повернув график, вы заметите, что, по-видимому, есть две точки, в которых пересекаются все три поверхности, что дает вам два решения для системы уравнений.

Другие советы

"hold on" просто говорит о том, чтобы не стирать существующие линии и маркеры на текущей оси.вы должны просто уметь делать

ezplot(f1);
hold on;
ezplot(f2);
ezplot(f3);
hold off;

Я никогда не пользовался ezplot, поэтому не могу вам с этим помочь.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top