гауссовский интеграл - PullRequest
       36

гауссовский интеграл

0 голосов
/ 27 января 2012

Чтобы вычислить интеграл с формулой Гаусса и значением Error, я написал эту программу в matlab:

%calculate integral with Gauss 3-point 
clc 
syms x ;
f=input('f(x)  : ');
a=input('a = : ');
b=input('b = : ');
x=.5*((b-a)*(-1*(3/5)^0.5)+(a+b));
w0f0=(5/9)*eval(f);
x=.5*((b-a)*0+(a+b));
w1f1=(8/9)*eval(f);
x=.5*((b-a)*((.6)^.5)+(a+b));
w2f2=(5/9)*eval(f);
antegral=w0f0+w1f1+w2f2;
antegral=0.5*(b-a)*antegral;
disp(antegral)

%cal Error value  = maximum of f^(6)/1570
syms x
m6=diff(f,6);
m6
m6=-1*m6;
[x,fval]=fminbnd(fun,x0,xn);
En=fval/15750;
disp (En);

этот код получает F (x) из командной строки и вычисляет интеграл.

У меня есть 2 проблемы:

  1. Если вы введете f (x) = sin(x), a = 0, b = pi в командной строке для вычисления, может выглядеть как 2.97708877614822e-009.Я хочу быть просто числовым форматом

  2. вычисление E(n) для некоторых f(x), таких как (1+x)^3, что a = 0, b = 2 имеют ошибку, которую необходимо вычислить0 но рассчитать 2.97708877614822e-009

1 Ответ

1 голос
/ 27 января 2012

Вы должны узнать о компьютерной точности.

Например, вы можете проверить, что:

http://sebsauvage.net/python/snyppets/#binary_repr

...