C語言求定積分

2021-06-20 16:44:22 字數 2017 閱讀 2708

一.

寫乙個用矩形法求定積分的函式,求

sin(x)

在(0,1

)上的定積分。

#include 

#include 

float jifen(float a,float b)

{int i,l;

float n=0.001,s=0; //n表示劃分的單位寬度,

n越小結果越精確,

n是矩形的寬

l=(b-a)/n;  // l表示有多少個單位寬度

for(i=0;is=n*sin(a+n*i)+s;  // sin

(a+n*i)

是矩形的長

printf("用矩形法求得該函式在

(%2.0f,%2.0f)

上的積分為%f。

\n",a,b,s);

main()

jifen(0,1);

二.寫乙個用梯形法求定積分的函式,求

sin(x)

在(0,1

)上的定積分。

#include 

#include 

float jifen(float a,float b)

{int i,l;

float n=0.001,s=0;

l=(b-a)/n;

for(i=0;is=(sin(a+n*i)+sin(a+n*(i+1)))*n/2+s;  // (sin

(a+n*i)

是梯形的上底,sin

(a+n*(i+1))

是下底

printf("用梯形法求得該函式在

(%2.0f,%2.0f)

上的積分為%f。

\n",a,b,s);

main()

jifen(0,1);

三.(綜合)寫乙個用矩形法和梯形法求定積分的通用函式,分別求

sin(x)

在(0,1

)上、cos(x)

在(-1,1)

上、exp

在(0,2

)上的定積分。

說明:jifen的函式定義中,

double (*fun)(double)

表示fun

是指向函式的指標,被指的函式是乙個實型函式,有乙個實型形參,

fun是指向函式的指標變數。用

jifen(0,1,sin)

語句呼叫jifen

函式時,給

jifen

函式傳遞了

sin函式的入口位址,這時

jifen

函式中的fun

函式就相當於是

sin函式了,

(*fun)(a+n*i)

相當於sin

(a+n*i)

。這樣jifen

函式就是乙個通用求定積分的函式了。

#include 

#include 

jifen(float a,float b,double (*fun)(double))

{int i,l;

float n=0.001,s=0,s1=0;

l=(b-a)/n;

for(i=0;i{s=n*(*fun)(a+n*i)+s;

s1=((*fun)(a+n*i)+(*fun)(a+n*(i+1)))*n/2+s1;

printf("用矩形法求得該函式在

(%2.0f,% 2.0f)

上的積分為%f。

\n",a,b,s);

printf("用梯形法求得該函式在

(%2.0f,% 2.0f)

上的積分為%f。

\n\n",a,b,s1);

main()

{printf("1.sin函式:

\n");

jifen(0,1,sin);

printf("2.cos函式:

\n");

jifen(-1,1,cos);

printf("3.exp函式:

\n");

jifen(0,2,exp);

C語言求定積分

這裡以函式f sinx為例子,首先思路 求定積分用的是元素法,把面積分為乙個個的小矩形,分的越密集,則結果越正確。那現在就用這種方法,利用c語言求定積分。下面附上 include include include include include using namespace std int main...

python Matlab求定積分

計算 sympy庫中integrate函式 integrate f,x,lower bound,upper bound f 函式,x 變數,lower bound 下限,upper bound 上限 但是發現求不出來,如果是sin 2 x 就可以,為什麼?syms x f sin 2 x 1 x 2...

Problem E C語言習題 矩形法求定積分

time limit 1 sec memory limit 128 mb submit 410 solved 260 submit status web board 寫乙個用矩形法求定積分的通用函式,分別求 說明 sin,cos,exp已在系統的數學函式庫中,程式開頭要用 include 輸入求si...