基于MATLAB的振荡函数,复数,反常函数积分(附完整代码与例题) 您所在的位置:网站首页 怎样求反常积分 基于MATLAB的振荡函数,复数,反常函数积分(附完整代码与例题)

基于MATLAB的振荡函数,复数,反常函数积分(附完整代码与例题)

2024-07-12 06:51| 来源: 网络整理| 查看: 265

目录

前言

(一)振荡函数的积分

(二)反常(广义)积分

1. 无界函数的反常积分

2. 无穷区间上的反常积分

一. quadgk()函数在MATLAB中的运用

二. 基于MATLAB的特殊函数积分

例题一 无穷积分

例题二 间断函数积分 

例题三 振荡积分

例题四 复数积分

结论

前言

此部分铺垫两个基本的数学概念。

(一)振荡函数的积分

工程问题中有时需要计算如下两种形式的积分:

I_c(f)=\int_a^bf(x)cos\omega xdx

I_s(f)=\int_a^bf(x)sin\omega xdx

通常a=0,b=2\pi。当\omega很大时,cos\omega xsin\omega x在区间(a,b)内与x轴会有很多个交点,此函数也被称之为振荡函数。同样地,当\omega很大时,f(x)cos\omega xf(x)sin\omega x在区间(a,b)内与x轴也会有很多个交点,对上述函数的积分也称之为振荡函数积分。

(二)反常(广义)积分

反常积分包括两种:

1. 无界函数的反常积分

设函数f(x)在区间[a,b)上连续,b为奇异点,若对\forall\epsilon0b-\epsilona,称极限\lim_{\epsilon\to 0^+}f(x)dx为无界函数f(x)在[a,b)上的反常积分\int_a^bf(x)dx

2. 无穷区间上的反常积分

设对任何大于a的实数b,f(x)在[a,b)上均可积,则称极限\lim_{b\to+\infty}f(x)dx为f(x)在无穷区间[a,+\infty)上的反常积分\int_a^{+\infty}f(x)dx

一. quadgk()函数在MATLAB中的运用

quadgk()函数是MATLAB基于Gauss-Kronrod算法(自适应高斯-勒让德积分法)实现的数值积分函数,该函数可以用来求解振荡函数的积分、广义积分甚至是复数积分。调用格式为:

[q,errbnd]=quadgk(fun,a,b,param1,val1,param2,val2,...)

解释:

fun是被积函数,可以是字符表达式、内联函数、匿名函数和M函数;

a,b是积分的上限和下限,它们可以为-inf和inf;

parami,vali是指相关属性名及其属性值;

返回的errbnd是绝对误差的近似边界。

二. 基于MATLAB的特殊函数积分 例题一 无穷积分

计算I=\int_0^\infty e^{-x^2}dx

解:

MATLAB代码:

clc;clear; format long f1=@(x)exp(-x.^2); % 定义被积函数 I1=quadgk(f1,0,inf) % quadgk函数求解无穷积分

运行结果:I1 =0.886226925452758

例题二 间断函数积分 

I=\int_1^{10}f(x)dx

f(x)=\begin{cases}1000,&x=2\\-100,&x=5\\x^5e^{-x}sinx,&others \end{cases}

解:

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

例题三 振荡积分

I(f)=\int_0^\pi e^xcos1000xdx

解: 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

例题四 复数积分

I=\int_2^{6-j5}e^{-x^2-jx}sin(7+j2)xdx

解: 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 实验室设备网 版权所有