MATLAB에서 3 개의 상징적 변수로 3 방정식의 비선형 시스템을 플로팅하는 방법은 무엇입니까?

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

  •  06-09-2019
  •  | 
  •  

문제

나는 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. 위의 첫 방정식으로 수행하는 방법은 다음과 같습니다.

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

플롯을 회전시킴으로써 3 개의 표면이 모두 교차하는 두 지점이있는 것으로 보이며, 방정식 시스템에 대한 두 가지 솔루션이 제공됩니다.

다른 팁

"홀드"는 현재 축에서 기존 라인과 마커를 지우지 말라고 말합니다. 당신은 그냥 할 수 있어야합니다

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

나는 ezplot을 사용한 적이 없으므로 그 사람을 도울 수 없습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top