楼主: unparalleled
8361 4

[程序分享] MATLAB定积分求积 [推广有奖]

已卖:1408份资源

副教授

60%

还不是VIP/贵宾

-

威望
0
论坛币
11894 个
通用积分
67.1970
学术水平
39 点
热心指数
65 点
信用等级
34 点
经验
18857 点
帖子
465
精华
0
在线时间
1304 小时
注册时间
2011-12-15
最后登录
2025-6-11

楼主
unparalleled 发表于 2011-12-15 17:32:47 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
定积分求积实验具体步骤



试验目的:

学会用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解决定积分的四种方法,其中有用到的方法有梯形法,辛普森公式(抛物线法),随机投点法,平均值法,各种方法当分的很小的时候,计算的都比较准确,我个人觉的蒙特卡罗的理论应用更广泛,今后希望能有更多的机会接触蒙特卡罗的学习。


二维码

扫码加我 拉你入群

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

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

关键词:MATLAB matla atlab Atl Lab 蒙特卡罗 具体步骤 辛普森 抛物线 平均值

沙发
deng203 发表于 2011-12-15 17:41:55
int(P,x,a,b),其中P为被积函数,x变量,a,b为积分上下限

藤椅
roadofnoreturn 发表于 2011-12-15 17:53:23
直接用INT啊

板凳
诗人乐意 发表于 2011-12-15 22:01:56
不错不错

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

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

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-2 12:57