matlab数值积分
当
(1)被积函数的原函数不能用初等函数表示。
(2)被积函数难以用公式表示,而是用图形或表格给出的。
就应该建立定积分的近似计算方法:数值积分方法。
梯形法:
z=trapz(x,y)
>> x=0:0.5:1;
>> y=exp(-x.^2);
>> z=trapz(x,y)
z =
0.7314
>> x=0:0.05:1;
>> y=exp(-x.^2);
>> z=trapz(x,y)
z =
0.7467
抛物线法:Simpson(辛普森)公式
自适应辛普森公式:
z=quad(f,a,b,tol)
a是积分下限,b是积分上限,tol是计算精度,缺省为0.001。
调用quad函数时,先要建立一个描述被积函数的函数文件或语句函数。
以下分别为:内联函数和函数句柄
>> g=inline('exp(-x.^2)');
>> z=quad(g,-1,1)
z =
1.4936
>> f=@(x) exp(-x.^2);
>> z=quad(f,-1,1)
z =
1.4936
分别使用左端点的矩形法,右端点的矩形法和梯形法
>> n=100;
>> x=linspace(0,1,n);
>> y=4./(1+x.^2);
>> jxl=sum(y(1:(n-1)))./n
jxl =
3.1202
>> jxr=sum(y(2:n))./n
jxr =
3.1002
>> tx=trapz(x,y)
tx =
3.1416
还有两个常用的求数值积分的函数:
z=quadl(f,a,b,tol) 自适应复合LoBATto数值积分法
z=quadgk(f,a,c,tol) 自适应复合Gauss-Kronrod数值积分法,适用于高精度和震荡数值积分,以及广义数值积分
>> g=inline('4./(1+x.^2)');
>> quad(g,0,1)
ans =
3.1416
>> quadl(g,0,1)
ans =
3.1416
>> g=@(x) 4./(1+x.^2);
>> quadgk(g,0,1)
ans =
3.1416
>> f1=@(x) 1./(x.^2);
>> z1=quadgk(f1,1,inf)
z1 =
1
>> f2=@(x)exp(-x.^2);
>> z2=quadgk(f2,-inf,inf)
z2 =
1.7725
>> f3=@(x)1./(x.*sqrt(1-log(x).^2));
>> z3=quadgk(f3,1,exp(1))
z3 =
1.5708
相关阅读
(一)蚁群算法的由来蚁群算法最早是由Marco Dorigo等人在1991年提出,他们在研究新型算法的过程中,发现蚁群在寻找食物时,通过分泌一种称
matlab r2013b 怎样激活?matlab是一款主要面对科学计算、可视化以及交互式程序设计的高科技计算环境,目前已经发布了多个版本,这里本
继承 在 MATLAB 中继承用 < 表示 多重继承在 < 后面的各个类之间用 & 连接 和其他语言一样,可以继承基类的属性和方法 构造函数
Matlab三维网格显示一张图片(meshgrid和mesh)
在很多时候想看看深度图或灰度图的三维效果,点云的方法固然更直接,但复杂不易上手,而用Matlab的三维网格显示则方便快速了许多,下面来
曲线拟合不要求逼近函数通过各采样点,但要求尽量的接近这些点,使误差在某种意义上达到最小。 (一)利用函数的方式实现曲线拟合: 在mat