基于MATLAB的振荡函数,复数,反常函数积分(附完整代码与例题) | 您所在的位置:网站首页 › 怎样求反常积分 › 基于MATLAB的振荡函数,复数,反常函数积分(附完整代码与例题) |
目录 前言 (一)振荡函数的积分 (二)反常(广义)积分 1. 无界函数的反常积分 2. 无穷区间上的反常积分 一. quadgk()函数在MATLAB中的运用 二. 基于MATLAB的特殊函数积分 例题一 无穷积分 例题二 间断函数积分 例题三 振荡积分 例题四 复数积分 结论 前言此部分铺垫两个基本的数学概念。 (一)振荡函数的积分工程问题中有时需要计算如下两种形式的积分: 通常 反常积分包括两种: 1. 无界函数的反常积分设函数f(x)在区间[a,b)上连续,b为奇异点,若对 设对任何大于a的实数b,f(x)在[a,b)上均可积,则称极限 quadgk()函数是MATLAB基于Gauss-Kronrod算法(自适应高斯-勒让德积分法)实现的数值积分函数,该函数可以用来求解振荡函数的积分、广义积分甚至是复数积分。调用格式为: [q,errbnd]=quadgk(fun,a,b,param1,val1,param2,val2,...) 解释: fun是被积函数,可以是字符表达式、内联函数、匿名函数和M函数; a,b是积分的上限和下限,它们可以为-inf和inf; parami,vali是指相关属性名及其属性值; 返回的errbnd是绝对误差的近似边界。 二. 基于MATLAB的特殊函数积分 例题一 无穷积分计算 解: MATLAB代码: clc;clear; format long f1=@(x)exp(-x.^2); % 定义被积函数 I1=quadgk(f1,0,inf) % quadgk函数求解无穷积分运行结果:I1 =0.886226925452758 例题二 间断函数积分解: MATLAB代码: clc;clear; f2=@(x)x.^5.*exp(-x).*sin(x); % 定义被积函数 [I2,errbnd] = quadgk(f2,1,10,'Waypoints',[2 5]) % 其中2,5为间断点,f(2)和f(5)具体取值不影响积分运行结果: I2 =-10.940771682195068 errbnd =3.317415541455360e-14 例题三 振荡积分解: MATLAB代码: clc;clear; f3=@(x)exp(x).*cos(1000*x); I3_quad=quad(f3,0,pi) % quad函数求解,实际上结果是错的 I3_quadgk=quadgk(f3,0,pi,'MaxIntervalCount',1000) % quadgk函数求解运行结果: I3_quad =-0.001476265473678 I3_quadgk =2.214067045838708e-05 例题四 复数积分解: MATLAB代码: clc;clear; i=sqrt(-1); f4=@(x)exp(-x.^2-i*x).*sin((7+2i)*x); % 定义被积函数 I4=quadgk(f4,2,6-5i) % 调用quadgk函数求解复数积分问题运行结果:I4 =-0.924460417702932 +25.792072810727397i 结论求解积分的函数在MATLAB中不止一个。 quad函数适用于精确地较低,被积函数平滑性较差的数值积分相比quad函数,quadl函数的精确度较高,被积函数也较为平滑quadgk函数的精确度最高,可以计算振荡被积函数。同时支持无限区间并且可以处理端点处的适度奇异性。此函数还可以解决沿分段性路径的围道积分。quadv函数将数组值fun的quad向量化。 |
CopyRight 2018-2019 实验室设备网 版权所有 |