Ask Your Question
0

simple numerical solve (2-variables!!)

asked 12 years ago

mattias gravatar image

updated 12 years ago

Hello,

Thanks for the help, I'm trying to move from Mathematica to Sage, but I'm still having some trouble with the basics. Specifically, I'm moving from 1-var to 2-var numerical optimization/solver. I want to optimize function g or, equivalently, solve the system of first-order conditions, f. So far, I have not been able to get any of the scipy routines to work. Is there a simple way to do this? (Note: the objective function is concave wrt to both arguments.)

Thanks! jv

Constants

y_a = 50 y_b = 50 x = 40 alpha_a = .2 alpha_b = .2

Functions

v(n)= n^.5 v1(n) = derivative(v(n),n) u(n)= n^.5 u1(n) = derivative(u(n),n)

Variables

var('g_a') var('x_a')

Optimization (over [0, x])

g = (v(g_a+alpha_b(x-g_a))-u(y_a)+u(y_a-x_a))(v(x-g_a+alpha_a*(g_a))-u(y_b)+u(y_b-(x-x_a)))

f1 = ((1-alpha_b)v1(g_a+alpha_b(x - g_a)))/((1-alpha_a)v1(x-g_a+alpha_a(g_a)))==(v(g_a+alpha_b(x-g_a))-u(y_a)+u(y_a-x_a))/(v(x-g_a+alpha_a(g_a))-u(y_b)+u(y_b-(x-x_a)))

f2 = (u1(x_a)/u1(x-x_a)) == (v(g_a+alpha_b(x-g_a))-u(y_a)+u(y_a-x_a))/(v(x-g_a+alpha_a(g_a))-u(y_b)+u(y_b-(x-x_a)))

f(g_a, x_a) = (f1, f2)

Preview: (hide)

Comments

2

Did you completely change your question? If you have another question to ask, please revert this one to its first version and ask your second question as a separate topic.

niles gravatar imageniles ( 12 years ago )
1

Hi mattias. If you restore the first question and ask the second as a separate one I can show how to obtain (20,20) as the answer

achrzesz gravatar imageachrzesz ( 12 years ago )

2 Answers

Sort by » oldest newest most voted
2

answered 12 years ago

achrzesz gravatar image

updated 12 years ago

var('g_a')
eq=g_a == -31375155/31496372*sqrt(-4/5*g_a + 1) + 31375155/31496372*sqrt(4/5*g_a + 8) - 35/8
solve(eq,g_a,to_poly_solve=True)
[g_a == (-35/8)]
bool(eq.subs(g_a=-35/8))
#True
Preview: (hide)
link
1

answered 12 years ago

niles gravatar image

updated 12 years ago

What function are you using to do this? simplify? Showing us a minimal example might be helpful.

If you're not using it already, I recommend find_root for numerical solutions to 1-variable equations.

As far as I can tell, Maxima is used primarily for symbolic manipulations in Sage, and other things are used for numerical optimization. So if you're using a function that uses Maxima, you might only get symbolic output.

Preview: (hide)
link

Comments

Thanks, this is exactly what I was looking for. I was using solve with a rather messy function. After a bit of troubleshooting I was able to get find_root to work for me.

mattias gravatar imagemattias ( 12 years ago )

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

Stats

Asked: 12 years ago

Seen: 1,099 times

Last updated: Sep 20 '12