使用MatLab绘制2变量函数并进行积分

时间:2014-09-19 13:34:20

标签: matlab plot

有没有人举例说明如何在MatLab中使用集成绘制2变量函数(不使用MuPAD)?

这就是我所拥有的:

clear all;

%define a, p and w

a=1;
p=1;
w=5;

%calculate xmin and xmax

xmin=a-p/2
xmax=a+p/2

%define the coordinates 


x=linspace(xmin,xmax);
y=linspace(0,1);

%define the coordinates along x-y plane

[x,y]=meshgrid(x,y);

%define and compute the given function along the x-y coordinates

z=w-(1/p)*int((x.-y)^2, x, xamin, xmax) ;

figure
surf(y,x,z)
title ('a=1 and p=1');
xlabel('w')
ylabel('t')
zlabel('x')
axis tight
shading interp
colorbar

显然,我的功能z出了问题。功能是

z = w-(1 / p)* int(x-t)^ 2dx其中x的范围从a-p / 2到a + p / 2

非常感谢!

1 个答案:

答案 0 :(得分:0)

你的功能

z=w-(1/p)*int((x.-y)^2, x, xamin, xmax) ;

不依赖于x,因为

 >> syms x y xmin xmax
 >> func = int((x-y)^2,x,xmin,xmax)

 func =

 xmax*(y^2 + xmax*(xmax/3 - y)) - xmin*(y^2 + xmin*(xmin/3 - y))

因此不需要做表面图,简单的图就足够了。 您可以使用

执行此操作
z = xmax*(y.^2 + xmax*(xmax/3 - y)) - xmin*(y.^2 + xmin*(xmin/3 - y));
plot (y ,z);

在通过meshgrid将x和y转换为网格之前:

enter image description here