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
. 위의 첫 방정식으로 수행하는 방법은 다음과 같습니다.
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]);
그리고 결과 플롯은 다음과 같습니다.
플롯을 회전시킴으로써 3 개의 표면이 모두 교차하는 두 지점이있는 것으로 보이며, 방정식 시스템에 대한 두 가지 솔루션이 제공됩니다.
다른 팁
"홀드"는 현재 축에서 기존 라인과 마커를 지우지 말라고 말합니다. 당신은 그냥 할 수 있어야합니다
ezplot(f1);
hold on;
ezplot(f2);
ezplot(f3);
hold off;
나는 ezplot을 사용한 적이 없으므로 그 사람을 도울 수 없습니다.
제휴하지 않습니다 StackOverflow