繁体   English   中英

如何在for循环中实现Lagrange算法以使用Python计算坐标

[英]How to implement the Lagrange algorithm in a for loop to calculate coordinates using Python

我编写了以下代码,以使用Lagrange算法为给定的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)]

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM