0

この関数に基づいています。2 つの空の配列 (1 つは x 用、もう 1 つは y 用) を作成しようとしています。これは、後で Python でプロットするために使用します。しかし、何よりもまず、これは私がこれまで持っているものです...

    import math

    x1=-2.0 
    x2=2.0

    arr1 = []
    arr2 = []

    i=0
    n=10
    delta=(x2-x1)/n
    for i in range (0,n+1):
        x=x1+delta*i        
        arr1.append(x)         
    print arr1
     # I have not called the w function yet

上記のコードは、簡単にするために、今のところ 10 個の数字のリストを作成しています。次に、配列の要素を以下の関数に送信し、特定の数値で方程式を計算します (無限ループ)。

    #This function will create the array list for y
    import math

    def w(x, limit):# the limit here to compare when the number is really small            
        suma = 0.0
        sumb = 0.0
        m=1
        x=0
        suma=suma+((1/(math.pow(2,m))*(math.sin(math.pow(2,m)*x)))
        sumb=suma+((1/(math.pow(2,m+1))*(math.sin(math.pow(2,m+1)*x))) # I'm having a 
                                                                       #syntax error  
                                                                        #here
       x+=0
       if (abs (suma-sumb)<limit):
            break:
       else m+=1:
       if (m<20):
            break:

構文エラーや提案があれば、助けていただければ幸いです。私が十分に明確だったことを願っています。事前に感謝

4

1 に答える 1

1

構文エラーは、実際には前の行にあり、括弧のバランスが取れていません。)その行の最後に(そして、エラーが発生したと指定した行にも)追加が必要です。

他にもいくつか問題があります

  • sumaはゼロに設定されているためsuma = suma + ...、 と同じですが、この行の前にループsuma = ...を追加する必要があると思います。while
  • 示された行に がありますがsumb = suma +、これはおそらくコピー/貼り付けの間違いです。
  • で始まるコード ブロックx+=0は、スペース 4 つではなく 3 つだけインデントされています。実際のコードではおそらくそうではありませんが、そうである場合、Python もそれについて文句を言うでしょう。
  • else m+=1:(コロンは、行末ではなく、 のelse: m+=1直後にある必要があります。else
  • break:break(コロンなしで)あるべきです。
于 2012-05-03T07:08:50.657 に答える