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 に答える