感悟网 导航

MATLAB积分 matlab如何表示积分

作者&投稿:大瑶 (若有异议请与网页底部的电邮联系)
如何用matlab求积分~

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

MATLAB中主要用int进行符号积分,用trapz、dblquad、quad、quad8等进行数值积分。
MATLAB 可以用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
优势特点
1) 高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来;
2) 具有完备的图形处理功能,实现计算结果和编程的可视化;
3) 友好的用户界面及接近数学表达式的自然化语言,使学者易于学习和掌握;
4) 功能丰富的应用工具箱(如信号处理工具箱、通信工具箱等) ,为用户提供了大量方便实用的处理工具。

扩展资料:
Matlab是一个高级的矩阵/阵列语言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。用户可以在命令窗口中将输入语句与执行命令同步,也可以先编写好一个较大的复杂的应用程序(M文件)后再一起运行。
新版本的MATLAB语言是基于最为流行的C++语言基础上的,因此语法特征与C++语言极为相似,而且更加简单,更加符合科技人员对数学表达式的书写格式。使之更利于非计算机专业的科技人员使用。而且这种语言可移植性好、可拓展性极强,这也是MATLAB能够深入到科学研究及工程计算各个领域的重要原因。

说明

 

1、题目的条件在这里说的不清楚,楼主提问之后发私信向我求助,很多信息都是在私信交流的。为便于其他人阅读,我把主要条件说明如下:

(1)表达式中的Ωu=2.145e-3*tan(θ),楼主希望的是求gb与θ之间的关系。

(2)有关系数如代码中所示,不再赘述。

(3)J0和J1分别表示0阶和1阶第一类bessel函数。

 

2、θ的取值为0~50,我是按照角度(而不是弧度)理解的。

3、式中的积分表达式用常用的函数如quad、quadl都会遇到问题,因为这些函数的迭代执行次数是固定写在程序中的(10000次),无法修改,导致计算精度不够。而quadgk提供了更多选项,能够满足这里的要求。

 

下面是几种函数的计算结果对比(θ取50度):

>> quad( @(u) besselj(0,u).^2*besselj(0,oumu).*u,0,k01*a)
Warning: Maximum function count exceeded; singularity likely. 
> In quad at 106
ans =
       2439.5
>> quadl( @(u) besselj(0,u).^2*besselj(0,oumu).*u,0,k01*a)
Warning: Maximum function count exceeded; singularity likely. 
> In quadl at 104
ans =
       3473.4 
>> quadgk( @(u) besselj(0,u).^2*besselj(0,oumu).*u,0,k01*a,'MaxIntervalCount',1e5)
ans =
       3387.5

>> syms u
>> I=int(besselj(0,u)^2*besselj(0,oumu)*u,0,k01*a);
>> vpa(I)
ans =
3387.4806929786229142471940788763

最后一种方法是使用符号数学工具箱的int、vpa函数计算,精度最高,但耗时较长。可以看到,quadgk在设置足够的迭代次数后能够提供高精度的结果,而quad和quadl误差较大,而且会导致警告信息。

 

参考代码

a = 2.625e-3;
b01 = 0.5;
k01 = 4.054e6;
T = 0 : 5 : 50;
G = zeros(size(T));
for i = 1:length(T)
    theta = T(i) *pi/180;
    oumu = 2.145e-3*tan(theta);
    I = quadgk( @(u) besselj(0,u).^2*besselj(0,oumu).*u,0,k01*a,'MaxIntervalCount',1e5);
    gb = 2*b01 * I / ( (k01*a)^2 * bessel(1,k01*a)^2 );
    G(i) = gb;
end
plot(T,G)
xlabel('heta')
ylabel('g_b')



《如何用Matlab求积分?》
答:用Matlab求积分,可以直接使用int()函数求解。(1)不定积分 syms x int(x*sin(x)) %计算结果,sin(x) - x*cos(x)int(x*exp(-x)) %计算结果,-exp(-x)*(x + 1)(2)定积分 syms x int(x*exp(-x),0,1) %计算结果,1 - 2*exp(-1)int(x*cos(x),0,pi/2) ...

