Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Why solve function can't solve system of which can be solved

This returns nothing

reset();
var('i_B10 i_B6 i_B11 i_C10 i_C6 i_C11 beta i_in i_out i_E10 i_E6 i_E11');
solve([
  i_C10==i_B10*beta,
  i_E10==i_C10+i_B10,

  i_C6==i_B6*beta,
  i_E6==i_B6+i_C6,

  i_C11==i_B11*beta,
  i_E11==i_B11+i_C11,

  i_E10==i_B11+i_E6,

  i_E11+i_E6==i_in+i_out,

  i_B11==i_B6,
  i_in==i_B10+i_C11,
  i_out==i_C10

], i_out)

[]

But it can be solved manually

reset();
var('i_B10 i_B6 i_B11 i_C10 i_C6 i_C11 beta i_in i_out i_E10 i_E6 i_E11');

i_C10=i_B10*beta
i_E10=i_C10+i_B10
i_C6=i_B6*beta
i_E6=i_B6+i_C6
i_C11=i_B11*beta
i_E11=i_B11+i_C11
i_B10=(i_E10==i_B11+i_E6).solve(i_B10)[0].right()
i_B10=i_B10(i_B11=i_B6)
i_C10=i_C10(i_B10=i_B10)
i_B6=solve(i_in==i_B10+i_C11(i_B11=i_B6), i_B6)[0].right()
i_out=i_C10(i_B6=i_B6)

i_out=i_out.simplify_rational()
i_out

(beta^2 + 2beta)i_in/(beta^2 + 2*beta + 2)

Why "solve" doesn't work? Do I need to set some assumptions or etc? Or is because i_out depends only on one variable? How to make "solve" function work in this case?

Why solve function can't solve system of which can be solved

This returns nothing

reset();
var('i_B10 i_B6 i_B11 i_C10 i_C6 i_C11 beta i_in i_out i_E10 i_E6 i_E11');
solve([
  i_C10==i_B10*beta,
  i_E10==i_C10+i_B10,

  i_C6==i_B6*beta,
  i_E6==i_B6+i_C6,

  i_C11==i_B11*beta,
  i_E11==i_B11+i_C11,

  i_E10==i_B11+i_E6,

  i_E11+i_E6==i_in+i_out,

  i_B11==i_B6,
  i_in==i_B10+i_C11,
  i_out==i_C10

], i_out)

[]

But it can be solved manually

reset();
var('i_B10 i_B6 i_B11 i_C10 i_C6 i_C11 beta i_in i_out i_E10 i_E6 i_E11');

i_C10=i_B10*beta
i_E10=i_C10+i_B10
i_C6=i_B6*beta
i_E6=i_B6+i_C6
i_C11=i_B11*beta
i_E11=i_B11+i_C11
i_B10=(i_E10==i_B11+i_E6).solve(i_B10)[0].right()
i_B10=i_B10(i_B11=i_B6)
i_C10=i_C10(i_B10=i_B10)
i_B6=solve(i_in==i_B10+i_C11(i_B11=i_B6), i_B6)[0].right()
i_out=i_C10(i_B6=i_B6)

i_out=i_out.simplify_rational()
i_out

(beta^2 + 2beta)i_in/(beta^2 + 2*beta + 2)

Why "solve" doesn't work? Do I need to set some assumptions or etc? Or is because i_out depends only on one variable? How to make "solve" function work in this case?

Why solve function can't solve system of which can be solvedsolved manually

This returns nothing

reset();
an empty list:

reset()
var('i_B10 i_B6 i_B11 i_C10 i_C6 i_C11 beta i_in i_out i_E10 i_E6 i_E11');
i_E11')
solve([
  i_C10==i_B10*beta,
  i_E10==i_C10+i_B10,

  i_C6==i_B6*beta,
  i_E6==i_B6+i_C6,

  i_C11==i_B11*beta,
  i_E11==i_B11+i_C11,

  i_E10==i_B11+i_E6,

  i_E11+i_E6==i_in+i_out,

  i_B11==i_B6,
  i_in==i_B10+i_C11,
  i_out==i_C10
i_C10 == i_B10 * beta,
  i_E10 == i_C10 + i_B10,

  i_C6 == i_B6 * beta,
  i_E6 == i_B6 + i_C6,

  i_C11 == i_B11 * beta,
  i_E11 == i_B11 + i_C11,

  i_E10 == i_B11 + i_E6,

  i_E11 + i_E6 == i_in + i_out,

  i_B11 == i_B6,
  i_in == i_B10 + i_C11,
  i_out == i_C10

], i_out)

[]

Output:

[]

But it can be solved manually

reset();
reset()
var('i_B10 i_B6 i_B11 i_C10 i_C6 i_C11 beta i_in i_out i_E10 i_E6 i_E11');

i_C10=i_B10*beta
i_E10=i_C10+i_B10
i_C6=i_B6*beta
i_E6=i_B6+i_C6
i_C11=i_B11*beta
i_E11=i_B11+i_C11
i_B10=(i_E10==i_B11+i_E6).solve(i_B10)[0].right()
i_B10=i_B10(i_B11=i_B6)
i_C10=i_C10(i_B10=i_B10)
i_B6=solve(i_in==i_B10+i_C11(i_B11=i_B6), i_E11')

i_C10 = i_B10 * beta
i_E10 = i_C10 + i_B10
i_C6 = i_B6 * beta
i_E6 = i_B6 + i_C6
i_C11 = i_B11 * beta
i_E11 = i_B11 + i_C11
i_B10 = (i_E10 == i_B11 + i_E6).solve(i_B10)[0].right()
i_B10 = i_B10(i_B11=i_B6)
i_C10 = i_C10(i_B10=i_B10)
i_B6 = solve(i_in == i_B10 + i_C11(i_B11=i_B6), i_B6)[0].right()
i_out=i_C10(i_B6=i_B6)

i_out=i_out.simplify_rational()
i_out = i_C10(i_B6=i_B6)

i_out = i_out.simplify_rational()
i_out

Output:

(beta^2 + 2beta)i_in/(beta^2 2*beta)*i_in/(beta^2 + 2*beta + 2)

2)

Why "solve" solve doesn't work? Do I need to set some assumptions or etc? etc? Or is because i_out depends only on one variable? variable? How to make "solve" function work in this case?