Re: Problem of NUMERICAL constraints (Ndsolve) with Nminimize
- To: mathgroup at smc.vnet.net
- Subject: [mg100856] Re: Problem of NUMERICAL constraints (Ndsolve) with Nminimize
- From: dh <dh at metrohm.com>
- Date: Tue, 16 Jun 2009 21:52:15 -0400 (EDT)
- References: <h0vtgs$71d$1@smc.vnet.net>
Hi Anh, if I understand correctly, you want minimize a function using NMinimize and several constrains. Here is an example: ====================== fun=x^2 - (y - 1)^2 cons={x^2 + y^2 <= 4, x > 1} NMinimize[Prepend[cons, fun], {x, y}] ======================= Daniel Anh Ngoc LAI wrote: > Hello everybody, > > I have to optimize an function with numerical constraints using Nminimize. > To construct the constraints, i have to solve a system of ODEs (type): > > Sol=NDSolve[{{B'[ > t] == -(t6 + t13) B[t] -(t7 + t15 + t14*t11) F[ > t] +(1/2)*(B[t] B[t] + t11*F[t] F[t] + t12*GG[t] GG[t]) - t2, > F'[t] == -t8*F[t] - t3, > GG'[t] == -(t9 + t16) F[t] - (t10 + t17) GG[t] - t4, > A'[t] == > t5 B[t] +((t5*t7/t6) - t14) F[ > t] +(1/2)*(F[t] F[t] + GG[t] GG[t]) - t1}, {B[0] == F[0] == > GG[0] == A[0] == 0}}, {B, F, GG, A}, {t, 0, 10}][[1]] > > where t1,...,t17 are parameters to obtain. > > and then i have to use A,B,F,GG and my data to construct this constraints. > > So i use WITH (or Block) commend for it: > > f[t1_?NumericQ, t2_?NumericQ, t3_?NumericQ, t4_?NumericQ, > t5_?NumericQ, t6_?NumericQ, t7_?NumericQ, t8_?NumericQ, > t9_?NumericQ, t10_?NumericQ, t11_?NumericQ, t12_?NumericQ, > t13_?NumericQ, t14_?NumericQ, t15_?NumericQ, t16_?NumericQ, > t17_?NumericQ] := With[{...}, C] > > Here C are constraints to put on Nminimize optimization. > > I don't know how to deal with this, if C is only one constraint i have no problem with, but > here C is a list. For Mathematica, > f1[t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17] is only one > element and not a List. > > I think to another way to solve this problem which is to get A,B,F,GG by defining functions > directly with Ndsolve (then construct constraints with Data without using WITH) but i have > to evaluate a lot of time NDSOLVE on my procedure, and it take a much of time. > > That will be great if someone could give an idea. > > Thanks. > >