gpt4 book ai didi

python - 如何使用Python在for循环中实现拉格朗日算法来计算坐标

转载 作者:太空宇宙 更新时间:2023-11-03 20:46:56 25 4
gpt4 key购买 nike

我编写了以下代码,使用拉格朗日算法计算给定的 X 和 Y 坐标集的多项式方程。该方程是使用 def 实现的,并且看起来工作正常。但是,我尝试使用生成的多项式方程来获取给定 X 值范围的 y 坐标,以便可以绘制机器人的路径。例如。如果范围是 1 到 15(包含 1 和 15),则程序应该计算 Y 的相应值,并将每对坐标绘制在图表上。我不知道如何将 X 值传递到 def 并获得正确的 Y 值 - 我确信它相对简单,但我的大脑完全一片空白!任何帮助将不胜感激!

import sympy

from functools import *
from sympy import *
X = Symbol('X')

def Lagrange(points):

P=[reduce((lambda x,y: x*y),[(X-points[j][0])/(points[i][0] - points[j][0]) for j in range(len(points)) if i != j])*points[i][1] for i in range(len(points))]

return sum(P)

points=[[0, 1], [1, 0], [3, 16], [-1, 16]]
print(points)
P=Lagrange(points)
print("\nLagrange equation :\n")
print(P)

最佳答案

您可以使用 subs 计算一系列 x 值的函数。一种方法如下所示。然后,您可以使用 matplotlib

进行可视化
import matplotlib.pyplot as plt

# Your code

output = [P.subs({X: i}) for i in range(1, 16)]
plt.plot(range(1, 16), output)
plt.show()

替代方案是使用 evalf 在给定的 X 值处评估您的函数

output = [P.evalf(subs={X:i}) for i in range(1, 16)]

enter image description here

关于python - 如何使用Python在for循环中实现拉格朗日算法来计算坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56529306/

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