matlab - 全多元多项式函数图
matlab - Full Multivariate polynomial function plot
嗨,我有一个与两个变量的完整多项式函数相关的问题。我可以编写代码来计算它的值,但我不知道如何在 0 级绘制轮廓。例如:给定一个完整的 5 阶多项式
f(x,y) = theta1 + theta2*x + theta3*y + theta4*x*y + theta5*x^2 + theta6*y^2 + ... + theta20*x^5 + theta21*y^5
我已经编写了给定 theta、x 和 y 来计算 f(x,y) 的代码,但是如何绘制此函数
theta1 + theta2*x + theta3*y + theta4*x*y + theta5*x^2 + theta6*y^2 + ... + theta20*x^5 + theta21*y^5 = 0 ?
谢谢!
我将假设您的函数采用元素明智的值。如果不是,则声明一个函数句柄,该函数句柄接收代表这些相应维度中的值的变量 x
和 y
:
f = @(x,y) theta1 + theta2*x + theta3*y + theta5*x.^2 + theta6*y.^2 + ... + theta24*x.^5 + theta25*y.^5;
(....你需要那么多 theta
值吗?)。接下来,生成您希望绘制的 x
和 y
坐标域。您可以使用 meshgrid
:
[X,Y] = meshgrid(-10:0.01:10);
这会为两个维度生成一个 (x,y)
坐标在 -10 到 10 之间的网格,步长为 1。
现在,使用上述函数生成您的 Z
坐标:
Z = f(X,Y);
现在您终于完成了,将 contour
函数与 X,Y
和 Z
一起使用。现在,如果您只想显示 f(x,y) = 0
所在的级别,您特别需要这样做:
contour(X,Y,Z,[0 0]);
一般来说,第四个元素是一个等高线向量,但是如果你想专门画一个等高线,那就是你需要做的。
嗨,我有一个与两个变量的完整多项式函数相关的问题。我可以编写代码来计算它的值,但我不知道如何在 0 级绘制轮廓。例如:给定一个完整的 5 阶多项式
f(x,y) = theta1 + theta2*x + theta3*y + theta4*x*y + theta5*x^2 + theta6*y^2 + ... + theta20*x^5 + theta21*y^5
我已经编写了给定 theta、x 和 y 来计算 f(x,y) 的代码,但是如何绘制此函数
theta1 + theta2*x + theta3*y + theta4*x*y + theta5*x^2 + theta6*y^2 + ... + theta20*x^5 + theta21*y^5 = 0 ?
谢谢!
我将假设您的函数采用元素明智的值。如果不是,则声明一个函数句柄,该函数句柄接收代表这些相应维度中的值的变量 x
和 y
:
f = @(x,y) theta1 + theta2*x + theta3*y + theta5*x.^2 + theta6*y.^2 + ... + theta24*x.^5 + theta25*y.^5;
(....你需要那么多 theta
值吗?)。接下来,生成您希望绘制的 x
和 y
坐标域。您可以使用 meshgrid
:
[X,Y] = meshgrid(-10:0.01:10);
这会为两个维度生成一个 (x,y)
坐标在 -10 到 10 之间的网格,步长为 1。
现在,使用上述函数生成您的 Z
坐标:
Z = f(X,Y);
现在您终于完成了,将 contour
函数与 X,Y
和 Z
一起使用。现在,如果您只想显示 f(x,y) = 0
所在的级别,您特别需要这样做:
contour(X,Y,Z,[0 0]);
一般来说,第四个元素是一个等高线向量,但是如果你想专门画一个等高线,那就是你需要做的。