0

该程序在图上取 4 个点并将它们放入拉格朗日多项式中。我得到了正确输出的术语,但我需要将 4 个术语连接成 1 行代码。无论我在哪里尝试连接,它都会不断地弄乱循环,从而弄乱我的条件。我确信有一种更简单的方法可以做到这一点,但我必须使用字符串和连接来完成我的作业。任何帮助,将不胜感激。谢谢。

import string
from math import *

def main():
    n=4
    abscissa=[-5,-2,3,7]
    ordinate=[4,-6,8,1]

    for j in range(n):
        LP=str(ordinate[j])
        denom="1"
        for k in range(n):
            if k!=j:
                denom= denom+"*("+str(abscissa[j])+"-"+str(abscissa[k])+")"
                LP=LP+"*(x-"+str(abscissa[k])+")"
        LP=LP+'/'+denom
        print(LP)

main()
4

1 回答 1

1

收集条款并加入他们:

import string
from math import *

def main():
    n=4
    abscissa=[-5,-2,3,7]
    ordinate=[4,-6,8,1]
    result = ''
    for j,y in enumerate(ordinate):
        if j!=0:
            result += '+'
        LP=str(y)
        denom="1"
        for k,x in enumerate(abscissa):
            if k!=j:
                denom += '*({}-{})'.format(abscissa[j],x)
                LP += '*(x-{})'.format(x)
        LP += '/' + denom
        result += LP
    print(result)
main()
于 2013-03-02T06:58:43.830 回答