錯誤的答案我已經寫了一些代碼來整合功能5X^4 + 4X^3 + 3X^2 + 2X + 1集成使用梯形規則用C給予某些價值
#include<stdio.h>
#include<math.h>
float func(float x){
float a;
a = 5*pow(x,4) + 4*pow(x,3) + 3*pow(x,2) + 2*x +1;
return a;
}
int main(){
float numberOfXValues;
float a = 0; //lower limit
float b = 1; //upper limit
float numberOfStrips;
float stripSize;
float finalAnswer;
float sumFirstAndLast; //summation of first and last x value
while(1){
printf("Input number of X values:");
scanf("%f", &numberOfXValues);
numberOfStrips = numberOfXValues - 1;
stripSize = (b - a)/(numberOfStrips);
sumFirstAndLast = 0.5*func(a) + 0.5*func(b);
for (float z = stripSize; z < b; z += stripSize){
sumFirstAndLast += func(z);
}
finalAnswer = sumFirstAndLast * stripSize;
printf("%f\n", finalAnswer);
}
return 0;
}
而且它適用於大多數值,但13和20的輸出結果是錯誤的答案。我已經瀏覽過幾次,但無法看到可能導致此問題的原因。
Input number of X values:10 5.039070 Input number of X values:11 5.031651 Input number of X values:12 5.026160 Input number of X values:13 6.271982 Input number of X values:14 5.018732 Input number of X values:15 5.016153 Input number of X values:16 5.014071 Input number of X values:17 5. Input number of X values:18 5.010955 Input number of X values:19 5.009773 Input number of X values:20 5.798243 Input number of X values:21 5.007917
預期值是多少? – Jon 2015-02-24 18:32:03
什麼是正確的價值觀,爲什麼你認爲他們是正確的? – 2015-02-24 18:32:12
它應該只傾向於5.除了我發佈的兩個數字之外,還有許多數字不適用於,例如。 24,28,29和32. – JaAnTr 2015-02-24 18:34:10