如何用matlab绘制图像:对100-(sqrt((x-l1)^2+y^2))中的l1从0到5进行积分,画出三维图

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/04 16:46:21
如何用matlab绘制图像:对100-(sqrt((x-l1)^2+y^2))中的l1从0到5进行积分,画出三维图

如何用matlab绘制图像:对100-(sqrt((x-l1)^2+y^2))中的l1从0到5进行积分,画出三维图
如何用matlab绘制图像:对100-(sqrt((x-l1)^2+y^2))中的l1从0到5进行积分,画出三维图

如何用matlab绘制图像:对100-(sqrt((x-l1)^2+y^2))中的l1从0到5进行积分,画出三维图

先用符号积分算了一下,发现没有解析解.那么只能用数值积分的方法了,我用的是比较简单的simpson积分公式,代码如下.

建立m文件smpsn.m,内容如下

function z = smpsn(x,y);

global x0 y0;

x0 = x;y0 = y;

h = 0.05;%积分步长

t=[0:h:5];

n = length(t);

s = 0;

for k = 2:n

    s = s + 4*fun((t(k)+t(k-1))/2)+2*fun(t(k));

end

s = s+fun(t(1))-fun(t(n));

z = h/6.*s;


function yy = fun(l1);

global x0 y0

yy = 100-(sqrt((x0-l1).^2+y0.^2));


然后需要输入的命令是:

>> [X,Y]=meshgrid(linspace(-10,10,200));

>> Z=smpsn(X,Y);

>> mesh(X,Y,Z);

图形:

这里x,y取的范围是[-10,10],按照需要你可以自己取.