gnuplot / implicit / solve-e
To solve implicit functions A functon which is not defined in a form of y=f(x) but written as If the function can be defined by using parameters, it is easy to gnuplot> set parametric dummy variable is t for curves, u/v for surfaces gnuplot> set size square gnuplot> r=1 gnuplot> plot r*sin(t),r*cos(t) When the function is so complicated, and use of parameter is gnuplot> f(x,y)= x**3 - 2*x*y + y**3 An intersection of f(x,y) and z=0 is the solution. To set the z=0 plane gnuplot> set xrange [-2:2] gnuplot> set yrange [-2:2] gnuplot> set zrange [0:5] gnuplot> set ticslevel 0 gnuplot> set view 40,340 gnuplot> set isosample 100,100 gnuplot> splot f(x,y) ![]() The curve shown at the bottom is the solution of f(x,y)=0. The contour lines gnuplot> set xrange [-2:2] gnuplot> set yrange [-2:2] gnuplot> set zrange [*:*] gnuplot> set cont base gnuplot> set cntrparam levels discrete 0,0 gnuplot> unset surface gnuplot> set surface gnuplot> set term table gnuplot> set output "cont.dat" gnuplot> splot f(x,y) Then, the data on the file are plotted, in a usual manner. gnuplot> set xrange [-2:2] gnuplot> set yrange [-2:2] gnuplot> set size square gnuplot> plot "cont.dat" w l ![]() The following method does not use a temporary file. The contour lines gnuplot> set xrange [-2:2] gnuplot> set yrange [-2:2] gnuplot> set view 0,0 gnuplot> set isosample 100,100 gnuplot> set size square gnuplot> set cont base gnuplot> set cntrparam levels incre -0.4,0.1,0.4 gnuplot> unset surface gnuplot> splot f(x,y) ![]() |