Ticket #11842 (closed defect: duplicate)

Opened 20 months ago

Last modified 5 days ago

substitute_function doesn't work as expected in many cases

Reported by: mjo Owned by: burcin
Priority: major Milestone: sage-duplicate/invalid/wontfix
Component: symbolics Keywords:
Cc: Work issues:
Report Upstream: N/A Reviewers: Burcin Erocal
Authors: Merged in:
Dependencies: Stopgaps:

Description (last modified by mjo) (diff)

I'm working on polynomial interpolation at the moment, and these are starting to hurt. Most of them have workarounds, but there don't seem to be any for the expressions involving derivatives.

I've also tried with subs() and the like, but one step at a time.

from sage.all import *


# 1. Fails.
x = var('x')
f = function('f', x)
g = function('g', x)
p = f
print p.substitute_function(f, g) # Outputs "f(x)"



# 2. Fails.
x = var('x')
f = function('f')
g = function('g')
p = f(x)
print p.substitute_function(f(x), g(x)) # Outputs "f(x)"



# 3. Works.
x = var('x')
f = function('f')
g = function('g')
p = f(x)
print p.substitute_function(f, g) # Outputs "g(x)"



# 4. Fails.
x = var('x')
f = function('f')
g = function('g')
p = f(1)
print p.substitute_function(f(1), g(1)) # Outputs "f(1)"



# 5. Works.
x = var('x')
f = function('f')
g = function('g')
p = f(1)
print p.substitute_function(f, g) # Outputs "g(1)"



# 6. Fails.
x = var('x')
f = function('f', x)
g = function('g', x)
p = f.diff()
print p.substitute_function(f, g) # Outputs "D[0](f)(x)"



# 7. Fails.
x = var('x')
f = function('f', x)
g = function('g', x)
p = f.diff()
print p.substitute_function(f(x), g(x)) # Outputs "D[0](f)(x)"



# 8. Works.
x = var('x')
f = function('f')
g = function('g')
p = f(x).diff()
print p.substitute_function(f, g) # Outputs "D[0](g)(x)"



# 9. Fails.
x = var('x')
f = function('f')
g = function('g')
p = f(x).diff()(1)
print p.substitute_function(f(x).diff(), g(x).diff()) # Outputs "D[0](f)(1)"



# 10. Works..
x = var('x')
f = function('f')
g = function('g')
p = f(x).diff()(1)
print p.substitute_function(f, g) # Prints D[0](g)(1).

Change History

comment:1 Changed 17 months ago by mjo

  • Milestone changed from sage-4.8 to sage-duplicate/invalid/wontfix

It looks like I accidentally duped #6480 here.

comment:2 Changed 16 months ago by burcin

  • Status changed from new to needs_review
  • Reviewers set to Burcin Erocal

comment:3 Changed 16 months ago by burcin

  • Status changed from needs_review to positive_review

comment:4 Changed 15 months ago by jdemeyer

  • Status changed from positive_review to closed
  • Resolution set to duplicate

comment:5 Changed 5 days ago by mjo

  • Description modified (diff)

comment:6 Changed 5 days ago by mjo

  • Description modified (diff)
Note: See TracTickets for help on using tickets.