使用入门微积分分析函数行为。

func-analysis的Python项目详细描述


CI & Test StatusGitlab Pipeline StatusCoverage Report
Code QualityCode ClimateCodacycodebeatCodeFactorLGTM
Code Stylecode style: black
DependenciesRequirements Status
Usagelicense
PyPIpython versionlatest release

这个库使用的是微积分入门课程中通常教授的概念 描述连续可微单变量的性质 功能。

使用此库

func_analysis模块定义类AnalyzedFunc。一个例子 这个类有几个属性描述这个函数的行为。

所需数据包括:

  • A范围
  • 要分析的函数

特殊点包括零、临界数、极值和 屈折变化。当给定点数时,可以计算这些 通缉犯。

可提供可选数据以提高精度和性能。这些数据 包括:

  • 函数的任何导数
  • 任何已知的零、临界数、极值、拐点
  • 凹、凸、增、减
  • 区间 任何垂直对称轴

以上任何数据都可以由AnalyzedFunc的实例计算。

示例用法

这个来自交互式python会话的粘贴显示了所有的功能 共AnalyzedFunc

>>>fromfunc_analysisimportAnalyzedFunc>>>importmpmathasmp;importnumpyasnp>>>mp.pretty=True>>>defexample_func(x):...returnmp.cos(x**2)-mp.sin(x)+(x/68)...>>>analyzed_example=AnalyzedFunc(...func=example_func,...x_range=(-47.05,-46.3499),...zeros_wanted=21,...crits_wanted=21,...pois_wanted=21,...zeros=[-47.038289673236127,-46.406755885040056],...)>>>analyzed_example.zerosarray([mpf('-47.038289673236127'),mpf('-47.018473233395284'),mpf('-46.972318087653945'),mpf('-46.950739626397913'),mpf('-46.906204518117636'),mpf('-46.882958270910017'),mpf('-46.839955720658347'),mpf('-46.815121707485004'),mpf('-46.77357601136889'),mpf('-46.747224922729004'),mpf('-46.707068062964038'),mpf('-46.679264553080846'),mpf('-46.640433373296687'),mpf('-46.611238416225623'),mpf('-46.57367255467036'),mpf('-46.543145221101676'),mpf('-46.506785519620839'),mpf('-46.474984380574834'),mpf('-46.439771604599501'),mpf('-46.406755885040056'),mpf('-46.372629655875102')],dtype=object)>>>analyzed_example.critsarray([mpf('-47.028400867252276'),mpf('-46.995216177440788'),mpf('-46.961552135996999'),mpf('-46.928318300227147'),mpf('-46.894608617023608'),mpf('-46.861324416365338'),mpf('-46.827569901478539'),mpf('-46.794234116960419'),mpf('-46.760435575283916'),mpf('-46.72704699248236'),mpf('-46.693205219083057'),mpf('-46.659762632756908'),mpf('-46.625878408195688'),mpf('-46.592380626945829'),mpf('-46.558454712583136'),mpf('-46.524900563516225'),mpf('-46.490933696823733'),mpf('-46.457322030198712'),mpf('-46.42331492009863'),mpf('-46.389644613934263'),mpf('-46.355597936188148')],dtype=object)>>>analyzed_example.poisarray([mpf('-47.04521505151731'),mpf('-47.011813891641338'),mpf('-46.978389522478297'),mpf('-46.944940655832212'),mpf('-46.911468800195282'),mpf('-46.877972023301726'),mpf('-46.844452476333207'),mpf('-46.81090758498618'),mpf('-46.777340139630388'),mpf('-46.743746928888186'),mpf('-46.710131375870707'),mpf('-46.676489640045468'),mpf('-46.64282576785548'),mpf('-46.60913530049924'),mpf('-46.575422895374974'),mpf('-46.541683489262155'),mpf('-46.507922335179564'),mpf('-46.474133782285819'),mpf('-46.440323660950513'),mpf('-46.406485752427894'),mpf('-46.372626443270374')],dtype=object)>>>analyzed_example.increasing[Interval(start=-47.05,stop=mpf('-47.028400867252276')),Interval(start=mpf('-46.995216177440788'),stop=mpf('-46.961552135996999')),Interval(start=mpf('-46.928318300227147'),stop=mpf('-46.894608617023608')),Interval(start=mpf('-46.861324416365338'),stop=mpf('-46.827569901478539')),Interval(start=mpf('-46.794234116960419'),stop=mpf('-46.760435575283916')),Interval(start=mpf('-46.72704699248236'),stop=mpf('-46.693205219083057')),Interval(start=mpf('-46.659762632756908'),stop=mpf('-46.625878408195688')),Interval(start=mpf('-46.592380626945829'),stop=mpf('-46.558454712583136')),Interval(start=mpf('-46.524900563516225'),stop=mpf('-46.490933696823733')),Interval(start=mpf('-46.457322030198712'),stop=mpf('-46.42331492009863')),Interval(start=mpf('-46.389644613934263'),stop=mpf('-46.355597936188148'))]>>>analyzed_example.decreasing[Interval(start=mpf('-47.028400867252276'),stop=mpf('-46.995216177440788')),Interval(start=mpf('-46.961552135996999'),stop=mpf('-46.928318300227147')),Interval(start=mpf('-46.894608617023608'),stop=mpf('-46.861324416365338')),Interval(start=mpf('-46.827569901478539'),stop=mpf('-46.794234116960419')),Interval(start=mpf('-46.760435575283916'),stop=mpf('-46.72704699248236')),Interval(start=mpf('-46.693205219083057'),stop=mpf('-46.659762632756908')),Interval(start=mpf('-46.625878408195688'),stop=mpf('-46.592380626945829')),Interval(start=mpf('-46.558454712583136'),stop=mpf('-46.524900563516225')),Interval(start=mpf('-46.490933696823733'),stop=mpf('-46.457322030198712')),Interval(start=mpf('-46.42331492009863'),stop=mpf('-46.389644613934263')),Interval(start=mpf('-46.355597936188148'),stop=-46.3499)]>>>analyzed_example.concave[Interval(start=-47.05,stop=mpf('-47.04521505151731')),Interval(start=mpf('-47.011813891641338'),stop=mpf('-46.978389522478297')),Interval(start=mpf('-46.944940655832212'),stop=mpf('-46.911468800195282')),Interval(start=mpf('-46.877972023301726'),stop=mpf('-46.844452476333207')),Interval(start=mpf('-46.81090758498618'),stop=mpf('-46.777340139630388')),Interval(start=mpf('-46.743746928888186'),stop=mpf('-46.710131375870707')),Interval(start=mpf('-46.676489640045468'),stop=mpf('-46.64282576785548')),Interval(start=mpf('-46.60913530049924'),stop=mpf('-46.575422895374974')),Interval(start=mpf('-46.541683489262155'),stop=mpf('-46.507922335179564')),Interval(start=mpf('-46.474133782285819'),stop=mpf('-46.440323660950513')),Interval(start=mpf('-46.406485752427894'),stop=mpf('-46.372626443270374'))]>>>analyzed_example.convex[Interval(start=mpf('-47.04521505151731'),stop=mpf('-47.011813891641338')),Interval(start=mpf('-46.978389522478297'),stop=mpf('-46.944940655832212')),Interval(start=mpf('-46.911468800195282'),stop=mpf('-46.877972023301726')),Interval(start=mpf('-46.844452476333207'),stop=mpf('-46.81090758498618')),Interval(start=mpf('-46.777340139630388'),stop=mpf('-46.743746928888186')),Interval(start=mpf('-46.710131375870707'),stop=mpf('-46.676489640045468')),Interval(start=mpf('-46.64282576785548'),stop=mpf('-46.60913530049924')),Interval(start=mpf('-46.575422895374974'),stop=mpf('-46.541683489262155')),Interval(start=mpf('-46.507922335179564'),stop=mpf('-46.474133782285819')),Interval(start=mpf('-46.440323660950513'),stop=mpf('-46.406485752427894')),Interval(start=mpf('-46.372626443270374'),stop=-46.3499)]>>>analyzed_example.relative_maximaarray([mpf('-47.028400867252276'),mpf('-46.961552135996999'),mpf('-46.894608617023608'),mpf('-46.827569901478539'),mpf('-46.760435575283916'),mpf('-46.693205219083057'),mpf('-46.625878408195688'),mpf('-46.558454712583136'),mpf('-46.490933696823733'),mpf('-46.42331492009863'),mpf('-46.355597936188148')],dtype=object)>>>analyzed_example.relative_minimaarray([mpf('-46.995216177440788'),mpf('-46.928318300227147'),mpf('-46.861324416365338'),mpf('-46.794234116960419'),mpf('-46.72704699248236'),mpf('-46.659762632756908'),mpf('-46.592380626945829'),mpf('-46.524900563516225'),mpf('-46.457322030198712'),mpf('-46.389644613934263')],dtype=object)>>>analyzed_example.absolute_maximumCoordinate(x_val=mpf('-46.355597936188148'),y_val=mpf('1.0131766438615282'))>>>analyzed_example.absolute_minimumCoordinate(x_val=mpf('-46.995216177440788'),y_val=mpf('-1.5627299417380764'))>>>analyzed_example.signed_areampf('-0.1835790011406907')>>>analyzed_example.unsigned_areampf('0.46577475660746492')

