Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Interactive maxima question on fraction value during solve()

Context

I executed this code

var('x, k')
As(x) = (2*k/(k-1))^(-0.5) * (( x^(2/k)  - x^((k+1)/k)) )^(-0.5)
dAs(x) = As.derivative(x)
ns = solve(dAs(x), x)
print ns

which results in

[
(1/(x^((k - 2)/k))) == 1/2*(k + 1)*x^(1/k)
]

My goal is the have sage solve this equation for x, where the result should look something like

x == ( 2/(k+1) )^( k/(k-1) )

The Problem

This code

myEqs = [ (1/(x^((k - 2)/k))) == 1/2*(k + 1)*x^(1/k) ]
assume(k>1)
solve(myEqs, x)

results in

       
Traceback (click to the left of this block for traceback)
...
TypeError: Computation failed since Maxima requested additional constraints (try the command 'assume(k-1)/k>0)' before integral or limit evaluation, for example):
Is (k-1)/k an integer?

But the suggested assume(k-1)/k>0) isn't even valid syntax.

My question: How can I cover this question with assume() so that maxima doesn't have to ask (and hence fail because it doesn't support interactive communication with another process)?