一.
寫乙個用矩形法求定積分的函式,求
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...