全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 MATLAB等数学软件专版
8330 4
2011-12-15
定积分求积实验具体步骤



试验目的:

学会用MATLAB的各种方法求定积分,比如梯形法,辛普森求积公式(抛物线公式),蒙特卡罗方法,平均值法,能够熟练的运用它们求解各种有关的积分问题。

试验理论:

梯形法和辛普森公式法:

用矩形面积在小区间上近似曲边梯形的面积于是在整个区间(a,b)构成台阶形,容易知道两个台阶的面积,将两者平均,则每个小区间上的小矩形变为小梯形,整个区间上的结果即为梯形求积。为提高精度可用分段二次插值函数作为f(x)的近似,由于每段要用到相邻两个小区间端点的三个函数值,所以小区间的数目必须是偶数,在第k段的两个小区间上用三个节点做二次插值,然后积分,求m段之和即为所求积分。

蒙特卡罗法:

1)随机投点法(2)均值估计法  都是根据当试验的次数非常多的时候其频率就接近概率的方法来求

试验内容:

一正方形里有四分之一单位圆,如果向边长为1的正方形里随机投n块小石头,当n很大时小石头会均匀的分布在正方形中,数一下落在四分之一圆里的小石头,假定有k个,那么k/n就能看作是四分之一单位圆面积pi/4 的近似值,于是有pi=4*k/n显然这可以看做近似计算pi的一种方法。

试验要求:用四种方法求出上述的问题。

方法一:梯形法

程序如下:

function s=ozftixing(f,a,b,M)

h=(b-a)/M;

s=0;

for k=1:(M-1)

    x=a+h*k;

    s=s+feval(f,x);

end

s=h*(feval(f,a)+feval(f,b))/2+h*s

pi=4*s

其中的调用函数为function y=tixing(x)

                  y=sqrt(1-x^2);

也可以直接利用梯形公式的命令直接求出pi

方法如下:

function tixingfa

x=0:1/1000000:1;

y=4*sqrt(1-x.^2);

trapz(x,y)

得出结果:

Ans=3.1416

方法二:辛普森公式|(抛物线法)

function y=xinpusen(f,a,b,M)

a=0;b=1;M=10000;

h=(b-a)/(2*M);

s1=0;

s2=0;

for k=1:M

    x=a+h*(2*k-1);

    s1=s1+feval(f,x);

end

for k=1:(M-1)

    x=a+h*2*k;

    s2=s2+feval(f,x);

end

s=h*(feval(f,a)+feval(f,b)+4*s1+2*s2)/3;

pi=4*s

其中的调用函数为function y=xinpu(x)

                  y=sqrt(1-x^2);

故可以xinpusen('xinpu',0,1,100000)这样求出pi

也可以直接利用其函数的命令来求出pi

方法如下:

function paowuxianfa

quad('sqrt(1-x.^2)*4',0,1)

得出结果:

Ans=3.1416

方法三:随机投点法

function suiji

n=0;

for i=1:10^6

    x=rand;

    y=rand;

    if x^2+y^2<=1

     n=n+1;

end

end

pi=4*n/10^6

得到结果

pi = 3.1423

方法四:平均值法

function suijitoudianwenti

x=rand(1,1000000);

y=4*sqrt(1-x.^2);

q=sum(y)/1000000;

vpa(q,8)

得出结果:

ans =3.1415006     (注:结果不唯一,波动范围非常小)

试验心得:通过这次的试验,我们学习了matlab解决定积分的四种方法,其中有用到的方法有梯形法,辛普森公式(抛物线法),随机投点法,平均值法,各种方法当分的很小的时候,计算的都比较准确,我个人觉的蒙特卡罗的理论应用更广泛,今后希望能有更多的机会接触蒙特卡罗的学习。


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2011-12-15 17:41:55
int(P,x,a,b),其中P为被积函数,x变量,a,b为积分上下限
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-12-15 17:53:23
直接用INT啊
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-12-15 22:01:56
不错不错
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-12-26 19:59:10
蒙特卡洛法得到的积分结果都是 估算 的,并不是精确值
而且其精度和致信度随着算法和实验次数的不同而有不同的收敛速度
通常情况下,除非没有解析法或者任何其它数值法都无法解决的时候,才会考虑用蒙特卡洛法

计算积分,只看结果不看精度和信度是很要命的事,尤其是蒙卡这种结果存在置信水平的。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群