我想知道由两个具有不同半径 a 和 b 的正交圆柱的相交曲线构成的长度,其中 a > b > 0。
我遇到了这篇文章,它提供了一个椭圆积分的解决方案:
我的最终目标是在 excel 中创建一个类似于 steinmetzcur(a,b) = 弧长(英寸)的函数。我需要使用什么数值方法来解决这个问题,这可以在 excel 中完成吗?
我想知道由两个具有不同半径 a 和 b 的正交圆柱的相交曲线构成的长度,其中 a > b > 0。
我遇到了这篇文章,它提供了一个椭圆积分的解决方案:
我的最终目标是在 excel 中创建一个类似于 steinmetzcur(a,b) = 弧长(英寸)的函数。我需要使用什么数值方法来解决这个问题,这可以在 excel 中完成吗?
由于被积函数(在您引用的答案中)是周期性的且相当平滑,您可以使用梯形规则对其进行数值评估。对于这样的被积函数,收敛是指数的,所以你不应该需要太多的点。这是一个很好的解释。我认为在 Excel 中这样做是非常可行的。
这是一些 matlab 代码,显示了相等半径情况下的快速收敛(和被积函数)。
I = zeros(50, 1);
f = @(x)sqrt((1-cos(x).^4)./(1-cos(x).^2));
for i = 2:2:100
x = linspace(0, 2 * pi, i);
y = f(x);
y(1) = sqrt(2) / 2; % f(0) = f(2*pi) = NaN, but f(0) -> sqrt(2).
y(end) = sqrt(2) / 2; % Divide by 2 for trapzeoidal rule
I(i / 2) = sum(y) * (x(2) - x(1));
end
subplot(2,1,1), plot(x, f(x)), title('Integrand'), axis tight, xlabel('$\theta$')
subplot(2,1,2), semilogy(2:2:100, abs(I - I(end))), title('Convergence of trapezoidal rule'), ylabel('Error')