Diffalg.mw

Illustration of  the use of "DifferentialAlgebra" Maple package 

 

Clara Masse, John Masse and François Ollivier 

 

> with(DifferentialAlgebra); -1; with(Tools); -1
 

Building a differential ring 

> R := DifferentialRing(blocks = [lex[f], lex[g]], derivations = [x, y]); -1
 

> syst := [Differentiate(f, x, R) = `+`(`*`(2, `*`(g))), Differentiate(f, y, R) = `+`(`*`(3, `*`(g))), Differentiate(g, x, R) = `+`(`-`(`*`(2, `*`(f)))), Differentiate(g, y, R) = `+`(`-`(`*`(3, `*`(f)))...
syst := [Differentiate(f, x, R) = `+`(`*`(2, `*`(g))), Differentiate(f, y, R) = `+`(`*`(3, `*`(g))), Differentiate(g, x, R) = `+`(`-`(`*`(2, `*`(f)))), Differentiate(g, y, R) = `+`(`-`(`*`(3, `*`(f)))...
 

Computing a characteristic set 

> simplified_syst := RosenfeldGroebner(syst, R); -1
 

> Equations(simplified_syst)
 

[[`+`(g[y], `*`(3, `*`(f))), `+`(`*`(3, `*`(g[x])), `-`(`*`(2, `*`(g[y])))), `+`(g[y, y], `*`(9, `*`(g)))]] (1)
 

Computing normal forms 

> NormalForm(Differentiate(`*`(f, `*`(g)), x, R), simplified_syst)
 

[`+`(`*`(2, `*`(`^`(g, 2))), `-`(`*`(`/`(2, 9), `*`(`^`(g[y], 2)))))] (2)
 

> NormalForm(f, simplified_syst)
 

[`+`(`-`(`*`(`/`(1, 3), `*`(g[y]))))] (3)
 

>