Re: Decompose function into one function for each variable
- To: mathgroup at smc.vnet.net
- Subject: [mg80855] Re: Decompose function into one function for each variable
- From: tomfabtastic at hotmail.com
- Date: Tue, 4 Sep 2007 03:46:50 -0400 (EDT)
- References: <fbaqnl$qba$1@smc.twtelecom.net><fbdnd3$ppp$1@smc.twtelecom.net>
On Sep 2, 5:06 pm, Szabolcs <szhor... at gmail.com> wrote: > tomfabtas... at hotmail.com wrote: > > Hello, > > > I have a function : > > > k[lgd_, pd_] := A[lgd] * B[pd] * C[pd] - D[lgd] * E[pd] * C[pd] > > > and I woulud like to decompose the function into : > > > k[lgd_, pd_] = Y[lgd] + Z[pd] > > > Any ideas how I can make this decomposition ? > > > Thanks, > > Tom > > It is generally (mathematically) impossible to rewrite a function of the > form > k(lgd, pd) = A(lgd)*B(pd)*C(pd) - D(lgd)*E(pd)*C(pd) > to > k(lgd, pd) = Y(lgd) + Z(pd) > > E.g. when you change the value of pd, the change in Y(lgd) + Z(pd) does > not depend on the value of lgd. This is not generally true for > A(lgd)*B(pd)*C(pd) - D(lgd)*E(pd)*C(pd). > > But it is possible that I did not understand your question correctly > (and its connection to Mathematica) ... > > Szabolcs The function I am looking at is formula for the Basel II capital ratio : correl[pd_] :=> 0.12*(1-Exp[-50*pd])/(1-Exp[-50])+0.24*(1-(1- Exp[-50*pd])/(1-Exp[-50])); BB[pd_] :=(0.11852-0.05478*Log[pd])^2; baselCalc[pd_, lgd_, mat_] :=(lgd*CDF[NormalDistribution[0,> 1], ((InverseCDF[NormalDistribution[0,> 1],pd] +Sqrt[correl[pd]]*InverseCDF[NormalDistribution[0,> 1],0.999])/Sqrt[1- correl[pd]])]-(lgd*pd))*(1+(mat-2.5)*BB[pd])/(1-1.5*BB[pd]) correl and BB feed into the main equation, baselCalc. Setting mat=1,baselCalc has only two parameters, pd and lgd. I want to know what the impact of pd and lgd are in baselCalc. For example baselCalc[0.0176, 0.45, 1.] = 0.073247. But how much of the 0.073247 is due to pd and how much due to lgd ? Thanks - not sure if this is possible, Tom