4 svar
68 visningar
lund är nöjd med hjälpen!
lund 278
Postad: 3 dec 2020

Symbolisk derivering

Hej, Jag vill utföra en symbolisk derivering i python på ett visst polynom p = 2+ x2 och jag har fått till en program som utför detta korrekt. Men just nu är p (polynomet) definierat enligt nedan och jag vill istället ha den definierad som en lista p = [2,0,1] och jag vill även att dess output ska bli en lista enligt [0,2] men med min nedanstående programmering blir den 2x. Hur kan jag ordna detta?

import sympy as sym

sym.Symbol('x')

p = 2 + x ** 2 # vill definiera denna som en lista p = [2,0,1]

print(sym.diff(p))


>>> Out: 2*x # vill ha denna output som [0,2] 

Då kanske numpy.polyder är bättre lämpad än sympy?

lund 278
Postad: 3 dec 2020

Ja det tänkte jag också först men övergår det inte till en numerisk derivering då istället för en symbolisk?

Är det en inexakt derivata du vill undvika? Jag vågar nog påstå att polyder inte räknar approximativt, utan att den tar fram de exakta koefficienterna enligt deriveringsreglerna. Polynom är ju lättderiverade - koefficienten multipliceras med exponenten, exponenten minskar med ett. Det är inga problem att göra den processen exakt i en dator (iallafall om polynomet har heltalskoefficienter), så det finns inget skäl till varför den skulle ta till en generell, approximativ deriveringsmetod.

Sen om det kallas "symbolisk derivering" vet jag inte. Den använder ju inga symboler (som 'x'). 

lund 278
Postad: 3 dec 2020
Skaft skrev:

Är det en inexakt derivata du vill undvika? Jag vågar nog påstå att polyder inte räknar approximativt, utan att den tar fram de exakta koefficienterna enligt deriveringsreglerna. Polynom är ju lättderiverade - koefficienten multipliceras med exponenten, exponenten minskar med ett. Det är inga problem att göra den processen exakt i en dator (iallafall om polynomet har heltalskoefficienter), så det finns inget skäl till varför den skulle ta till en generell, approximativ deriveringsmetod.

Sen om det kallas "symbolisk derivering" vet jag inte. Den använder ju inga symboler (som 'x'). 

Okej, tusen tack! Jag kollar på numpy då istället!

Svara Avbryt
Close