高斯-勒让德公式 求积分
生活随笔
收集整理的這篇文章主要介紹了
高斯-勒让德公式 求积分
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1 #include <iostream>
2 #include <cmath>
3 using namespace std;
4 //計算f(x)=1/x 在[1,3]上的積分
5
6 double f(double x){
7 return 1.0/(x+2);
8 }
9
10 double f1(double x){
11 return 1.0/(x+5);
12 }
13 double f2(double x){
14 return 1.0/(x+7);
15 }
16
17 double f3(double x){
18 return 1.0/(x+9);
19 }
20 double f4(double x){
21 return 1.0/(x+11);
22 }
23
24 int main(){
25 //運用三點高斯公式積分值
26 printf("%2.8f\n", (0.5555556*f( -0.7745967)+0.8888889*f( 0 )+0.5555556*f( 0.7745967) ));
27
28 //運用五點高斯公式求積分值
29 printf("%2.8f\n", 0.2369269*f(-0.9061799)+ 0.2369269*f(0.9061799)+0.4786287*f(-0.5384693)+0.4786287*f(0.5384693) +
30 0.5688889*f(0) );
31 printf("\n");
32
33 //將區間4等分,分別利用二點高斯公式,然后累加得積分值
34 printf("%2.8f\n",f1( -1.0/sqrt(3.0))+f1(1.0/sqrt(3.0)) );
35 printf("%2.8f\n",f2( -1.0/sqrt(3.0))+f2(1.0/sqrt(3.0)) );
36 printf("%2.8f\n",f3( -1.0/sqrt(3.0))+f3(1.0/sqrt(3.0)) );
37 printf("%2.8f\n",f4( -1.0/sqrt(3.0))+f4(1.0/sqrt(3.0)) );
38
39 printf("sum=%2.8f\n",f1( -1.0/sqrt(3.0))+f1(1.0/sqrt(3.0)) +f2( -1.0/sqrt(3.0))+f2(1.0/sqrt(3.0)) +f3( -1.0/sqrt(3.0))+f3(1.0/sqrt(3.0)) +f4( -1.0/sqrt(3.0))+f4(1.0/sqrt(3.0)) );
40
41 }
?
轉載于:https://www.cnblogs.com/liugl7/p/4963500.html
總結
以上是生活随笔為你收集整理的高斯-勒让德公式 求积分的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iOS将产品进行多语言发布,开发
- 下一篇: 阿里云+wordpress搭建个人博客网