如何用C语言求二重定积分?
来源:学生作业帮助网 编辑:作业帮 时间:2024/05/10 06:25:33
如何用C语言求二重定积分?
如何用C语言求二重定积分?
如何用C语言求二重定积分?
按二重积分的定义做.
我的这个出错,一起讨论下吧:
#include<stdio.h>
#include<math.h>
#define N 100
void main(){
\x09double result,(*p)(double,double);
\x09double f(double,double);
\x09double integral(double,double,double,double,double(*p)());
\x09p=f;
//\x09printf("请输入a b c d 的值:\n");
//\x09scanf("%lf %lf %lf %lf",&a,&b,&c,&d);
\x09result=integral(2.0,8.0,0,6.0,p);
\x09printf("该二重积分的值为:\n");
\x09printf("%f",result);
\x09printf("\n");
}
//求二重积分的函数
double integral(double a,double b,double c,double d,double (*p)(double,double)){
\x09int i,j;
\x09double x,y,h1,h2,volum=0;
h1=(b-a)/N;
\x09h2=(d-c)/N;
\x09x=a;
\x09y=c;
\x09for(i=0;i<N;i++){
\x09\x09for(j=0;j<N;j++){
\x09\x09\x09volum+=(*p)(x,y)*h1*h2;
\x09\x09\x09y+=h2;
\x09\x09}
\x09\x09x+=h1;
\x09}
\x09return(volum);
}
double f(double x,double y){
\x09double h;
\x09h=sqrt((2+x*x)*sin(x*y)*sin(x*y))+x*x*y*cos(x)-30*x*y*y;
\x09return (h);
}
运行结果: