生活随笔
收集整理的這篇文章主要介紹了
学习笔记——利用CC++语言计算二重积分
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
二重積分定義如下(來(lái)源百度百科)
以z=xy在區(qū)域0<=y<=1,0<=x<=y內(nèi)的二重積分為例,經(jīng)計(jì)算理論值為:0.125,下面用C語(yǔ)言實(shí)現(xiàn)二重積分的離散計(jì)算
#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;
}
運(yùn)行結(jié)果:
運(yùn)行時(shí)間較長(zhǎng),但結(jié)果與理論值十分接近
總結(jié)
以上是生活随笔為你收集整理的学习笔记——利用CC++语言计算二重积分的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。