C语言实现黎曼和求定积分

本文实例为大家分享了C语言程序实现黎曼和求定积分,供大家参考,具体内容如下

通过黎曼和解定积分既是把在xy平面中函数曲线与x轴区间区域划分成多个矩形并求它们的面积之和,矩形数量越多,得出的面积越精确。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>

int main(){
 float function1(float);               //函数f(x)1
 float function2(float);               //函数f(x)2
 float function3(float);               //函数f(x)3
 void integration(float f(float),float,float);   //求定积分方法,参数为,函数fx,区间[a,b]的两个点  

 int result_a=integration(function1,1,0);
 int result_b=integration(function2,1,-1);
 int result_c=integration(function3,2,0);
}

void integration(float f(float),float endPos,float startPos)  //求定积分方法,参数为,函数fx,区间[a,b]的两个点
{
 float x;
 float totalArea=0;  //totalArea,所有矩形的总面积
 float n=1000;    //将函数曲线下方划为n个矩形,n值越大,精确值越高
 float width;     //单个矩形宽度
 float area=0;    //单个矩形面积
 width=(endPos-startPos)/n;    //求单个矩形宽度,既是函数总长度除以矩形数量
 for(float i=1;i<=n;i++)     //计算每个矩形的面积
 {
  x=startPos+width*i;   //转入到xy平面, 通过i的递增,得出每个矩形底部x的值,以求矩形高度
  area=f(x)*width;     //用x做实参调用函数进一步求出y值,既矩形的高度,再用底乘高得出面积
  totalArea=totalArea+area;     //各个矩形面积相加
 }
 printf("the value of function is %f",t2);
}

float function1(float x){  //函数f(x)1
 float y;
 y=sin(x);
 return y;
}

float function2(float x){  //函数f(x)2
 float y;
 y=cos(x);
 return y;
}
float function3(float x){  //函数f(x)3
 float y;
 y=exp(x);
 return y;
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • C语言求解定积分的方法

    本文实例为大家分享了C语言求解定积分的具体方法,供大家参考,具体内容如下 题目要求: 求下面函数的定积分: 思路: 求一个函数的定积分,其实就是求它的面积,如对函数 求积分. 也就是要求出绿色部分的面积,如下: 我们可以通过矩形的方法来无限逼近定积分的求解,如下: 因为被分成n等分,就可以认为每一等分是一个矩形,那么每一矩形的面积为: 每一个矩形面积为:***Sn=f(x)(b-a)/n 总面积为:****S=S1+S2+-+Sn 通过这样的一个思路就可以完成,定积分的求解. 这样这三个定积分的

  • C语言使用矩形法求定积分的通用函数

    本文为大家分享了C语言使用矩形法求定积分的通用函数,供大家参考,具体内容如下 要求: 写一个用矩形法求定积分的通用函数,分别求:sin(x),cos(x),e^x . 分析: 矩形法,学过高等数学就知道化曲为直的思想.将定积分化为多个函数连续的和.基本思想是将区间[a,b]化成n等分,当n越大的时候结果越准确.图形化成一小块一小块的矩形.底边长都为(b-a)/n.高为每个等分点的函数值.然后将每个矩形的面积相加即为所求. 如: y=x; 可以通过矩形的方法来无限逼近定积分的求解,如下: 因为被分

  • C语言:利用指针编写程序,用梯形法计算给定的定积分实例

    题目要求 利用指针编写程序,用梯形法计算下列公式中的定积分: 参考代码 首先说明一下指针的用处:因为所传递的参数均为数字,并不需要使用指针提高效率,故这里使用指针指向函数. 请注意calc()函数中的这一语句: double(*pfunction)() = &function; 即实现了我所描述的过程. 代码如下: #include <stdio.h> #include <math.h> double function(double x){ return (double)(

  • C语言实现求定积分的方法

    本文实例讲述了C语言实现求定积分的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: #include <cmath>  #include <cstdio> #define ACC 1000 float solve(float (*p)(float),float up,float down,int acc); float fun_exp(float x); float fun_qua(float x); void main(){ char selection; f

  • C语言实现黎曼和求定积分

    本文实例为大家分享了C语言程序实现黎曼和求定积分,供大家参考,具体内容如下 通过黎曼和解定积分既是把在xy平面中函数曲线与x轴区间区域划分成多个矩形并求它们的面积之和,矩形数量越多,得出的面积越精确. #include <stdio.h> #include <string.h> #include <stdlib.h> #include <math.h> int main(){ float function1(float); //函数f(x)1 float f

  • 如何用矩形法(梯形法)求定积分

    分析:高中的时候,我们学习过,可以通过矩形法或者矩形法来求定积分. 思路就是将积分区间划分成n等份,然后将这n等份近似看成矩形(或梯形),然后对所有的矩形(或梯形)的面积进行求和. 简单的例子:求函数X^2在的定积分 矩形法: 复制代码 代码如下: #include<iostream>#include<math.h>using namespace std;int main(){ float fun(float x); float a,b; cout<<"请输入

  • C语言简单实现求n阶勒让德多项式的方法

    本文实例讲述了C语言简单实现求n阶勒让德多项式的方法.分享给大家供大家参考,具体如下: #include <stdio.h> float p(float x,int n) { float p_n; if(0==n) {p_n=1;} else if(1==n) { p_n=x; } else { p_n=((2*n-1)*x-p(x,n-1)-(n-1)*p(x,n-2))/n; } return p_n; } main() { int n; printf("input n :&qu

  • python、Matlab求定积分的实现

    python求定积分 计算 from sympy import * x = symbols('x') print(integrate(sin(2*x)/(1+x**2), (x, 0, 3))) sympy库中integrate函数 integrate(f, (x, lower_bound, upper_bound)) # f-函数,x-变量,lower_bound-下限,upper_bound-上限 但是发现求不出来,如果是sin(2*x)就可以,为什么? matlab求定积分 syms x

  • python 求定积分和不定积分示例

    求f(x) = sin(x)/x 的不定积分和负无穷到正无穷的定积分 sin(x)/x 的不定积分是信号函数sig ,负无穷到正无穷的定积分为pi import math import numpy as np import matplotlib.pyplot as plt from sympy import * #用于求导积分等科学计算 def draw_plot_set():#设置画图格式 ax = plt.gca() #改变坐标轴位置 ax.spines['right'].set_color

  • 详解C语言读取文件求某一列的平均值

    目录 第一部分:比较读取文件的效率 第二部分:比较求取列平均值的效率 第一部分:比较读取文件的效率 在之前的文章<生信(五)awk求取某一列的平均值>中,笔者曾经给出过C语言求取某列平均值的代码,但是最近回顾时发现,这段代码至少有几点不足: 1. 利用 fgetc 函数来读取文件,现在看来效率不高. 2. 如果文件最后没有一个空白行的话,会陷入无限循环.也就是对 EOF 的处理不完善. 大家都知道,C语言读取文件的常用函数有 fgetc.fgets.fread 以及 fscanf 等.笔者曾经

  • R语言—自定义函数求置信区间的操作

    看代码吧~ #求单正态均值mu的置信区间 #参数依次为置信水平alpha,正态样本x,已知总体方差(默认为未知) mu <- function(alpha,x,sigma=NA){ n <- length(x) meanx <- mean(x) if(is.na(sigma)){ t1 <- qt(1-alpha/2,n-1) t2 <- qt(1-alpha,n-1) mu11 <- meanx - t1*sqrt(sum((x-meanx)^2)/(n-1))/sq

  • C语言程序如何求学生总成绩和平均成绩

    目录 C语言求学生总成绩和平均成绩 求学生总成绩和平均成绩 程序实例 拓展应用 C语言练习,求和,平均数,取余 C语言求学生总成绩和平均成绩 输入三个学生的成绩,求的三个学生的总成绩和平均成绩. 求学生总成绩和平均成绩 典型的顺序程序严格按照输入数据.处理数据.输出数据的模式进行程序设计方案. 本问题要解决的是输入三个数字,然后求出三个数的和与平均值. 平均值可能含有小数,在变量设置时平均值可以定义为实型变量. 程序实例 1.程序代码 #include <stdio.h> void main(

随机推荐