返回狼盟编程首页
编程搜索 [狼盟旧档]
论坛统计


请输入搜索关键字:
├─◆ 狼盟首页 > 查看贴子 > 详细信息

楼主

那位高手快帮帮我啊!用c语言和自适应辛甫生解:


那位高手快帮帮我啊用c语言和自适应辛甫生解:题1:自然对数范围在1到10的积分题2:1/(1+x*x)在-4到4的积分





sarrow [ 1 楼 ]
2006-05-31 22:19:00
照书写!这可是最简单的事了!--你手里应该有一本算法的书吧! 

Anglee [ 2 楼 ]
2006-06-01 10:37:00
书我的确是有,可我对数值计算不熟,也写不出来,楼上的仁兄能不能抽出一点时间帮我搞定,我们平时用到的一大多是字符类的,马上就要交了,我也没时间去看书了 

sarrow [ 3 楼 ]
2006-06-01 10:45:00
积分法多着了!辛甫生 法我早就忘了!--当时我也是照书编的! 

Anglee [ 4 楼 ]
2006-06-01 10:53:00
能够给出一个例子不?我是真的写不出,今年一直学Delphi去了,好久没有碰过c语言了,老师又要我们用这个做,我也没办法了.... 

sarrow [ 5 楼 ]
2006-06-01 11:01:00
ParabolaRombergTrapezoid我保留了这三种积分方法,不知道那一个是 辛甫生 法? 

Anglee [ 6 楼 ]
2006-06-01 11:09:00
好像是第一种吧! 

sarrow [ 7 楼 ]
2006-06-01 11:46:00
/*题1:自然对数范围在1到10的积分题2:1/(1+x*x)在-4到4的积分*/#include <math.h>#include <stdio.h>#include <assert.h>double INT_xps(double left, double right, double exp, double(*f)(double)) {    assert(right >= left);    double    h = (right-left) / 2;    //    当前步长    double    T0 = h*(f(left) + f(right)),            T = T0 + 1 / exp;    //    就是让abs(T-T0) / T0 >= exp成立    int n = 1;    while (abs(T-T0) / T0 >= exp) {        T0 = T;        T = T0 / 2;        for (int i = 1; i <= n; i++) {            T += h * f(left + (2*i-1) * h );        }        n = 2 * n;        h = h / 2;    }    return T;}double fun(double x) {    return 1.0 / (1 + x * x);}int main() {    printf("%f ", INT_xps(1.0, 10.0, 0.001, log));    printf("%f ", INT_xps(-4.0, 4.0, 0.001, fun));}随便写了一个,楼主你自己看着办吧! 

Anglee [ 8 楼 ]
2006-06-01 11:52:00
谢谢你了,我回去调试一下。