《matlab怎么积分?》
答:matlab计算积分,可以用int函数,具体实现如下:syms x; % 定义变量xy = x*exp(-x); % 函数形式int(y, 0, inf); % 计算y在0到正无穷的定积分% 以上程序运行后,输出1 int函数的一般调用形式为:int(s):没有指定积分变量和积分阶数时,系统按findsym函数指示的默认变量对被积函数或符号表...

《如何利用matlab进行积分计算?》
答:题主给出的积分函数,用matlab 求解,可以这样做 1、确定x在【-300,300】中,取若干个x(i)数据,如 x=-300:10:300;2、使用for循环语句,将x(i)代入积分函数I(x)中,使用int函数计算其积分值,同时将值赋值给Ix数组变量中 for n=1:600/t+1 syms x A_1=int(cos((pi*(x^2))/2),...

《matlab求定积分时int()和integral()有什么区别?》
答:1、用int()函数求定积分,得到的值是精确值,而用integral函数求定积分,得到的值是近似值(数值解)。2、int()函数常用来计算被积函数的不定积分和定积分,而integral函数常用来计算复杂的被积函数的定积分。【int和integral求解对比】例如,计算下列积分:1)用int()函数求其定积分 >>syms x >>...

《matlab积分怎么算?》
答:1、在matlab中,积分运算有多种方式,为了便于查看不同方式处理异同,以下面这个积分为例:2、梯形积分法 第一种,采用最简单的方式,以函数trapz为例,z = trapz(x,y) 其中x表示积分区间的离散化向量,y是与x同维数的向量,表示被积函数,z是返回的积分近似值。clc,clear。梯形积分法 x = -1...

《如何用MATLAB计算经典积分的精度?》
答:使用方法如下:I=trapz(x,y)其中x和y分别是自变量和对应的值,例如有函数y=x^3-2x-3,为了计算在[0,1]上的积分,可以这么做:>> format compact >> x=0:0.05:1;>> y=x.^3-2.*x-3;>> I=trapz(x,y)I = -3.7494 这个函数是可以直接使用经典积分理论计算的,精确值为 -15/4=...

《matlab怎么求积分》
答:matlab怎么求积分:1、首先使用求积分的函数int函数,再看函数用法,int(fx,x,m,n)里fx是函数,x是变量,m和n是上下限。2、在命令行窗口输入symsxa,来定义符号变量x和a。3、输入fx=a*x^2,按回车来定义fx。4、再输入int(fx,x,1,10)来求积分。5、最后敲回车键,就可以看到函数的区间1到...

《matlab中:不定积分怎么写》
答:matlab中的不定积分(定积分)用 int()函数来表示。使用格式:int(expr,var) %计算不定积分 int(expr,var,a,b) %计算定积分 expr——被积函数 var——积分变量 a——积分下限 b——积分上限 使用实例:实例1,syms x int(-2*x/(1 + x^2)^2)实例2,syms x z int(x/(1 +...

《如何用matlab求取函数的不定积分与定积分》
答:用matlab求函数的不定积分与定积分的函数是int(),其具体使用格式为 1、不定积分 int(S)S——单变量被积函数表达式,f(x)例1:syms x;int(-2*x/(1 + x^2)^2)结果,1/(x^2 + 1)int(S,v)S——多变量被积函数表达式,f(x,y)v——积分变量x或y 例2:syms x z;int(x/(1...

《matlab中怎么用int积分》
答:你把位置数V变成一个数组了,int没法用一组数组对函数进行积分,你只要提供V上下限就行了。修改如下:可以在matlab中查看int的用法。MATLAB程序运行时出现错误找出错误操作方法 对于初学者来说,开发MATLAB程序时,经常回出现诸多错误。MATLAB程序运行时出现错误后,可通过适当的方法定位和查找,操作步骤如下...

   

返回顶部
本页内容来自于网友发表,若有相关事宜请照下面的电邮联系
感悟网