# Revision history [back]

### Specifying a limit for a symbolic function?

Hi there,

I am working on symbolic functions, and I do have a lot of integration by parts to be done, in which I have to evaluate some exact derivative terms at infinity.

I am defining this function, specifying its derivative.

def deriv_F_0(self,*args,**kwds):
return -exp(2*i*args[kwds['diff_param']])/args[kwds['diff_param']]

F_0=function('F_0',nargs=1,derivative_func=deriv_F_0)


It works fine, but, I would like to add to it an option doing something like

limit_func=mylimit_F_0


to specify various asymptotic limits. Of course, the goal being that:

F_0(x).limit(x=infinity)


returns the value I specify. Any help welcome!

### Specifying a limit for a symbolic function?

Hi there,

I am working on with symbolic functions, and I do have a lot of integration by parts to be done, in which I have to evaluate some exact derivative terms at infinity.

I am defining this symbolic function, specifying its derivative.

def deriv_F_0(self,*args,**kwds):
deriv_F_0(self,args,kwds):
return -exp(2*i*args[kwds['diff_param']])/args[kwds['diff_param']]

-exp(2i*args[kwds['diff_param']])/args[kwds['diff_param']] F_0=function('F_0',nargs=1,derivative_func=deriv_F_0)
It works fine, but, I would also like to add to it an option like "limit_func" doing something like limit_func=mylimit_F_0
this: F_0=function('F_0',nargs=1,derivative_func=deriv_F_0,limit_func=mylimit_F_0)
where "mylimit_F_0" would be a function of mine. Notice that my problem is just that "limit_func" does not exist :) For instance, I could set: def mylimit_F_0(self,x):
if bool(x==infinity):
return pi
the goal being to specify various asymptotic limits. Of course, the goal being that:limits, and makes this F_0(x).limit(x=infinity)
returns returning the value I specify. Any specify, here pi. I have started SageMath a few days ago, so any help welcome!welcome! Let me know if there are any alternative methods for setting limit on symbolic functions! Cheers,
chris. 


 3 None updated 2022-03-31 22:30:48 +0200 slelievre 16479 ●19 ●147 ●328 http://carva.org/samue... Specifying a limit for a symbolic function? Hi there, I am working with symbolic functions, and I do have a lot of integration by parts to be done, in which I have to evaluate some exact derivative terms at infinity. I am defining this symbolic function, specifying its derivative. def deriv_F_0(self,args,kwds): deriv_F_0(self, *args, **kwds): return -exp(2i*args[kwds['diff_param']])/args[kwds['diff_param']] F_0=function('F_0',nargs=1,derivative_func=deriv_F_0) -exp(2*i*args[kwds['diff_param']])/args[kwds['diff_param']] F_0 = function('F_0', nargs=1, derivative_func=deriv_F_0) It works fine, but, I would also like to add to it an option like "limit_func" doing this: F_0=function('F_0',nargs=1,derivative_func=deriv_F_0,limit_func=mylimit_F_0) F_0 = function('F_0', nargs=1, derivative_func=deriv_F_0, limit_func=mylimit_F_0) where "mylimit_F_0" would be a function of mine. mine. Notice that my problem is just that "limit_func" does not exist :) For instance, I could set: def mylimit_F_0(self,x): mylimit_F_0(self, x): if bool(x==infinity): return pi the goal being to specify various asymptotic limits, and makes this F_0(x).limit(x=infinity) returning the value I specify, here pi.pi. I have started SageMath a few days ago, so any help welcome! welcome! Let me know if there are any alternative methods for setting limit on symbolic functions! Cheers, chris. 


 Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license. about | faq | help | privacy policy | terms of service Powered by Askbot version 0.7.59 Please note: Askbot requires javascript to work properly, please enable javascript in your browser, here is how //IE fix to hide the red margin var noscript = document.getElementsByTagName('noscript')[0]; noscript.style.padding = '0px'; noscript.style.backgroundColor = 'transparent'; askbot['urls']['mark_read_message'] = '/s/messages/markread/'; askbot['urls']['get_tags_by_wildcard'] = '/s/get-tags-by-wildcard/'; askbot['urls']['get_tag_list'] = '/s/get-tag-list/'; askbot['urls']['follow_user'] = '/followit/follow/user/{{userId}}/'; askbot['urls']['unfollow_user'] = '/followit/unfollow/user/{{userId}}/'; askbot['urls']['user_signin'] = '/account/signin/'; askbot['urls']['getEditor'] = '/s/get-editor/'; askbot['urls']['apiGetQuestions'] = '/s/api/get_questions/'; askbot['urls']['ask'] = '/questions/ask/'; askbot['urls']['questions'] = '/questions/'; askbot['settings']['groupsEnabled'] = false; askbot['settings']['static_url'] = '/m/'; askbot['settings']['minSearchWordLength'] = 4; askbot['settings']['mathjaxEnabled'] = true; askbot['settings']['sharingSuffixText'] = ''; askbot['settings']['errorPlacement'] = 'after-label'; askbot['data']['maxCommentLength'] = 800; askbot['settings']['editorType'] = 'markdown'; askbot['settings']['commentsEditorType'] = 'rich\u002Dtext'; askbot['messages']['askYourQuestion'] = 'Ask Your Question'; askbot['messages']['acceptOwnAnswer'] = 'accept or unaccept your own answer'; askbot['messages']['followQuestions'] = 'follow questions'; askbot['settings']['allowedUploadFileTypes'] = [ "jpg", "jpeg", "gif", "bmp", "png", "tiff" ]; askbot['data']['haveFlashNotifications'] = true; askbot['data']['activeTab'] = 'questions'; askbot['settings']['csrfCookieName'] = 'asksage_csrf'; askbot['data']['searchUrl'] = ''; /*<![CDATA[*/ $('.mceStatusbar').remove();//a hack to remove the tinyMCE status bar$(document).ready(function(){ // focus input on the search bar endcomment var activeTab = askbot['data']['activeTab']; if (inArray(activeTab, ['users', 'questions', 'tags', 'badges'])) { var searchInput = $('#keywords'); } else if (activeTab === 'ask') { var searchInput =$('#id_title'); } else { var searchInput = undefined; animateHashes(); } var wasScrolled = $('#scroll-mem').val(); if (searchInput && !wasScrolled) { searchInput.focus(); putCursorAtEnd(searchInput); } var haveFullTextSearchTab = inArray(activeTab, ['questions', 'badges', 'ask']); var haveUserProfilePage =$('body').hasClass('user-profile-page'); if ((haveUserProfilePage || haveFullTextSearchTab) && searchInput && searchInput.length) { var search = new FullTextSearch(); askbot['controllers'] = askbot['controllers'] || {}; askbot['controllers']['fullTextSearch'] = search; search.setSearchUrl(askbot['data']['searchUrl']); if (activeTab === 'ask') { search.setAskButtonEnabled(false); } search.decorate(searchInput); } else if (activeTab === 'tags') { var search = new TagSearch(); search.decorate(searchInput); } if (askbot['data']['userIsAdminOrMod']) { $('body').addClass('admin'); } if (askbot['settings']['groupsEnabled']) { askbot['urls']['add_group'] = "/s/add-group/"; var group_dropdown = new GroupDropdown();$('.groups-dropdown').append(group_dropdown.getElement()); } var userRep = $('#userToolsNav .reputation'); if (userRep.length) { var showPermsTrigger = new ShowPermsTrigger(); showPermsTrigger.decorate(userRep); } }); if (askbot['data']['haveFlashNotifications']) {$('#validate_email_alert').click(function(){notify.close(true)}) notify.show(); } var langNav = $('.lang-nav'); if (langNav.length) { var nav = new LangNav(); nav.decorate(langNav); } /*]]>*/ if (typeof MathJax != 'undefined') { MathJax.Hub.Config({ extensions: ["tex2jax.js"], jax: ["input/TeX","output/HTML-CSS"], tex2jax: {inlineMath: [["$","$"],["\$","\$"]]} }); } else { console.log('Could not load MathJax'); } //todo - take this out into .js file$(document).ready(function(){ $('div.revision div[id^=rev-header-]').bind('click', function(){ var revId = this.id.substr(11); toggleRev(revId); }); lanai.highlightSyntax(); }); function toggleRev(id) { var arrow =$("#rev-arrow-" + id); var visible = arrow.attr("src").indexOf("hide") > -1; if (visible) { var image_path = '/m/default/media/images/expander-arrow-show.gif?v=19'; } else { var image_path = '/m/default/media/images/expander-arrow-hide.gif?v=19'; } image_path = image_path + "?v=19"; arrow.attr("src", image_path); \$("#rev-body-" + id).slideToggle("fast"); } for (url_name in askbot['urls']){ askbot['urls'][url_name] = cleanUrl(askbot['urls'][url_name]); }