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

目录

前言

(一)振荡函数的积分

(二)反常(广义)积分

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\epsilon>0b-\epsilon>a,称极限\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向量化。

  • 10
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

唠嗑!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值