Re: [問題] C語言求三次多項式定積分

作者: LPH66 (-6.2598534e+18f)   2019-11-11 20:42:14
※ 引述《cra2y37037 (30奈米)》之銘言:
: 小弟剛開始學寫C,
: 最近解題遇到了一些困難QQ
: 有一題是要求三次多項式在區域x1-x2的定積分,
: 如下圖:
: https://i.imgur.com/YNFM6NJ.jpg
: 但不知道為什麼,
: 求出來的定積分總是會有錯,
: 例如輸入
: 三次方係數=0.01
: 二次方係數=0.3
: 一次方係數=1
: 二次方係數=-1
: 在x1=5,x2=0的區域求定積分,
: https://i.imgur.com/us0LJe8.jpg
: 定積分的值是cal2-cal1,
: 這樣算出來就又問題,
: 想請問是不是我紅底的那部分寫錯,
: 導致電腦運算的邏輯和實際上不同?
cal2 = 1/4*Cef3*pow(x2,4) + 1/3*Cef2*(x2,3) + 1/2*Cef1*pow(x2,2) + Cef0*x2;
綠色這裡你做的是整數除以整數,會得到整商而不是浮點數
所以你這裡除下去會變成 0;要得到浮點數值請寫浮點數相除
一個方法是加上 .0,寫成 1.0/4.0 之類的
C 語言在看到數字裡有個小數點就會把它視為浮點數
黃色這裡我這樣標了你應該看得出來錯在哪裡 XD
至於為什麼這樣還能算你暫時可以先不用管

Links booklink

Contact Us: admin [ a t ] ucptt.com