我们可以看到一个函数的拐点,它的临界点 一阶导数和二阶导数的零点是相同的。

>>>np.array_equal(...analyzed_example.pois,analyzed_example.rooted_first_derivative.crits...)True>>>np.array_equal(...analyzed_example.pois,analyzed_example.rooted_second_derivative.zeros...)True

演示衍生工具之间关系的其他示例:

>>>np.array_equal(analyzed_example.concave,analyzed_example.rooted_first_derivative.increasing)True>>>np.array_equal(analyzed_example.first_derivative.convex,analyzed_example.rooted_second_derivative.decreasing)True

一个进行中的特征是列出垂直对称轴的x值。 下面是一个关于y轴对称的函数的例子:

>>>defsymmetric_func(x):returnmp.power(x,2)-4>>>analyzed_symmetric_example=AnalyzedFunc(...func=lambdax:mp.power(x,2)-4,...x_range=(-8,8),...zeros_wanted=2...)>>>analyzed_symmetric_example.vertical_axis_of_symmetry[0.0]

许可证

此程序是根据GNU Affero通用公共许可v3或 稍后。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Cassandra复制因子大于节点数   java J2EE JTA事务回滚不适用于OSE Glassfish 4.0(Build 89)   java spring安全预认证用户登录   org的java类文件。反应流。从RxJava编译示例时未找到Publisher?   java在使用dataFormat作为POJO通过Camel调用Web服务时无法设置SOAP标头   Javafx类的java静态实例   java如何防止一个部件在关闭时覆盖另一个部件的位置   sql server无法从我的java代码连接到数据库   java在JList(Swing)中显示带有的ArrayList   从Java中的CXF服务获取WSAddressing数据   使用资产文件夹进行java简单json解析(本地)   java LDAPException未绑定的无效凭据   JavaJSFspring部署到weblogic   JAVA中字符数组中的特定元素排列?   如果脚本位于不同的目录中,则ant不会使用exec标记运行Javashell脚本