我需要帮助。我必须使用MATLAB生成一条曲线。该图由公式(分析表达式)定义: -
其中,变量的含义如下:R是分布式电阻函数,S是分布导电函数,k是薄层电阻, r(x,y)是距离*之间 (x,y)*和周边 dl ,围绕芯片的所有周边进行集成。
如图所示的方形箔,具有10个任意单位长的边(a)和单一的单位薄层电阻(k = 1欧姆)用于我们的考虑。函数 R(x,y)的图应该是这样出来的......
我完全不知道如何绘制这个函数。我甚至无法理解如何根据 dl 定义距离函数 r(x,y)。最重要的是,闭合积分进一步复杂化。请帮我。任何帮助甚至简化表达也是受欢迎的。这样的方形结构是否有任何可能的封闭形式表达式?
提前致谢。这篇文章的链接就在这里。 paper here
答案 0 :(得分:1)
函数R
的定义不是特别清楚,但我猜他们的意思是:
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:
%% 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;
这将给你以下情节: