2014-11-14 5 views
0
for (i=0;i<=n;i++) { 
     fsten[i]=fx(xsten[i]); //fsten[0] = fx(xsten[0]); fsten[1] = fx(xsten[1]); ...; etc. initializing the fsten array up to n times. 
} //end of initial for loop 

     y=0.0; 

     for (i=0;i<=n;i++) { 
     L=1.0; //the lagrange basis polynomial 
      for (j=0;j<=n;j++) { 
       if (i!=j) { 
       L=L*(x-xsten[j])/(xsten[i]-xsten[j]); 
       } //end of if statement 
      } //end of second for loop 
     y=y+fsten[i]*L; 
     }//end of first for loop 

Я делаю многочленную итерацию Лагранжа. Мы смотрим на второй цикл цикла после y = 0.0. В конце цикла for с j=0 мы имеем y = y+fsten[i]*L, где L, очевидно, не 1. Но когда оно идет до i=1, значит ли это, что L = 1.0 снова истинно?Производит ли переменная, инициализированная в цикле for, каждую итерацию?

+1

вы спрашиваете, выполняются ли все ваши утверждения каждый проход в цикле? Да, конечно. –

+0

_ «Выполняется ли переменная, инициализированная в цикле for, каждую итерацию?» ** ** YES! ** (если вы не вводите переменную 'static') –

+0

Вы могли бы определить это самостоятельно с помощью очень простого эксперимента. – Beta

ответ

1

Да, это правда, потому что вы снова запускаете тело цикла, а L = 1.0 устанавливает переменную L в 1.0.

Смежные вопросы