绘制闭合积分函数MATLAB

时间:2014-12-28 16:32:10

标签: matlab

我需要帮助。我必须使用MATLAB生成一条曲线。该图由公式(分析表达式)定义: -

enter image description here

其中,变量的含义如下:R是分布式电阻函数,S是分布导电函数,k是薄层电阻, r(x,y)是距离*之间 (x,y)*和周边 dl ,围绕芯片的所有周边进行集成。

如图所示的方形箔,具有10个任意单位长的边(a)和单一的单位薄层电阻(k = 1欧姆)用于我们的考虑。函数 R(x,y)的图应该是这样出来的......

enter image description here

enter image description here

我完全不知道如何绘制这个函数。我甚至无法理解如何根据 dl 定义距离函数 r(x,y)。最重要的是,闭合积分进一步复杂化。请帮我。任何帮助甚至简化表达也是受欢迎的。这样的方形结构是否有任何可能的封闭形式表达式?

提前致谢。这篇文章的链接就在这里。 paper here

1 个答案:

答案 0 :(得分:1)

重建数学

函数R的定义不是特别清楚,但我猜他们的意思是: Integral definition

dOmega是陪衬的边界,而p是箔上的p = [px,py]点。

想象一下,对于工作表上的p点,您通过绕过箔片的边界(他们称之为周边)计算R(p),您的位置为q,并且将一个除以你的距离(q)加到点p乘以k

我猜你可以分析地计算这个矩形工作表的积分,但是如果你只想绘制函数,你可以通过在边界上定义有限数量的点来近似积分,评估这些点中的被积函数,然后取平均值并乘以周长。 [与integral(f(x), x=0...pi)]

近似pi*(f(0)+f(pi/2)+f(pi))/3的方式相同

使用坐标的替代表示:

如果您只熟悉坐标表示中实线的积分,您可以通过以下方式编写它,这很坦率地说是非常UGGGLY: Integral definition 2

绘制近似值

%% Config:
xlen = 10;
ylen = 10;
k = 1;

%% Setting up points on the boundary of the square
x = linspace(0,xlen,50);
y = linspace(0,ylen,50);
perimeter = 2*(xlen+ylen);
boundary = [x(1)*ones(length(y),1),   y'
            x', y(1)*ones(length(x),1); ...
            x(end)*ones(length(y),1), y'; ...         
            x', y(end)*ones(length(x),1)];

%% Function definition
norm2 = @(X) sqrt(sum(X.^2,2));
R = @(p) 1/(perimeter*mean(1./(k*norm2(bsxfun(@minus,boundary,p)))));

%% Plotting
[X_grid,Y_grid] = ndgrid(x,y);
R_grid = zeros(size(X_grid));
for ii = 1:length(x)
    for jj = 1:length(y)
        R_grid(ii,jj) = R([x(ii),y(jj)]);
    end
end
surf(X_grid, Y_grid, R_grid);
axis vis3d;

这将给你以下情节: enter image description here