第十一周 项目七:太乐了(泰勒公式)
生活随笔
收集整理的這篇文章主要介紹了
第十一周 项目七:太乐了(泰勒公式)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
問題及代碼:
?
/* * Copyright (c) 2014, 煙臺大學計算機學院 * All rights reserved. * 文件名稱:Project4.cpp * 作 者:李楠 * 完成日期:2014年11月10日 * 版 本 號:v1.0 * * 問題描述:用sin泰勒展開式編寫程序,求出兩個值,精度要求達到小數點后6位,即當最后一項的絕對值小于0.00001時,累加結束,求絕對值的函數也可以自定義函數myabs實現。 * 輸入描述:略 * 程序輸出:略 */ #include <iostream> using namespace std; double mysin(double x); double myabs(double x); const double pi=3.1415926; int main( ) {cout<<"sin(π/2)的值為"<<mysin(pi/2)<<endl;cout<<"sin(56°)的值為"<<mysin((56.0/180)*pi)<<endl;return 0; } //下面定義mysin函數,求sin值 double mysin(double x){int n=1,factorial=1,p=1;//factorial是指階乘double sum=x,exponent=x,single=1;//exponent指的是x指數運算,single指的是每一單項的式子while(myabs(single)>1e-5){factorial=factorial*(n+1)*(n+2);n=n+2;exponent=exponent*x*x;p=-p;//改變項的符號single=exponent*p/factorial;sum=sum+single;}return sum;} //下面定義myabs函數,求絕對值 double myabs(double x) {return((x>=0)?x:-x); }運行結果:
?
知識點總結:
?開始的時候,用了while語句但是發現結果是錯誤的,后來改用do while 語句后結果又正確了,然后我就想到了兩者的區別,給single賦了值,因為用while語句的時候會先判斷條件,single沒賦值的時候是一個隨機數,不符合條件的話就會直接跳出循環,輸出sum也就是x的值為pi/2=1.5....
學習心得:
以前寫程序的時候遇到這種問題沒有深入研究,通過老師的幫助,以后遇到這種問題就不怕了~!
總結
以上是生活随笔為你收集整理的第十一周 项目七:太乐了(泰勒公式)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 提高英语 - 口语和思维
- 下一篇: 输电线路杆塔倾斜在线监测的应用