我得到一个方程y(x') = Integral(f(x, x')*g(x), x in X)
。我还得到了一个函数f
,以及长度为n
的X
值和Y
值的列表。我需要找到一个相同长度的列表g
,使得Z[i] = np.trapz(f(X, X[i])*g, X)
满足Z[i] = Y[i]
。
我首先做了一些分析探索,找到了如何从原始方程表达g
,但一旦我用数值计算,我得到Z[i] - Y[i]
是一条斜率接近零的直线,但它仍然引入了一些一致的误差。
因此,我想也许我需要直接在np.trapz(f(X, X[i])*g, X) == Y[i]
中求解g
。这应该是非常简单的,如果np.trapz
在它的第一个参数是线性的,因为它将导致一个关于g
的线性方程组。所以我想知道线性是否真的成立。
1条答案
按热度按时间x8diyxa71#
是的,它是线性的。就像积分算子is(form f->integral_a^B f(x)dx是线性的)。像任何样本的加权和f(x),...,f(x)是。
trapz
只是计算积分的一种方法,是一些f(xₖ)
的加权和,x是第二个参数。你可以很容易地通过实验来检验它
字符串
同样的道理,也适用于数值误差。
当然,这只是一个实验证明。但是,trapz不是线性的,并且表现得如此接近线性函数的几率是多少?另外,您可以将这些示例与不同的值,不同的种子相乘,...它总是有效的。
无论如何,这不是我真实的的答案。我真实的的答案是第一部分:计算函数积分的梯形近似的应用是线性应用。我包括实验证明,只是因为这是[所以],我喜欢答案包含代码:D