gpt4 book ai didi

sympy - 符号数量的元素的符号总和

转载 作者:行者123 更新时间:2023-12-01 12:18:18 25 4
gpt4 key购买 nike

在“sympy”中表达以下内容的最合适方式是什么:

样本 'x[i]' 的总和,其中 'i' 来自混凝土
0 到符号“N”。 'x[i]' 本身应该是象征性的,即
始终显示为变量。

目标是在线性方程组中使用这些表达式。

示例(平凡最小二乘近似):

给定一组样本 (x[i], y[i]),它们应该位于
'y = m*x + a' 给出的行。即估计线确定
由'm'和'a'。样本与估计线之间的误差
可以由

 error(m, a) = sum((m * x[i] + a - y[i])**2, start_i=0, end_i=N)

现在,在导数 'd/dm error(m,a)' 中搜索零转换
'd/da error(m,a)' 提供最小距离。我怎么能找到
同情的解决方案?

最佳答案

鉴于你后面的问题,我假设你已经想通了大部分,但为了清楚起见,样本被视为函数(有道理,给定的集合实际上是覆盖集合域的函数[主要是整数的一部分]),所以符号就像 x(i) ,并且可以使用 summation 实现求和函数或 Sum构造函数(第一个更好,因为它会自动扩展常量加数,例如 summation(x, (i, 0, n)) )。

>>> from sympy import *
>>> m, a, x, y, i, n = symbols('m a x y i n')
>>> err = summation((m * x(i) + a - y(i)) ** 2, (i, 0, n))
>>> pprint(err)
n
___

╲ 2
╱ (a + m⋅x(i) - y(i))

‾‾‾
i = 0

在您提供 sum 函数后,加数表达式和 (index, lower bound, upper bound) ,您可以继续玩总和:
>>> diff(err, m)
Sum(2*(a + m*x(i) - y(i))*x(i), (i, 0, n))
>>> diff(err, a)
Sum(2*a + 2*m*x(i) - 2*y(i), (i, 0, n))

关于sympy - 符号数量的元素的符号总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46492657/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com