Как построить нелинейную систему из 3 уравнений с 3 символическими переменными в MATLAB? - PullRequest
1 голос
/ 29 мая 2009

У меня нет большого опыта работы с 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 уравнений.

Ответы [ 2 ]

4 голосов
/ 29 мая 2009

Я верю 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

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

0 голосов
/ 29 мая 2009

«Hold on» просто говорит не стирать существующие линии и маркеры на текущей оси. Вы должны просто быть в состоянии сделать

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...