| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1054 人关注过本帖
标题:利用变步长梯形求积法或其他方法计算定积分
只看楼主 加入收藏
郭阳yang
Rank: 1
等 级:新手上路
帖 子:24
专家分:9
注 册:2020-10-24
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:2 
利用变步长梯形求积法或其他方法计算定积分
写一个函数,利用变步长梯形求积法或其他方法计算定积分
图片附件: 游客没有浏览图片的权限,请 登录注册

程序代码:
#include<stdio.h>
#include<math.h>
#define left 5
#define right 7
#define precision 0.0001 //定义精度 
#define e 2.7182
double f(double x)
{
double p=e, q=5*x;
double z=pow(p,q);
    double m=z*(x*x*x*x)-(3*x);
    return m;
}
int main()
{
    int i;
    int step=100;  //初始化步数
    double steplength=(right-left)/step; //步长
    double T=f(left)+f(right);//积分的值 
    for(i=1;i<=step-1;i++)
    {
        double x=left+i*steplength;
        T+=2*f(x);
     } 
     T=steplength/2*T;
    printf("初始化步长得到的积分值为:%lf 所分的区间个数:%d\n",T,step);


 } 

结果怎么是000000?
搜索更多相关主题的帖子: 求积 define 方法 积分 double 
2020-11-29 11:28
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9024
专家分:54030
注 册:2011-1-18
收藏
得分:20 
程序代码:
#include <stdio.h>
#include <math.h>

double f( double x )
{
    return exp(5*x)*x*x*x*x - 3*x;
}

int main( void )
{
    const int left = 5;
    const int right = 7;
    const unsigned step = 100;

    const double steplength = (right-left)*1.0/step;
    double t = f(left) + f(right);
    for( unsigned i=1; i<step; ++i )
        t += 2*f( left+i*steplength );
    t *= steplength/2;
    printf( "积分值为:%e, 所分的区间个数:%u\n", t, step );

 } 
2020-11-29 18:17
郭阳yang
Rank: 1
等 级:新手上路
帖 子:24
专家分:9
注 册:2020-10-24
收藏
得分:0 
回复 2楼 rjsp
我那个程序哪里出现错误了?
2020-11-29 21:44
快速回复:利用变步长梯形求积法或其他方法计算定积分
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023170 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved