如何用matlab求积分?

作者&投稿:松寇 (若有异议请与网页底部的电邮联系)
~ 于无法求得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的符号计算工具箱,第一次运行时会加载一小会,耐心等待。
以后再运行速度就很快了。

一、符号积分
符号积分由函数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为被积函数的调用次数。


如何用Matlab求解级数的和??
在Matlab中,我们可以使用内置函数来求解级数的和。这里我们以一个无穷级数为例,例如:求和 ∑(i=1 to ∞) (1\/i^2)。步骤如下:首先,我们需要定义一个函数来计算每一项的值。在这个例子中,我们的函数是 f(i) = 1\/i^2。然后,我们需要定义一个变量来存储级数的和。接下来,我们需要使用一...

怎么用matlab求方程的根?
用matlab迭代法求方程的根,其求解思路是这样的:1、创建迭代公式,即 x(k+1)=sqrt(10\/x(k)-4*x(k))2、确定初值,x(1)=1.5 3、使用while循环语句,进行迭代 4、当x(k+1)-x(k)<ε=1e-5,则x(k)为方程的根。实现代码:x(1)=1.5 k=1;while k<10000 x(k+1)=sqrt(10\/x...

matlab求逆
MATLAB是一款强大的数学计算软件,提供了丰富的数学函数库。在MATLAB中,可以使用“inv”函数来求矩阵的逆。具体方法是,直接在MATLAB的命令窗口中输入“inv”,其中A是要计算逆的矩阵。MATLAB会自动返回矩阵A的逆矩阵。需要注意的是,只有方阵才能求逆,对于非方阵,MATLAB会报错。三、使用步骤和注意事项 ...

如何用MATLAB求π的近似值?
如下:y=0;for n=1:1000000 xx=(-1)^(n-1)\/(2*n-1);if abs(xx)>10^(-6)y=y+xx;else break end end fprintf('π的近似值为%.6f ,共需迭代%d步\\n',y*4,n)。介绍 MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。行矩阵运算、...

如何使用MATLAB求方程的解?
(a)如果希望利用由Solve得到的解计算表达式的值,可以利用取代运算符\/. ,这样Mathematica就会自动带入相应的值.(b)由于解就是列表,因此可以用Part或[[]]从列表中“提取”解.在下面两个例子中演示这些方法的使用.假设要计算下述方程所有根的平方和:x^6-21x^5+175x^4-735x^3+1624x^2-1764x+720...

用matlab计算在[-3π,3π]区间,求y=cos(x)*In(x^2)的值。
【计算代码】打开matlab软件,可以直接在命令窗口中输入下列语句:>>x=[-3*pi:pi:3*pi] ←创建x等差数列数组,公差为pi(π)>>y=cos(x).*log(x.^2) ←使用点运算符,计算其对应于x的y值 运行结果 【本题相关知识点】1、等差数列的建立。方法一:用x=[x0:d:xn]创建数组,x0是...

matlab中求n次方根的n该用什么函数?
简单来说就是,使用power(x,1\/3),或者简单的使用 x^(1\/3)即可。matlab中求平方根(二次方根)用sqrt,但没有专门表示三次方根的函数。计算三次方根等价于计算某个数的三分之一次方。所以可以使用power(x,1\/n)的方法(表示开n次方根)。举例:>> x=4 x =4 >> power(x,1\/3)ans =1....

在matlab中如何求积分,用什么函数?
首先要将 m,x,a,b 这四个变量定义为符号变量 syms m x a b;Fx = a*x^2;int(Fx,x,m,n)3、通过上面这个方法,就能够求得任意一个函数在给定区间的积分,如果想看到书写的格式,可以用pretty命令,这样显示更接近平常的表示方法。1、在matlab中,积分运算有多种方式,为了便于查看不同方式...

如何在MATLAB中使用power函数求平方?
1、第一步打开matlab,在命令行窗口输入a=3^2,如下图所示:2、第二步按回车键之后,可以看到结果为9,表示3的平方,如下图所示:3、第三步命令行窗口输入 b=power(4,2),表示4的平方,如下图所示:4、第四步按回车键,可以看到结果为16,power函数可以表示是数字的几次方,后面是2就是平方...

如何使用matlab,求AX=B?
a\\b = inv(a)*b;b\/a = b*inv(a);2。数组除法:A\/B表示A中元素与B中元素对应相除。MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。MATLAB是matrix&laboratory两个词的组合,意为...

兴庆区19783037645: 用MATLAB算积分 -
南费十味: 使用MATLAB软件,可以用int()计算不定积分或定积分.计算方法如下:syms x int((log(x))^2/x) %这里 ln(x) 用 log(x) 来表示 计算结果 log(x)^3/3 %ln³(x)/3

兴庆区19783037645: 如何用matlab求积分的程序 -
南费十味: 程序: fun=sin(0.5*pi*x./y);%% a=int(int(fun,y,sqrt(x),x),x,1,2); b=simple(a) %化简 I=vpa(b,4) %得到4位近似解,也可以任意N位解 结果: I = 0.2719

兴庆区19783037645: 在matlab中怎样求带有参数的定积分 -
南费十味:[答案] 设被积函数为f=ax+b,积分区间为(c,d) MATLAB代码如下: syms a b c d x; f=a*x+b; answer=int(f,x,c,d).

兴庆区19783037645: 用matlab定积分怎么求 -
南费十味: int(s,v,a,b):以v为自变量,对被积函数s在区间[a,b]上的定积分.a和b可以是两个具体的数,也可以是一个符号表达式,还可以是无穷(inf).例:syms x %定义符号变量 f=int(x^3,x,1,2) % 求x^3在区间[1,2]上的定积分

兴庆区19783037645: 怎么用MATLAB求积分 -
南费十味: 基本不管多复杂的式子,MATLAB都能解决,只要你输入正确,解出来只是时间问题,我给你一个解题的参考格式.设f为你的被积函数,只能自己输,别输错;x为积分变量,a,b分别为积分下限和上限.MATLAB中计算函数f的不定积分的格式如下: syms x;int(f,x) 计算定积分的格式如下: syms a b x;int(f,x,a,b).

兴庆区19783037645: 怎样用matlab编程求解积分 -
南费十味: int函数 例如s = sin(x),求积分int('s'),即可

兴庆区19783037645: matlab中怎么求函数的积分 -
南费十味: 用 quad 命令: 具体用法如下:1 2y = @(x)(sin(x)); quad(y,0,pi)

兴庆区19783037645: matlab 如何求积分
南费十味: quad('函数名',a,b)我这里的a和b指的是积分下限和上限

兴庆区19783037645: 怎么用matlab算广义积分? -
南费十味: 用matlab算广义积分方法:%符号积分 int(f,v) int(f,v,a,b)%数值积分 trapz(x,y)%梯形法沿列方向求函数Y关于自变量X的积分 cumtrapz(x,y)%梯形法沿列方向求函数Y关于自变量X的累计积分 quad(fun,a,b,tol)%采用递推自适应Simpson法计算积分 quad1(fun,a,b,tol)%采用递推自适应Lobatto法求数值积分 dbquad(fun,xmin,xmax,ymin,ymax,zmin,zmax,tol)%二重(闭型)数值积分指令 triplequad(fun,xmin,xmax,ymin,ymax,zmin,zmax,tol)%三重(闭型)数值积分指令 .

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网