matlab高斯积分

问题描述 投票:0回答:1

为了用高斯公式和误差值计算积分,我在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) 并计算积分。

我有两个问题:

  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

matlab math gaussian numerical-integration
1个回答
1
投票

你应该了解计算机精度。

例如,您可以检查:

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

© www.soinside.com 2019 - 2024. All rights reserved.