标题:求定积分y=1/(1+x^2 ) [0,1]用梯形法,结果不对求大神?????
只看楼主
嗜血老妖
Rank: 3Rank: 3
来 自:江西
等 级:论坛游侠
威 望:2
帖 子:102
专家分:163
注 册:2013-3-25
结帖率:60%
已结贴  问题点数:20 回复次数:10 
求定积分y=1/(1+x^2 ) [0,1]用梯形法,结果不对求大神?????
# include <stdio.h>
# define n 100000000
# define h 1/n
double f(double x)
{ double y;
  y=1/(1+x*x);
  return y;
}
void main()
{ int i;
  double f(double x);
  double s=0;
  for(i=1;i<n;i++)
  {
      s+=f(i*h);
  }
     s=(3/4+s)*h;
    printf("%lf\n",s);
}
搜索更多相关主题的帖子: 积分 include double return 
2013-03-28 19:11
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
得分:5 
#define h 1.0/n


[fly]存在即是合理[/fly]
2013-03-28 19:16
嗜血老妖
Rank: 3Rank: 3
来 自:江西
等 级:论坛游侠
威 望:2
帖 子:102
专家分:163
注 册:2013-3-25
得分:0 
这是为什么了???

仗剑走天涯,网络论英雄。
2013-03-28 19:23
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
得分:0 
define 也就是 直接替换的

f(i*h) = f(i*1/n) = f(i/n)

俩整数,结果就是 0


[fly]存在即是合理[/fly]
2013-03-28 19:30
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6809
专家分:42393
注 册:2010-12-16
得分:5 
# include <stdio.h>
# define n 100000000.0
# define h (1/n)
double f(double x)
{
    double y;
    y=1/(1+x*x);
    return y;
}

double area(double len1,double len2,double high)
{
    return (len1 + len2) * high / 2;
    // (上底+下底)*高/2
}




void main()
{
    int i;
    double f(double x);
    double s=0;
    double h1 = 0;
    double h2 = 0;
    for(i=0;i<n;i++)
    {
        h1 = f(i * h);
        h2 = f(i * h);

        s += area(h1, h2, h);
        // s+=f(i*h);
    }
    // s=(3/4+s)*h;
    printf("%lf\n",s);
}

答案是0.785~~?

[ 本帖最后由 yuccn 于 2013-3-28 19:31 编辑 ]

我行我乐
我的博客:
http://blog.yuccn. net
2013-03-28 19:30
shmilyflf
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:5
帖 子:356
专家分:1008
注 册:2012-12-9
得分:5 
定积分……还梯形法……[0,1]是上下限吗?好遥远啊……
2013-03-28 19:34
嗜血老妖
Rank: 3Rank: 3
来 自:江西
等 级:论坛游侠
威 望:2
帖 子:102
专家分:163
注 册:2013-3-25
得分:0 
回复 4楼 azzbcc
如果是h=0应该输出0.000000啊,为什么是1.000000

仗剑走天涯,网络论英雄。
2013-03-28 19:38
嗜血老妖
Rank: 3Rank: 3
来 自:江西
等 级:论坛游侠
威 望:2
帖 子:102
专家分:163
注 册:2013-3-25
得分:0 
回复 5楼 yuccn
嗯嗯,大侠

仗剑走天涯,网络论英雄。
2013-03-28 19:39
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
得分:0 
你的f函数 f(0) = 0?


[fly]存在即是合理[/fly]
2013-03-28 19:50
helloUJS
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:168
专家分:731
注 册:2013-3-27
得分:5 
# define h 1/n 应该是#include 1.0/n 因为整数除整数结果是整数
s=(3/4+s)*h; 应该是s=(3.0/4+s)*h; 原因与1/n相同
2013-03-28 19:52



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-402205-1-1.html




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

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