Math matlab高斯积分

Math matlab高斯积分,math,matlab,integration,gaussian,Math,Matlab,Integration,Gaussian,为了用高斯公式和误差值计算积分,我在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*(

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

我有两个问题:

  • 如果在用于计算的命令行中输入f(x)=
    sin(x)
    ,a=0,b=pi,可能会看到类似于
    2.97708877614822e-009
    。我想要的只是数字格式

  • 计算
    E(n)
    对于某些
    f(x)
    ,例如
    (1+x)^3
    的a=0,b=2有一个错误,必须计算
    0
    ,但计算
    2.97708877614822e-009


  • 你应该学习计算机精度

    例如,您可以检查:


    我不确定你所说的“一”是什么意思,但如果你想以更可读的格式查看结果,你可以尝试
    disp(num2str(sin(x),'%-04.3d'))
    或根据你的喜好更改格式字符串。@Ali我是指整数sin(x)a=0 b=pi我想看看示例1.43434234,而不是示例2.97708877614822e-009你不能期望我们做作业,你需要通读代码并提出建设性的、精确的问题。两个输入函数都给你
    2.97708877614822e-009
    (顺便说一句,这非常接近于0),这似乎很奇怪。你确定你的算法有效吗?@aganders3:2.97708877614822e-009的格式是什么?!里面的e是什么?