Scilab et intégrale par quadrature

Discutez d'informatique ici !
Lantha
Messages: 4
Enregistré le: 09 Fév 2012, 12:02

Scilab et intégrale par quadrature

par Lantha » 09 Fév 2012, 12:06

Bonjour, j'ai un petit soucis pour le calcul de l'intégral entre -1 et 1 de 4/(1+x²), qui devrait faire atan(1)-atan(-1) donc un peu plus de 6.

La formule de quadrature donné en énoncé est pi/(n+1) * SOMME[f(cos((2i+1)*pi / 2n+2))]
Voila mon code :

function y = f(x)
y = 4/(1+x^2)
endfunction

function k=tcheby(n)
k=0;
for i=0:n
k=k+(%pi/(n+1))*(f(cos((2*i+1)*%pi/(2*n+2))));
end
endfunction

Si vous pouviez m'aider ce serait super sympa.



Dlzlogic
Membre Transcendant
Messages: 5273
Enregistré le: 14 Avr 2009, 12:39

par Dlzlogic » 09 Fév 2012, 15:25

Bonjour,
n vaut combien ?

Lantha
Messages: 4
Enregistré le: 09 Fév 2012, 12:02

par Lantha » 09 Fév 2012, 17:41

n est un entier que l'utilisateur doit entrer. Logiquement plus il est grand plus la valeur obtenue est précise.

Dlzlogic
Membre Transcendant
Messages: 5273
Enregistré le: 14 Avr 2009, 12:39

par Dlzlogic » 09 Fév 2012, 17:51

Lantha a écrit:n est un entier que l'utilisateur doit entrer. Logiquement plus il est grand plus la valeur obtenue est précise.

Je n'ai pas vu de faute, mais j'avoue que je ne comprend pas la formule indiquée (j'ai d'ailleurs pas cherché).
Essayez de le calculer avec un petit n, par exemple n=4 ou n=10, en imprimant des valeurs intermédiaires. Je ne vois pas l'utilité de la fonction y=f(x), puisque cette fonction n'est pas utilisée.

Doraki
Habitué(e)
Messages: 5021
Enregistré le: 20 Aoû 2008, 11:07

par Doraki » 09 Fév 2012, 18:00

Lantha a écrit:La formule de quadrature donné en énoncé est pi/(n+1) * SOMME[f(cos((2i+1)*pi / 2n+2))]

!!!??
Donc tu fais une subdivision pas régulière (selon les cos((2i+1)pi/2n)) mais avec des poids réguliers ?
Ben ça fait que tu calcules à une constante près l'intégrale de 0 à pi de f(cos(x))dx au lieu de l'intégrale de -1 à 1 de f(x)dx. Donc c'est sûr que tu vas pas avoir le bon résultat...

Lantha
Messages: 4
Enregistré le: 09 Fév 2012, 12:02

par Lantha » 09 Fév 2012, 18:15

C'est la formule que nous a donné le prof, et comme je n'ai pas assez de connaissance en analyse numérique je sais pas si elle est vrai ou fausse :/

De plus f(x) est utilisé juste avant le cos dans la somme.

Dlzlogic
Membre Transcendant
Messages: 5273
Enregistré le: 14 Avr 2009, 12:39

par Dlzlogic » 09 Fév 2012, 18:29

Lantha a écrit:C'est la formule que nous a donné le prof, et comme je n'ai pas assez de connaissance en analyse numérique je sais pas si elle est vrai ou fausse :/

De plus f(x) est utilisé juste avant le cos dans la somme.

Oui, j'avais pas repéré le f(...)
Si j'avais à calculer cette intégrale, je ne me casserais pas la tête.
D'abord, c'est une fonction paire, donc on calcule entre 0 et 1 et on double.
Les lignes trigo coûtent cher en informatique, donc je calculerais de petits éléments de surface de largeur "pas" et de hauteur y=f(xi) pour xi de 0 à 1 avec un pas de "pas".

Lantha
Messages: 4
Enregistré le: 09 Fév 2012, 12:02

par Lantha » 09 Fév 2012, 18:37

J'ai déjà la valeur exacte de l'intégrale, qui est évidente, et je l'avais calculé avec la méthode des rectangles (classique):
function I=rectangle(a,b,n)
I=0;
for k=0:n-1
x=a+(k/n)*(b-a);
I=I+((b-a)/n)*f(x);
end
endfunction

La ça fonctionne très bien, mais avec la méthode du prof (la formule que j'ai donné au début) impossible d'obtenir le résultat.

 

Retourner vers ϟ Informatique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 7 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite