黎曼和方程

时间:2017-03-29 03:01:48

标签: c sum

我有一个方程式可以找到黎曼和的中点值,但是在输入系数3, 4, 0以及-1和{的上限和下限时,它没有为中点提供正确的值。 {1}}有10个矩形。

1

我不确定为什么我没有为sumMidPoint获取正确的值。测试用例的sumMidPoint = 1.980000平方单位

1 个答案:

答案 0 :(得分:-1)

两个问题:

  1. final,initial和rectangle都是整数,因此你要进行整数除法:
  2. (final - initial)/ rectangle = 2/20 = 0.1 in float但0 in int

    要更正,请将其中至少一个设置为float,但两者都更好:

    float final, float initial
    
    1. 您的第二个错误在公式中:3x ^ 2是3 * pow(x,2)。你写了(3x)^ 2.

    2. 另外,为了安全起见,请不要忘记在使用之前初始化sumMidPoint变量:

      float sumMidPoint = 0;

    3. 这是我的最终版本代码:

      #include <stdio.h>
      #include <math.h>
      
      float getMidPoint(float final, int initial, int rectangle, int   coefficient1, int coefficient2, int coefficient3) {
          float deltaX = (final - initial) / rectangle;
          float sumMidPoint = 0;
          float f_X;
          float x = initial + deltaX / 2;
      
          for(int i=0; i< rectangle; i++)
          {
              f_X = (coefficient1 * pow( x, 2)) + (coefficient2 * x) + coefficient3;
      
              sumMidPoint += f_X * deltaX;
              x = x + deltaX;
          }
          return(sumMidPoint);
      
      }
      
      int main() {
          printf("Result: %f\n", getMidPoint(1, -1, 10, 3, 4, 0));
          return(0);
      }
      

      输出: 结果:1​​.980000