用matlab画(求)没有原函数的不定积分图像(定积分值) 您所在的位置:网站首页 matlab的不定积分 用matlab画(求)没有原函数的不定积分图像(定积分值)

用matlab画(求)没有原函数的不定积分图像(定积分值)

2024-02-04 20:03| 来源: 网络整理| 查看: 265

用matlab画(求)没有原函数的不定积分图像(定积分值) 问题描述求定积分值画原函数图像具体实例结论

问题描述

一般情况,用matlab的int函数可以很方便求解一个不定积分或者定积分值,并且通过plot画出其图像,但是对于某些没有原函数的被积函数,此法无效。下面给出一种解决办法。 ps:该方法目前可确定用于定义域在 [ 0 , + ∞ ] [0,+\infty ] [0,+∞]的情况,高阶玩法还未探索。

求定积分值

这个方法来源于网上,不过其实也不难。定积分值无非就是某一个积分区间内的图像面积,那么可以从定积分最初的定义考虑,即取尽量小的自变量步长 △ x \triangle x △x,使得其 △ y \triangle y △y可看作平坦的,即 △ y \triangle y △y变为定值 y i y_i yi​,此时变成一个细长的矩形,其面积为: △ S = △ x ∗ y i \triangle S=\triangle x*y_i △S=△x∗yi​。所以整个定积分值即可离散化为: ∫ x 1 x 2 f ( x ) d x = ∑ △ x ∗ y i \int_{x_1}^{x_2}f(x)dx=\sum\triangle x*y_i ∫x1​x2​​f(x)dx=∑△x∗yi​,可通过matlab中的sum函数快速计算出定积分值,当然 △ x \triangle x △x取的越小,结果越精确。

画原函数图像

既然定积分值可求了,那么原函数的求法可看作将积分下限取为0,而上限为自变量 x x x的定积分,说白了就是 x x x取定义域范围内各个值所对应的被积函数面积值。此时可通过matlab中的cumsum函数对被积函数值做后向累积,求出其原函数值,虽然没有显示表达式,但可通过函数值画出其原函数图像。

具体实例

下面给出一个我最近正在做的黑体辐射出射度积分例子,此积分式为 ∫ λ 1 λ 2 c 1 λ 1 e 1 λ T − 1 d λ \int_{\lambda_1}^{\lambda_2}\frac{c_1}{\lambda}\frac{1}{e^{\frac{1}{\lambda T}}-1}d\lambda ∫λ1​λ2​​λc1​​eλT1​−11​dλ,此积分的具体物理含义就不介绍了,可自行百度。此被积函数没有原函数,直接用matlab的int函数无法求得其定积分值或者画出原函数图像,下面给出上述方法的具体代码和运行结果。

c1 = 3.7415e8;%第一辐射常数,单位:Wum^4/m^-2 c2 = 1.4388e4;%第二辐射常数,单位umK Sigma = 5.67e-12;%斯蒂芬常数 T = 273+727;%目标温度,K Step = 1e-4; Lambda = 0+Step:Step:15;%波长范围,单位um M = c1./(Lambda.^5)./(exp(c2./(Lambda.*T))-1);%黑体辐出度,单位Wum^-1m^-2 M = 1e-4*M;%单位,Wum^-1cm^-2 y = M/Sigma/T^4; figure,plot(Lambda*T,y) xlabel('(\lambda,T)/(\mum*K)'),ylabel('黑体辐出度函数'),grid on IntY = cumsum(y)/1e4; figure,plot(Lambda*T,IntY) ylabel 相对光谱辐出度,xlabel('(\lambda,T)/(\mum*K)'),grid on

被积函数 原函数

结论

用matlab的sum函数计算了没有原函数的定积分值,用cumsum画出原函数图像,仿真结果验证了方法的有效性。以上画图方法在百度中并未找到代码,自己研究后贡献出来,感谢这两年让自己少造轮子的CSDN。 小白一枚,可能还有较多错误,欢迎同行批评指正!



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有