第11周项目七 太乐(泰勒)了
生活随笔
收集整理的這篇文章主要介紹了
第11周项目七 太乐(泰勒)了
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
問題描述:
??(1)先聽故事,再編程序。
故事是這樣的:話說 sin 和 cos 是一對夫婦。一天,sin 去聽相聲了,cos 在家。過了一會,有人
敲門,cos 開門一看,是一個不認識的多項式函數。cos 問:你是誰啊?他說:我是你的老公 sin 啊。
cos 說:你不是去聽相聲了嗎?怎么成這幅摸樣了?sin 說:是啊,太樂了!
? 故事講完了。下面是 sin 函數的泰勒展式:
用 sin 泰勒展式編寫程序,求出 sin(π/2)和 sin(56°)的值,精度要求達到小數點后 6 位(即當
最后一項的絕對值小于 0.00001 時,累加結束,求絕對值的函數也可以自定義函數 myabs 實現)。
代碼:
/**copyright (c) 2014,煙臺大學計算機學院*all rights reserved.*文 件 名 :"太樂"了.cpp*作 者 :張 鵬*完成日期 :2014年11月08號*版 本 號 :v1.6**問題描述 :求出 sin(π/2)和 sin(56°)的值,精度要求達到小數點后 6 位。*輸入描述 :無。*程序輸出 :sin(π/2)和 sin(56°)的值。*/ #include <iostream> //預處理指令。 #include <cmath> //要使用數學符號。 using namespace std; //使用C++的命名空間 std。 const double pi=3.1415926; //聲明一個只讀變量pi代表π的近似值。 double mysin(double ); //聲明自定義函數,用于求sin值(利用泰勒公式)。 double myabs(double ); //聲明自定義函數,用于求絕對值。 long fac(int ); //聲明自定義函數,用于求n!。 int main () //函數首部。 {cout<<"sin(π/2)的值為";cout<<mysin(pi/2)<<endl;cout<<"sin(56o)的值為";cout<<mysin((56*pi)/180); //輸出結果并在輸出時調用mysin函數求sin近似值。return 0; } double mysin(double m) //自定義函數mysin部分。 {int n,s=1; //聲明2個變量為整型。n用于循環,s用于泰勒公式中每一項的變號。double c=1,sum=0; //聲明2個變量為實型。c代表泰勒公式中的第n項,sum用來求sin值。for (n=1; myabs(c)>0.00001; n+=2) //保證精確值為0.000001。并在for語句中語句二調用myabs函數。{c=(s*pow(m,n))/fac(n); //求每一項的值,并調用函數fac。sum+=c;s=-s;}return sum; //返回sum值即sin的近似值。 } long fac (int i) //自定義函數fac部分。 {int sum=1;if (i==0||i==1);else while (i!=1){sum*=i;i--;}return sum; //求得n!并返回其值。 } double myabs(double c) //自定義函數myabs部分,求出絕對值。 {if (c<0)c=-c;return c; }
運行結果:ps(在電腦上打出的漢字變成亂碼了,于是在手機上跑了下)
學習心得:
? 自定義函數真心贊,讓程序變得更加調理。大大提高了程序的可讀性。
總結
以上是生活随笔為你收集整理的第11周项目七 太乐(泰勒)了的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【优化模型】单服务台负指数分布排队系统分
- 下一篇: 数控系统设计