sistemas sistema simultaneas simplificar resolución punto programa para metodo lineales implicitas fijo expresiones ecuaciones definicion con matlab plot

simultaneas - resolver sistema de ecuaciones matlab solver



Trazando ecuaciones algebraicas implícitas en MATLAB (4)

Deseo trazar funciones implícitas en MATLAB. Como x ^ 3 + xy + y ^ 2 = 36, ecuaciones que no pueden convertirse en forma paramétrica simple. ¿Hay algún método simple?


Aquí hay un par de opciones ...

Usando ezplot (o fplot recomendado en versiones más nuevas):

La solución más fácil es usar la función ezplot :

ezplot(''x.^3 + x.*y + y.^2 - 36'', [-10 10 -10 10]);

Lo cual te da la siguiente trama:


Usando contour :

Otra opción es generar un conjunto de puntos donde se evaluará la función f(x,y) = x^3 + x*y + y^2 y luego usar el contour la función para trazar líneas de contorno donde f(x,y) es igual a 36:

[x, y] = meshgrid(-10:0.1:10); % Create a mesh of x and y points f = x.^3+x.*y+y.^2; % Evaluate f at those points contour(x, y, f, [36 36], ''b''); % Generate the contour plot xlabel(''x''); % Add an x label ylabel(''y''); % Add a y label title(''x^3 + x y + y^2 = 36''); % Add a title

Lo anterior te dará una trama casi idéntica a la generada por ezplot :


En caso de que quiera trazar una superficie implícita, por ejemplo, un cubo con cuernos, puede hacer algo como lo siguiente.

La idea es calcular todos los valores de la función (incluso si no son iguales a cero) y luego crear una isosurface que definirá su igualdad. En este ejemplo, la función implícita es igual a cero.

fun=@(x,y,z)(1-x.^8-3.*y.^8-2.*z.^8+5.*x.^4.*z.^2.*y.^2+3.*y.^4.*x.^2.*z.^2) ; [X,Y,Z]=meshgrid(-2:0.1:2,-2:0.1:2,-2:0.1:2); val=fun(X,Y,Z); fv=isosurface(X,Y,Z,val,0); p = patch(fv); isonormals(X,Y,Z,val,p) set(p,''FaceColor'' , ''red''); set(p,''EdgeColor'' , ''none''); daspect([1,1,1]) view(3); axis tight camlight lighting phong axis off

Además, hay una presentación de Matlab File Exchange llamada ezimplot3D que parece hacer el trabajo también, como sugiere @knedlsepp.


Hay dos nuevas funciones para trazar la función implícita en R2016b:

fimplicit para f (x, y) = 0
fimplicit3 para f (x, y, z) = 0