文章目录

  • 一、被积分函数分析
  • 二、积分函数分析
  • 参考

  在看天线理论时遇到了正弦积分与余弦积分函数,为了更好的理解这个函数的性质,使用Python将这两个函数的图像复现出来,同时画了被积函数的图像。

图1 书上的公式示例

  • 正弦积分函数:Six=∫0xsin⁡xxdxSi\text{ }x=\int_{0}^{x}{\frac{\sin x}{x}dx}Si x=∫0x​xsinx​dx;被积分函数是sin⁡x/x\sin x/xsinx/x,积分区间是(0,x)\left( 0,x \right)(0,x)。
  • 余弦积分函数:Cix=−∫x∞cos⁡xxdx=∫x∞−cos⁡xxdxCi\text{ }x=-\int_{x}^{\infty }{\frac{\cos x}{x}dx}=\int_{x}^{\infty }{-\frac{\cos x}{x}dx}Ci x=−∫x∞​xcosx​dx=∫x∞​−xcosx​dx;被积分函数−cos⁡x/x-\cos x/x−cosx/x,积分区间是(x,∞)\left( x,\infty \right)(x,∞),这里将Ci x的负号写到了被积分函数里面。

一、被积分函数分析

  使用matplotlib里面的plot函数作图,代码里需要注意的地方是起始点是0.2不是0,否则会因为−cos⁡x/x-\cos x/x−cosx/x的值是-∞而作图比例不协调。通过函数图像可以得到两个被积分函数的性质。

  • sin⁡x/x\sin x/xsinx/x:当x=0时其值为1是最大,之后波动趋向于0;
  • −cos⁡x/x-\cos x/x−cosx/x:当x=0时其值为-∞是最小,之后波动趋向于0;

  两者共同趋向于0的原因是分子的范围是[-1,1],而分母最终会趋向于正无穷大,所以结果最终会趋向于0。

import matplotlib.pyplot as plt
import numpy as npx = np.arange(0.2, 10, 0.01)    # x参数:0.2 10是范围 0.01是分辨率,因为x<0.2时,余弦积分无穷大,所以从0.2开始
# 先看下sin(t)/t与-cos(t)/t的图像   这里x的范围是x>0.2,是因为x<0.2时余弦积分无穷大会超出边界,所以从0.2开始
sin_t = np.sin(x)/x
cos_t = np.cos(x)*(-1)/xplt.title('被积分函数')                           # 添加标题
plt.plot(x, sin_t, label="sinx/x")
plt.plot(x, cos_t, label="cosx/x")
plt.legend(loc='upper left')                    # 显示在左上,解决label不显示的问题
plt.rcParams['font.sans-serif'] = ['SimHei']    # 这一行和下一行解决中文显为方框的问题
plt.rcParams['axes.unicode_minus'] = False
plt.show()

图2 被积分函数图像

二、积分函数分析

  可以看到Cinx和sin⁡x/x\sin x/xsinx/x有重合的部分,这个对应Cix≈sin⁡xx,x≥1Ci\text{ }x\approx \frac{\sin x}{x},x\ge 1Ci x≈xsinx​,x≥1,尤其是在x≥2之后几乎是重合的,不过因为求Ci x这里使用了近似解。

  • 最终余弦积分的结果趋向于0,这是因为他的积分区间导致的,x→∞时,积分区间长度为0。
  • 正弦积分区间趋向于1.5708
  • 书上Si x和Ci x函数值如表1所示
  • 余弦积分的积分到∞代码实现不了,使用积分到300进行工程近似,即第23行代码的v_cos[a], err = integrate.quad(g, x[a], 300)

表1 Si x和Ci x函数值

x Si x Ci x
0 0 −∞-\infty−∞
π/2\pi /\text{2}π/2 1.371 0.472
π\piπ 1.852 0.074
3π/23 \pi /\text{2}3π/2 1.608 -0.198
2π2 \pi2π 1.418 -0.0227
3π3\pi3π 1.675 0.011
4π4\pi4π 1.492 -0.006
∞\infty∞ 1.5708 0
from scipy import integrate
import matplotlib.pyplot as plt
import numpy as npx = np.arange(0.2, 10, 0.01)    # x参数:0.2 10是范围 0.01是分辨率,因为x<0.2时,余弦积分设计无穷大,所以从0.2开始
v = x * 0.0   # 初始化v和x的长度一致,并且都是0.0,小数,0的话就是整数了
v_cos = x * 0.0
# 先看下sin(t)/t与cos(t)/t的图像
sin_t = np.sin(x)/x     # sin(x)/x的积分是从0→x,直接从前积分就行,没有进行近似
cos_t = np.cos(x)*(-1)/x     # cos(x)/x的积分是从x→∞,后面的积分可以忽略,所以只计算到的积分是30即可,主要看趋势def f(t):   #return np.sin(t)/t  # 积分公式里的函数,这里的变量x和上面的x冲突了,修改为tdef g(t):return np.cos(t)*(-1)/t  # 积分公式里的函数,这里的变量x和上面的x冲突了,修改为tfor a in range(0, len(x), 1):  # 第一个积分出来是nan,先跳过第0个元素v[a], err = integrate.quad(f, 0, x[a])   # 0,np.pi是积分范围,在最后的画图里面np.pi应该是变量v_cos[a], err = integrate.quad(g, x[a], 300)# v_cos[a], err = integrate.quad(g, 30, x[a])plt.title('正弦/余弦积分')                       # 添加标题
plt.plot(x, v, label="Si x")
plt.plot(x, v_cos, label="Ci x")
plt.plot(x, sin_t, label="sinx/x")
plt.plot(x, cos_t, label="cosx/x")
plt.legend(loc='upper left')                    # 显示在左上,解决label不显示的问题
plt.rcParams['font.sans-serif'] = ['SimHei']    # 这一行和下一行解决中文显为方框的问题
plt.rcParams['axes.unicode_minus'] = False
plt.show()

