zoukankan      html  css  js  c++  java
  • 高斯-勒让德公式 求积分

     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
    ",    (0.5555556*f( -0.7745967)+0.8888889*f( 0 )+0.5555556*f( 0.7745967) ));
    27 
    28     //运用五点高斯公式求积分值 
    29     printf("%2.8f
    ",  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("
    ");
    32     
    33     //将区间4等分,分别利用二点高斯公式,然后累加得积分值 
    34         printf("%2.8f
    ",f1( -1.0/sqrt(3.0))+f1(1.0/sqrt(3.0))  );
    35         printf("%2.8f
    ",f2( -1.0/sqrt(3.0))+f2(1.0/sqrt(3.0))  );    
    36         printf("%2.8f
    ",f3( -1.0/sqrt(3.0))+f3(1.0/sqrt(3.0))  );
    37         printf("%2.8f
    ",f4( -1.0/sqrt(3.0))+f4(1.0/sqrt(3.0))  );
    38             
    39         printf("sum=%2.8f
    ",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 }
  • 相关阅读:
    一款前端文件上传工具
    聊一聊最近找工作的感受
    神秘的计算机网络----(1)
    月下无限连?拒绝无休止switch!
    计算机网络---序
    验证码识别
    两数之和
    Sanic框架基础之解决CORS跨域
    Sanic框架进阶之实现异步缓存组件
    asyncio异步模块的21个协程编写实例
  • 原文地址:https://www.cnblogs.com/liugl7/p/4963500.html
Copyright © 2011-2022 走看看