MATLAB中积分域内部的奇点

本文介绍如何在MATLAB中处理包含奇点的复值积分问题,通过定义匿名函数和将积分域拆分为两个三角形来避开奇异点,确保积分的计算成功。
摘要由CSDN通过智能技术生成

目录

将被积函数定义为匿名函数

对方形求积分

将积分域拆分为两个三角形


        本示例显示如何拆分积分域以将奇点放在边界上。

将被积函数定义为匿名函数

        复值积分的被积函数

        在 x = y = 0 时有一个奇点,并通常是 y = -x 线上的奇异值。

        将该被积函数定义为匿名函数。

fun = @(x,y) ((x+y).^(-1/2));

对方形求积分

        对由 −1≤x≤1 和 −1≤y≤1 指定的方域中的 fun 求积分。

format long
q = integral2(fun,-1,1,-1,1)
Warning: Non-finite result. The integration was unsuccessful. Singularity likely.
q = 
                NaN +               NaNi

        如果积分区内部有奇异值,则积分不能收敛并返回一个警告。

将积分域拆分为两个三角形

        可以通过将积分域拆分为互补区并将这些较小的积分加在一起来重新定义积分。可将奇点放在域边界上来避免积分错误和警告。在此例中,可将方积分区域沿着奇异线 y = -x 拆分成两个三角形并将结果相加。

q1 = integral2(fun,-1,1,-1,@(x)-x);
q2 = integral2(fun,-1,1,@(x)-x,1);
q = q1 + q2
q = 
  3.771236166328259 - 3.771236166328255i

        奇异值在边界上时可继续求积分。

        这个积分的精确值是

8/3*sqrt(2)*(1-i)
ans = 
  3.771236166328253 - 3.771236166328253i

  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值