我是SciLab的初学者。
我对圆锥曲线的问题是:
我的等式是:
a x x + b x y + c y y + d x + e y + f = z其中z = 0
我想得到椭圆上所有点的(x,y)坐标,其中z = 0
例如,我使用Scilab代码的函数是:
function [z] = fct(x,y)
z = -0.04088*x^2 - 0.10063*y^2 - 0.21767*x + 0.44632*y + 0.04286*x*y
endfunction
我用以下方式设置工作空间:
x=-10:10; y=-10:10;
我画椭圆:
fcontour2d(x, y, fct, [0,0], style=[9,9])
现在我如何得到绘制椭圆的所有点((x,y)坐标),其中z = 0?
也许我可以用z=feval(x,y,fct)
做一些我不知道的事情。
谢谢你我前进的帮助。
于连
答案 0 :(得分:0)
我终于找到了解决方案,这要归功于我在网上找到的一些pdf文档。
以下是Scilab的源代码:
// conic function
function [z] = fct(x,y)
Z = -0.04088 * X ^ 2-0.10063 * Y ^ 2-0.21767 * X + 0.44632 * Y + 0.04286 * X * Y
endfunction可写
//平面z = 0
function [z] = f(x,y)
Z = 0 * X * Y
endfunction可写
//工作空间
X = -10:10; Y = -10:10;
//我们从圆锥函数中绘制2d椭圆,其中z = 0
fcontour2d(X,Y,FCT,[0,0],式= [9,9])
//我们编写一个函数来找到圆锥曲面和地方曲面之间的交点
函数[Y] = coniques(X),Y = [fct(X(1),X(2)),f(X(1),X(2))] endfunction可写
对于i = -10:0.1:10 //对于y轴的每个偏移量(i从-10到10,步长为0.1)
代表= fsolve([ - 10,I],coniques); //我们找到第一个交点的坐标(rep(1)= x,rep(2)= y)(从左到右搜索)
xpolys(rep(1),rep(2), - 1)//我们在图表上绘制点
代表= fsolve([10,I],coniques); //我们找到第二个交点的坐标(rep(1)= x,rep(2)= y)(从右到左搜索)
xpolys(rep(1),rep(2), - 1)//我们在图表上绘制点
端