本文實例為大家分享了C語言程序實現黎曼和求定積分,供大家參考,具體內容如下
通過黎曼和解定積分既是把在xy平面中函數曲線與x軸區間區域劃分成多個矩形并求它們的面積之和,矩形數量越多,得出的面積越精確。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
#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; } |
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。
原文鏈接:https://blog.csdn.net/liu_if_else/article/details/48835409