图3 正弦/余弦积分函数图像

参考

  1. 《天线理论与技术》钟顺时,P46
  2. 百度百科-正弦积分
  3. 百度百科-余弦积分

正弦积分与余弦积分函数相关推荐

  1. Maple中的部分特殊函数及其定义

    除了基本的数学常量和常用数学函数之外,Maple也提供了部分常用的特殊函数. 在此给出它们的定义说明: 函数 定义 b i n o m i a l ( n , m ) binomial(n,m) bi ...

  2. 微分法MATLAB语言程序,MATLAB语言常用算法程序集 102MB 百度网盘

    马上注册,结交更多好友,享用更多功能,让你轻松玩转社区. 您需要 登录 才可以下载或查看,没有帐号?立即注册 x MATLAB语言常用算法程序集 102MB 百度网盘 点击进入 上篇 matlab基础 ...

  3. matlab可以节定积分方程,如何用matlab如何实现数值积分

    点击查看如何用matlab如何实现数值积分具体信息 答:用matlab可以如下数值积分法,来求解定积分.二重积分.三重积分的数值解问题. 1.梯形数值积分计算 trapz() X = 0:pi/100 ...

  4. IMU-Allan方差分析

    使用Allan方差来确定MEMS陀螺仪的噪声参数,陀螺仪测量模型为: 使用长时间静止的陀螺仪数据对陀螺仪噪声参数进行分析,上式中,三个噪声参数N(角度随机游走),K(速率随机游走)和B(偏差不稳定性) ...

  5. 1.7 积分上限函数的图形

    设有积分上限函数 一般的高等数学教材都没有画出积分上限函数的图形.Why? 因为积分上限函数的图形很难绘制,原因是一般我们写不出这类函数的具体表达式(除了这种积分形式). 但是利用数学软件,我们可以绘 ...

  6. 数据库中自定义排序规则,Mysql中自定义字段排序规则,Oracle中自定义字段排序规则,decode函数的用法,field函数的用法

    数据库中自定义排序 场景:有一张banner表,表中有一个status字段,有0, 1, 2三个状态位,我想要 1,0,2的自定义排序(这里是重点),然后再进行之上对sequence字段进行二次排序( ...

  7. Mysql函数group_concat、find_in_set 多值分隔字符字段进行数据库字段值翻译

    Mysql函数group_concat.find_in_set进行数据库字段值翻译 场景 配方表:记录包含的原料 sources表示原料,字段值之间用逗号分隔 原料表:对应原料id和原料名称 现需要查 ...

  8. C++ 笔记(34)— C++ exit 函数

    当遇到 main 函数中的 return 语句时,C++ 程序将停止执行.但其他函数结束时,程序并不会停止.程序的控制将返回到函数调用之后的位置.然而,有时候会出现一些非常少见的情况,使得程序有必要在 ...

  9. C++ 笔记(30)— 友元函数与友元类

    我们知道类的私有成员只能在类的成员函数内部访问,如果想在别处访问对象的私有成员,只能通过类提供的接口(成员函数)间接地进行.这固然能够带来数据隐藏的好处,利于将来程序的扩充,但也会增加程序书写的麻烦. ...

  10. 浅显易懂 Makefile 入门 (07)— 其它函数(foreach 、if、call、origin )

    1. foreach 函数 foreach 函数定义如下: $(foreach <var>,<list>,<text>) 函数的功能是:把参数 <list&g ...

最新文章

  1. ForkJoinPool---ForkJoinTask
  2. matlab rltool,matlab工具箱
  3. LAMP 3.1 mysql的root密码重置
  4. 基础算法:与、或、异或运算
  5. 陆维家具设计拆单软件
  6. 自动驾驶仿真(二)—— 基于PreScan与Simulink的联合仿真
  7. java 缓存文件_java实现酷狗音乐临时缓存文件转换为MP3文件的方法
  8. 只需要5秒就能克隆出你的声音
  9. 手机浏览器能上网微信无法连接服务器,苹果手机微信可以上网浏览器不能
  10. Spring整合RabbitMQ(包含生产者和消费者)
  11. SODA Foundation中国区启动仪式在联通沃云峰会(WCS)2019成功举行
  12. 用C语言编程写高考祝福,2020高考祝福自己的句子_高考给自己加油打气的话精选100句...
  13. 电脑休眠睡眠状态下无线WiFi远程网络唤醒设置
  14. API接口名称(item_get - 根据ID取商品详情)[item_search,item_get,item_search_shop等]
  15. Java多态实现人喂养宠物小案例
  16. vb2010中ComboBox的item用法
  17. Oracle创建序列的方式
  18. 冒泡排序zzzzzzz
  19. Unity3d中skybox的颜色看起来变成256色的那种色斑问题解决
  20. 2022年最新河北建筑八大员(电气施工员)模拟题库及答案

热门文章

  1. WEB程序设计 第7版.pdf
  2. smartsvn.license
  3. ThinkPHP5.1 子查询-使用 Group 获取每组最新数据
  4. win7无法连接打印机拒绝访问_win7 无法连接到打印机 添加本地打印机拒绝访问 - 卡饭网...
  5. linux命令mysql启动,linux中mysql启动服务命令
  6. mysql 存微信表情_MySQL保存 emoji 表情(微信昵称表情)
  7. Knockout.js入门级
  8. 线段树 2017.4.20
  9. 计算机地图制图的点状符号制作,点状符号
  10. 论文中的MS流程01