生活随笔
收集整理的這篇文章主要介紹了
学习笔记——利用CC++语言计算二重积分
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
二重積分定義如下(來源百度百科)
以z=xy在區域0<=y<=1,0<=x<=y內的二重積分為例,經計算理論值為:0.125,下面用C語言實現二重積分的離散計算
#include <iostream>
using namespace std;
double fun_dbjf(
double step,
double low_y,
double high_y,
double(*p_y_1)(
double),
double(*p_y_2)(
double),
double(*p_f_x_y)(
double,
double));
double fun_jf_fxy(
double step,
double low_x,
double high_x,
double y,
double(*p_x)(
double,
double));
double fun_fxy(
double x,
double y);
double fun_y_l(
double x);
double fun_y_h(
double x);
int main(
int argc,
char*argv[])
{cout <<
"二次積分值為:" << fun_dbjf(
0.00001,
0,
1, fun_y_l, fun_y_h, fun_fxy) << endl;cout <<
"理論值為:" <<
1.0 /
8.0;}
double fun_dbjf(
double step,
double low_y,
double high_y,
double(*p_y_l)(
double),
double(*p_y_h)(
double),
double(*p_f_x_y)(
double,
double))
{
double sum =
0;
for (
double t = low_y; t < high_y; t += step){
sum += fun_jf_fxy(step, (*p_y_l)(t), (*p_y_h)(t), t, p_f_x_y)*step;}
return sum;
}
double fun_jf_fxy(
double step,
double low_x,
double high_x,
double y,
double(*p_x)(
double,
double))
{
double sum =
0;
for (
double t = low_x; t < high_x; t += step){
sum += (*p_x)(t, y)*step;}
return sum;
}
double fun_fxy(
double x,
double y)
{
return x*y;
}
double fun_y_l(
double x)
{
return 0;
}
double fun_y_h(
double x)
{
return x;
}
運行結果:
運行時間較長,但結果與理論值十分接近
總結
以上是生活随笔為你收集整理的学习笔记——利用CC++语言计算二重积分的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。