[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Help-gsl] QAG Integration with variable parameters
From: |
Anders Misfeldt |
Subject: |
[Help-gsl] QAG Integration with variable parameters |
Date: |
Tue, 14 Sep 2004 13:22:20 +0200 |
User-agent: |
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.2) Gecko/20040803 |
Hi,
I'm using gsl_integration_qags to calculate some integrals, but I've
encountered a problem I can't seem to find out.
I want to calculate the following integral
Int (from 0 to 100) x^3/(exp(x-eps) + 1) dx
I'm trying to make multiple calculations for different values of a, but
how can I call gsl_integration_qags with a different a? As until now
I've just made the variable a in my function, but I'm making a for
statement, so that I get multiple results out. And I'm kinda stuck.
Can someone help me out here?
My code is:
#include <stdio.h>
#include <math.h>
#include <gsl/gsl_integration.h>
#define real double
real calls = 0;
real f (real x, void * params) {
real alpha = *(real *) params;
calls+=1;
return x*x*x/(exp(x-eps)+1);
}
int main(void) {
gsl_integration_workspace * w
= gsl_integration_workspace_alloc(100000);
real res,a,b,acc,error,expected,alpha;
int key,i;
size_t limit;
acc=0.00001;
expected=0.339047; //disregard this
alpha=1.0;
limit=100000;
key=1;
calls=0;
gsl_function F;
F.function=&f;
F.params=α
a=0;
b=100;
for (i=0;i<=20;i++) {
eps=i;
gsl_integration_qags(&F,a,b,acc,acc,limit,w,&res,&error);
printf("%g \n", res);
}
return 0;
}
- [Help-gsl] QAG Integration with variable parameters,
Anders Misfeldt <=