如何用matlab求积分

 我来答
可以叫我表哥
2015-07-10 · 知道合伙人数码行家
可以叫我表哥
知道合伙人数码行家
采纳数:25897 获赞数:1464984
2010年毕业于北京化工大学北方学院计算机科学与技术专业毕业,学士学位,工程电子技术行业4年从业经验。

向TA提问 私信TA
展开全部

1、在matlab中,积分运算有多种方式,为了便于查看不同方式处理异同,以下面这个积分为例:

2、梯形积分法

第一种,采用最简单的方式,以函数trapz为例,z = trapz(x,y) 其中x表示积分区间的离散化向量,y是与x同维数的向量,表示被积函数,z是返回的积分近似值。

clc;clear;

% 梯形积分法

x = -1:0.001:1;

y = exp(-x.^2);

s = trapz(x,y)

% 计算结果: s =  1.4936

3、高精度数值积分(1)

为了克服梯形积分法精度低的问题,可以采用高精度积分方式,第一种可以采用 z = quad(Fun,a,b) 该方式是自适应步长Simpson计分法求得函数Fun在区间[a,b]上定积分,如下:

clc;clear;

% 梯形积分法

s = quad(inline('exp(-x.^2)'),-1,1)

% 计算结果: s =  1.4936

4、高精度数据积分(2)

采用高精度Lobatto积分法,格式: z = quadl(Fun,a,b)

clc;clear;

% 梯形积分法

s = quadl(inline('exp(-x.^2)'),-1,1)

% 计算结果: s =  1.4936

% 注:在编写完代码后,要按如下图红色箭头所指处运行程序才会有输出!

Sievers分析仪
2024-10-13 广告
是的。传统上,对于符合要求的内毒素检测,最终用户必须从标准内毒素库存瓶中构建至少一式两份三点标准曲线;必须有重复的阴性控制;每个样品和PPC必须一式两份。有了Sievers Eclipse内毒素检测仪,这些步骤可以通过使用预嵌入的内毒素标准... 点击进入详情页
本回答由Sievers分析仪提供
YBudge
高粉答主

2018-10-29 · 每个回答都超有意思的
知道小有建树答主
回答量:1541
采纳率:100%
帮助的人:41.6万
展开全部

使用int函数即可。

函数由integrate缩写而来,int 函数表达式,变量,积分上限,积分下限。

举例:求一个Fx = a*x^2,在区间(0,1)对x进行积分。

首先要将 m,x,a,b 这四个变量定义为符号变量。

syms m x a b;

Fx = a*x^2;

int(Fx,x,0,1)

扩展资料:

matlab数值积分中函数积分的几种方法:

1、采用inline内联函数

Matlab中可以有采用几种不同的方式来指定被积函数。对于简单的、长度不超过一行的公式采用inline命令比较方便。

例如:可用下面的语句进行计算

>> f=inline('1/sqrt(1+x^4)')    %采用inline内联函数

2、特殊点不可积函数,采用realmin

如果我们想要计算,可能使用下面的语句

>> f=inline('sin(x)/x')

3、依赖于参数的积分

一个典型的例子是β函数,它定义为matlab中已经实现了一个现成的β函数,但我们可以以它为例,说明如何处理积分中的参数。创建一个带三个参数的内联函数

>> F=inline('t^(z-1)*(1-t)^(w-1)','t','z','w')

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dbb627
2011-09-27 · TA获得超过1.2万个赞
知道大有可为答主
回答量:2127
采纳率:88%
帮助的人:1406万
展开全部
一、符号积分
符号积分由函数int来实现。该函数的一般调用格式为:
int(s):没有指定积分变量和积分阶数时,系统按findsym函数指示的默认变量对被积函数或符号表达式s求不定积分;
int(s,v):以v为自变量,对被积函数或符号表达式s求不定积分;
int(s,v,a,b):求定积分运算。a,b分别表示定积分的下限和上限。该函数求被积函数在区间[a,b]上的定积分。a和b可以是两个具体的数,也可以是一个符号表达式,还可以是无穷(inf)。当函数f关于变量x在闭区间[a,b]上可积时,函数返回一个定积分结果。当a,b中有一个是inf时,函数返回一个广义积分。当a,b中有一个符号表达式时,函数返回一个符号函数。

2.数值积分的实现方法
基于变步长辛普生法,MATLAB给出了quad函数来求定积分。该函数的调用格式为:
[I,n]=quad('fname',a,b,tol,trace)
基于变步长、牛顿-柯特斯(Newton-Cotes)法,MATLAB给出了quadl函数来求定积分。该函数的调用格式为:
[I,n]=quadl('fname',a,b,tol,trace)
其中fname是被积函数名。a和b分别是定积分的下限和上限。tol用来控制积分精度,缺省时取tol=0.001。trace控制是否展现积分过程,若取非0则展现积分过程,取0则不展现,缺省时取trace=0。返回参数I即定积分值,n为被积函数的调用次数。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
没未标2682
2011-09-27 · 贡献了超过132个回答
知道答主
回答量:132
采纳率:0%
帮助的人:54.7万
展开全部

于无法求得exp(x^2)的原函数,我们只能用数值算法来求解,可以用复化梯形公式、Romberg公式、Gauss公式等,有好多种。我用Matlab编了一个用Gauss公式求解积分的函数。

function S=GaussIntegrate()
%运用Gauss求积公式计算数值积分

%f为被积函数,Rho为权函数,二者均为符号函数
x=sym('x');
f=exp(x^2);
Rho=1;

%a,b分别为求积区间的左界和右界
a=1;
b=2;

%n表示求积结点的个数,是一正整数
n=8;

%本程序利用线性变换将区间[a,b]变换到[-1.1],
%同时令g=f*Rho为被积函数,然后利用
%古典的Gauss求积公式进行计算,此时直交多项式即为Legendre多项式

if n=0||n~=floor(n)
error('错误,n必须是一个非负整数!');
end;

if a>b
error('错误,区间的左界a一定不大于右界b!');
end;

%计算n次Legendre多项式
syms x;
P=1/(2^n*factorial(n))*diff((x^2-1)^n,n);
w=roots(sym2poly(P));

%计算数值积分
A=zeros(1,n);
S=0;
for k=1:n
A(k)=2/((1-w(k)^2)*(subs(diff(P),w(k))^2));

t=a+(b-a)/2*(w(k)+1);
g=(b-a)/2*subs(f*Rho,t);
S=S+A(k)*g;
end;

--------------------------------
我取了8个结点,计算精度就已经达到了小数点后8位,效率还是很高的。
注意:由于Matlab调用Maple的符号计算工具箱,第一次运行时会加载一小会,耐心等待。
以后再运行速度就很快了。

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
MC洲没毛病呀
2018-07-27
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部

以下列函数为例

求函数x^2+y^2+z^2的三重积分。内积分上下限都是函数,对z积分下限是sqrt(x*y),积分上限是x^2*y;对y积分下限是sqrt(x),积分上限是x^2;对x的积分下限1,上限是2,求解如下:

>>syms x y z%定义符号变量

>>F2=int(int(int(x^2+y^2+z^2,z,sqrt(x*y),x^2*y),y,sqrt(x),x^2),x,1,2) %注意定积分的书写格式

F2=

1610027357/6563700-6072064/348075*2^(1/2)+14912/4641*2^(1/4)+6 4/225*2^(3/4)%给出有理数解

>>VF2=vpa(F2)%给出默认精度的数值解

VF2=

224.92153573331143159790710032805

二、数值积分

1.数值积分基本原理

求解定积分的数值方法多种多样,如简单的梯形法、辛普生(Simpson) 法、牛顿-柯特斯(Newton-Cotes)法等都是经常采用的方法。它们的基本思想都是将整个积分区间[a,b]分成n个子区间[xi,xi+1],i=1,2,…,n,其中x1=a,xn+1=b。这样求定积分问题就分解为求和问题。

2.数值积分的实现方法

基于变步长辛普生法,MATLAB给出了quad函数来求定积分。该函数的调用格式为:

[I,n]=quad('fname',a,b,tol,trace)

基于变步长、牛顿-柯特斯(Newton-Cotes)法,MATLAB给出了quadl函数来求定积分。该函数的调用格式为:

[I,n]=quadl('fname',a,b,tol,trace)

其中fname是被积函数名。a和b分别是定积分的下限和上限。tol 用来控制积分精度,缺省时取tol=0.001。trace控制是否展现积分过程,若取非0则展现积分过程,取0则不展现,缺省时取trace=0。返回参数I即定积分值,n为被积函数的调用次数。百度文库

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式