我是gnu的新手。
我转向gnu,因为我无法通过matlab绘制表面。
如何在非矩形值域上绘制2d曲面?
例如,我想绘制以下集合
S = {z | x * y ^ 2 = z使得x + y <1且x> 1。 0和y> 0}。
我认为一种解决方案是定义一个函数
每当x + y <1,x> 0且y> 0时,f(x,y):= x * y ^ 2
f(x,y):= 100 else。
然后我可以简单地将图片限制在我感兴趣的部分。 但是如何定义两个变量的分段函数?
帮助永远赞赏。 干杯
答案 0 :(得分:1)
您必须使用parametric
模式。这会为您提供矩形(u, v)
域,您必须对其进行适当转换才能获得所需的(x, y)
域:
set parametric
set urange [0:1]
set vrange [0:1]
set xlabel 'x'
set ylabel 'y'
set view 62,24
set ticslevel 0
splot u, v*(1-u), u*v**2
4.6.3的结果是:
答案 1 :(得分:0)
我自己想出来了!
这是解决方案
f(x,y)= x + y <= 1? 1:1/0 splot [0:1] [0:1] [0:4] \ f(x,y)*(我的功能)。
所以,基本上,我定义了一个步进函数,然后乘以它。
干杯