Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2000
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2000

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: #1 FindRoot and protected variables? #2 Am I using the wrong method?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg21980] Re: [mg21968] #1 FindRoot and protected variables? #2 Am I using the wrong method?
  • From: "Benjamin A. Jacobson" <bjacobson at illumitech.com>
  • Date: Mon, 7 Feb 2000 13:02:32 -0500 (EST)
  • Sender: owner-wri-mathgroup at wolfram.com

I didn't look through your code in detail--it's very long--but is it
possible there should be a comma between the 2 elements:

{a[2,5],0.95}

{a[2,6],0.55}

For me, a "Tag ... is protected" message usually means a simple syntax
error like that.

Ben Jacobson
Illumitech Inc.

At 03:02 AM 2/7/00 -0500, you wrote:
>
>Hello all.
>
>I'm working with some optimal control theory in economics and I'm having 
>some problems with the solutions of simultanious
>equations. The program, which isn't very long and is intuitivelly for 
>non-economists, is reported after these questions. I hope some of you 
>can help me!!!!
>
>In a much smaller setup every thing works fine, but in the real setup 
>with some 8x8 matrices the FindRoot[] writes
>that some of the elements in the matrices is Protected. I used the 
>?v[2,5] (v[2,5] is the element wich it claims to be protected) but with 
>no result. It does not recognize the parameter.
>I have also tried to do a Unprotect[v[2,5]], but with no luck. I tried 
>with some different names for the matrices, but still with no luck.
>
>I have also tried the ordinary NSolve[] command, but the system is too 
>big and the computer takes a lot of time working on this problem. I'm 
>working on a Penthium I 200mmx so it should not be a computer problem 
>but instead because the resulting equations is highly non-linear. The 
>ConstrainedMax[] command is not working eather, since it will not accept 
>equalities as constraints.
>
>I have to solve the system like 300 times with different parameters 
>within 1.st of april. So I only want Mathematica to find the one of the 
>solution which I'm searching for. Or find a algorithm that works faster.
>
>My quistions is:
>
># 1:What does it (Mathematica) mean by this  :
>FindRoot::"write": "Tag Times in (a[2, 5] a[2, 6] is Protected. 
>
>Is it protected by default or have I done it in my program (not meaning 
>to)
>
># 2 Am I using a wrong method or command - FindRoot[]. Is the Global 
>Optimum package better for this kind of problems. And isn't there a more 
>simple way to write the the FindRoot[] than I have done (it was the only 
>iterating process which worked for me - see buttom of page).
>
>#3 I have looked at the list of quistions to the Mathgroup on the 
>internet. Some economists dealing with optimal control problems has 
>asked the quistion if mathematica is usuable for these problems or some 
>other programs is better (like Gauss). But I have not seen any answers 
>on these quistions.
>I hope some of you will react on my quistions. Regards Christian von 
>Pein - Den Danske Bank/Copenhagen University
>
>This reads a list of 54 caracters. Parameters from  som regressions 
>(unequal - no. 1,3,5 etc) and standard diviations of parameters (egual - 
>2,4,6 etc.)
>
>m = ReadList["c:\var7999.prn",Number]
>
>k = 1;
>
>Sets up the model parameters : Matrices A and B
>
>A = 
>{{m[[k]],m[[k+2]],m[[k+4]],m[[k+6]],m[[k+8]],m[[k+10]],m[[k+14]],m[[k+16]
>]},{1,0,0,0,0,0,0,0},{0,1,0,0,0,0,0,0},{m[[k+18]],m[[k+20]],m[[k+22]],m[[
>k+24]],m[[k+26]],m[[k+28]],m[[k+32]],m[[k+34]]},{0,0,0,1,0,0,0,0},{0,0,0,
>0,1,0,0,0},{0,0,0,0,0,0,0,0},{0,0,0,0,0,0,1,0}};
>
>B = {{m[[k+12]]},{0},{0},{m[[k+30]]},{0},{0},{1},{0}};
>
>Defines some variance-matrices
>
>{m[[k+1]]^2,m[[k+3]]^2,m[[k+5]]^2,m[[k+7]]^2,m[[k+9]]^2,m[[k+11]]^2,m[[k+
>15]]^2,m[[k+17]]^2};
>
>SA11 = DiagonalMatrix[%];
>
>{m[[k+19]]^2,m[[k+21]]^2,m[[k+23]]^2,m[[k+25]]^2,m[[k+27]]^2,m[[k+29]]^2,
>m[[k+33]]^2,m[[k+35]]^2};
>
>SA22 = DiagonalMatrix[%];
>
>Discount factor:
>
>d = 0.987;
>
>Defining two matrices
>
>Q = DiagonalMatrix[{1,0,0,1,0,0,0,0}];
>
>V = Array[a,{8,8}];
>
>This is the equations I am interested in: e is the main attraction
>
>e = - Inverse[Transpose[B] . (V + Transpose[V]) . B + 2 v[1,1] 
>(m[[k+13]]^2) + 2 v[4,4] (m[[k+31]]^2)] . (Transpose[B] . (V + 
>Transpose[V]) . A );
>
>and e can be found numerically by iterating on the Ricatti-equation were 
>H = V
>
>H = Q + d Transpose[A + B . e] . V . (A + B . e) + d v[1,1] (SA11 + 
>(Transpose[e] ( m[[k+13]]^2)) . e) + d v[4,4] (SA22 + (Transpose[e] 
>(m[[k+31]]^2)) . e);
>
>To get solutions I could make NSolve[] but this takes a couple of days 
>(at least three), so I try to find the relevant solution by giving some 
>start values: 
>
>(Go to buttom to find how Mathematica is reacting)
>
>FindRoot[{V[[1,1]] == H[[1,1]], V[[1,2]] == H[[1,2]],V[[1,3]] 
>== H[[1,3]],
>
>V[[1,4]] == H[[1,4]],V[[1,5]] == H[[1,5]]
>
>,V[[1,6]] == H[[1,6]],V[[1,7]] == H[[1,7]],V[[1,8]] == 
>H[[1,8]],
>
>V[[2,1]] == H[[2,1]],V[[2,2]] == H[[2,2]],V[[2,3]] == 
>H[[2,3]]
>
>,V[[2,4]] == H[[2,4]],V[[2,5]] == H[[2,5]],V[[2,6]] == 
>H[[2,6]],
>
>V[[2,7]] == H[[2,7]],V[[2,8]] == H[[2,8]],V[[3,1]] == 
>H[[3,1]]
>
>,V[[3,2]] == H[[3,2]],V[[3,3]] == H[[3,3]],V[[3,4]] == 
>H[[3,4]],
>
>V[[3,5]] == H[[3,5]],V[[3,6]] == H[[3,6]],V[[3,7]] == 
>H[[3,7]],
>
>V[[3,8]] == H[[3,8]],V[[4,1]] == H[[4,1]],V[[4,2]] == 
>H[[4,2]],
>
>V[[4,3]] == H[[4,3]],V[[4,4]] == H[[4,4]],V[[4,5]] == 
>H[[4,5]],
>
>V[[4,6]] == H[[4,6]],V[[4,7]] == H[[4,7]],V[[4,8]] == 
>H[[4,8]],
>
>V[[5,1]] == H[[5,1]],V[[5,2]] == H[[5,2]],V[[5,3]] == 
>H[[5,3]],
>
>V[[5,4]] == H[[5,4]],V[[5,5]] == H[[5,5]],V[[5,6]] == 
>H[[5,6]],
>
>V[[5,7]] == H[[5,7]],V[[5,8]] == H[[5,8]],V[[6,1]] == 
>H[[6,1]],
>
>V[[6,2]] == H[[6,2]],V[[6,3]] == H[[6,3]],V[[6,4]] == 
>H[[6,4]],
>
>V[[6,5]] == H[[6,5]],V[[6,6]] == H[[6,6]],V[[6,7]] == 
>H[[6,7]],
>
>V[[6,8]] = H[[6,8]],V[[7,1]] == H[[7,1]],V[[8,2]] == 
>H[[7,2]],
>
>V[[7,3]] == H[[7,3]],V[[7,4]] == H[[7,4]],V[[7,5]] == 
>H[[7,5]],
>
>V[[7,6]] == H[[7,6]],V[[7,7]] == H[[7,7]],V[[7,8]] == 
>H[[7,8]],
>
>V[[8,1]] == H[[8,1]],V[[8,2]] == H[[8,2]],V[[8,3]] == 
>H[[8,3]],
>
>V[[8,4]] == H[[8,4]],V[[8,5]] == H[[8,5]],V[[8,6]] == 
>H[[8,6]],
>
>V[[8,7]] == H[[8,7]],V[[8,8]] == 
>H[[8,8]]},{a[1,1],0.5},{a[1,2],0.6},{
>
>a[1,3],0.5},{a[1,4],0.65},{a[1,5],0.5},{a[1,6],0.85},{a[1,7],0.5},{a[1,8]
>,
>
>0.5},{a[2,1],0.35},{a[2,2],0.15},{a[2,3],0.55},{a[2,4],
>
>0.85},{a[2,5],0.95}
>
>{a[2,6],0.55},{a[2,7],0.5},{a[2,8],0.5},{a[3,1],0.5},{a[3,2],0.5},{a[3,3]
>,
>
>0.5},{a[3,4],0.5},{a[3,5],0.5},{a[3,6],0.5},{a[3,7],0.5},{a[3,8],0.5},{
>
>a[4,1],0.5},{a[4,2],0.5},{a[4,3],0.5},{a[4,4],0.5},
>
>{a[4,5],0.5},{a[4,6],0.5},{a[4,7],0.5},{a[4,8],0.5},{a[5,1],0.5},{a[5,2],
>
>
>0.5},{a[5,3],0.5},{a[5,4],0.5},{a[5,5],0.5},{a[5,6],0.5},{a[5,7],0.5},{
>
>a[5,8],0.5},{a[6,1],0.5},{a[6,2],0.5},{a[6,3],0.5},{a[6,4],0.5},{a[6,5],
>
>0.5},{a[6,6],0.5},{a[6,7],0.5},{a[6,8],0.5},{a[7,1],0.5},{a[7,2],0.5},{
>
>a[7,3],0.5},{a[7,4],0.5},{a[7,5],0.5},{a[7,6],0.5},{a[7,7],0.5},{a[7,8],
>
>0.5},{a[8,1],0.5},{a[8,2],0.5},{a[8,3],0.5},{a[8,4],0.5},{a[8,5],0.5},{
>
>a[8,6],0.5},{a[8,7],0.5},{a[8,8],0.5}];
>
>FindRoot::"write": "Tag Times in (a[2, 5] a[2, 6] is Protected. 
>
>e/.%
>
>


  • Prev by Date: Re: Why doesn't Mathematica know this?
  • Next by Date: Q: Scroll-mouse support for Mathematica 4 under NT4?
  • Previous by thread: #1 FindRoot and protected variables? #2 Am I using the wrong method?
  • Next by thread: Expectations