Re: Can Mathematica Do This?
- To: mathgroup at smc.vnet.net
- Subject: [mg8255] Re: Can Mathematica Do This?
- From: "Seth J. Chandler" <SChandler at uh.edu>
- Date: Sat, 23 Aug 1997 01:58:52 -0400
- Organization: University of Houston Law Center
- Sender: owner-wri-mathgroup at wolfram.com
A member wrote in . . . Thanks to those who e-mailed me with some suggestions. Although, I am now a little more familiar with Mathematica, the problem I need to solve seems to be too tough for Mathematica, even though it "looks" like a simple problem. I tried FindMinimum, NDsolve, among other attempts, and I either get an error of the form ".... something is not a real number", or Mathematica takes the command but never returns an answer! Here is the problem in case some kind soul wants to give it a try: Find the minimum of f in c and h f = (c d1+d2) r (2/((c+1) (h-c+1))) + d3 h/2 + (c d4+d5) r (2/((c+2)*(h-c+1))) Note that c <= h, and c,h >=0. If it helps, h < 10,000. The d's are real numbers in the range 0 to 1.0, and r is real in the range 0 to 100,000. Dear Novice, I'm not sure I qualify as a kind soul, but I did get Mathematica 3.0.1 to produce a result in terms of Root objects. Root objects are discussed in the 3.0 book and in the help file that comes with the program. I then did a numeric example and found that the answer met your criteria. Hope this helps. In[5]:= f = (c d1+d2) r (2/((c+1) (h-c+1))) + d3 h/2 + (c d4+d5) r (2/((c+2)*(h-c+1))) Out[5]= \!\(\(d3\ h\)\/2 + \(2\ \((c\ d1 + d2)\)\ r\)\/\(\((1 + c)\)\ \((1 - c + h)\)\) + \(2\ \((c\ d4 + d5)\)\ r\)\/\(\((2 + c)\)\ \((1 - c + h)\)\)\) In[22]:= Shallow[answer=Solve[{D[f,h]==0,D[f,c]==0},{c,h}],6] Out[22]//Shallow= {{h\[Rule]Power[\[LeftSkeleton]2\[RightSkeleton]] + \[LeftSkeleton]6\[RightSkeleton], c\[Rule]Root[\[LeftSkeleton]1\[RightSkeleton]&,1]},{ h\[Rule]Power[\[LeftSkeleton]2\[RightSkeleton]] + \[LeftSkeleton]6\[RightSkeleton], c\[Rule]Root[\[LeftSkeleton]1\[RightSkeleton]&,2]},{ h\[Rule]Power[\[LeftSkeleton]2\[RightSkeleton]] + \[LeftSkeleton]6\[RightSkeleton], c\[Rule]Root[\[LeftSkeleton]1\[RightSkeleton]&,3]},{ h\[Rule]Power[\[LeftSkeleton]2\[RightSkeleton]] + \[LeftSkeleton]6\[RightSkeleton], c\[Rule]Root[\[LeftSkeleton]1\[RightSkeleton]&,4]},{ h\[Rule]Power[\[LeftSkeleton]2\[RightSkeleton]] + \[LeftSkeleton]6\[RightSkeleton], c\[Rule]Root[\[LeftSkeleton]1\[RightSkeleton]&,5]},{ h\[Rule]Power[\[LeftSkeleton]2\[RightSkeleton]] + \[LeftSkeleton]6\[RightSkeleton], c\[Rule]Root[\[LeftSkeleton]1\[RightSkeleton]&,6]},{ h\[Rule]Power[\[LeftSkeleton]2\[RightSkeleton]] + \[LeftSkeleton]6\[RightSkeleton], c\[Rule]Root[\[LeftSkeleton]1\[RightSkeleton]&,7]},{ h\[Rule]Power[\[LeftSkeleton]2\[RightSkeleton]] + \[LeftSkeleton]6\[RightSkeleton], c\[Rule]Root[\[LeftSkeleton]1\[RightSkeleton]&,8]}} In[12]:= numericexample=answer/.{d1->0.3,d2->0.4,d3->0.4,d4->0.5,d5->0.9,r->50000} Out[12]= {{h\[Rule]-641.738,c\[Rule]-6.93429},{h\[Rule]-449.714,c\[Rule]-1.50028},{ h\[Rule]444.714,c\[Rule]-1.49972},{h\[Rule]636.738,c\[Rule]3.93429},{ h\[Rule]626.564\[InvisibleSpace]-5.83327 I,c\[Rule]-4.21729-4.65961 I},{ h\[Rule]626.564\[InvisibleSpace]+5.83327 I,c\[Rule]-4.21729+4.65961 I},{ h\[Rule]-631.564-5.83327 I,c\[Rule]1.21729\[InvisibleSpace]-4.65961 I},{ h\[Rule]-631.564+5.83327 I,c\[Rule]1.21729\[InvisibleSpace]+4.65961 I}} In[17]:= Select[numericexample, Re[#[[1,2]]]>0 && Re[#[[2,2]]]>0 && Im[#[[1,2]]]==0 && Im[#[[2,2]]]==0&] Out[17]= {{h\[Rule]636.738,c\[Rule]3.93429}}