0

If I have a function:

y = 2a + 5b + c

It can be easily seen that b is the most important parameter, next a and last c.

More explaination:

Let`s say we have a function $f(a,b,c,\dots,z)$. It doesn't matter what is the body of the function, but we consider only basic mathematical functions.
And the question is:

How fast does $f(a,b,c,\dots,z)$ grow, when $a$ argument is growing?
How fast does $f(a,b,c,\dots,z)$ grows, when $b$ argument is growing?

It's easy to rate arguments when we do it manually, we know how different functions grow and we can pick the most important argument easily (in finite time).

Is there any automatic method to rate it?

Artes
  • 57,212
  • 12
  • 157
  • 245
marxin
  • 101
  • 1
  • The alphabetic order could be useful. Rename your parameters so that the most important ones will have 'lower' letters. – Peltio Oct 25 '13 at 12:14
  • No no, its only an example. Here is very easy to rate which one is most important. But lets say i have function with 100 parameters, used in many different ways (sin, exp, power). Its not easy then to rate it by hand (still possible, but time consuming). – marxin Oct 25 '13 at 12:18
  • Ah, now I get it. You want to rate the terms in term of their 'weight'. Do you have bounds for the values of the parameters? 5b can 'weight' less than c if b is bound to be less than .001 and c can be 1000. – Peltio Oct 25 '13 at 12:22
  • Yeah. Probably i didnt make myself clear, im not really good at english ;) I meant 'weight'. In most basic case lets take that there are no bounds. – marxin Oct 25 '13 at 12:27
  • Now we have to discern what this weight could be. Is it the maximum value of each term over the range of values of the parameters? Or is it some sort of integral norm (the integral the of the term (or its square) over the range of the parameters? Will Sin[b] weight more or less than Sin[1/b], for example? – Peltio Oct 25 '13 at 12:33
  • We can take that sin(b) has same weight as sin(1/b). – marxin Oct 25 '13 at 12:43
  • How about using the derivative? If c and b each change a little, then y is affected by the change in b more than it is affected by the change in c. – Timothy Wofford Oct 25 '13 at 13:02
  • 1
    It sounds like the question might be about the order of growth as the variables tend to infinity. Even if that's correct I don't understand exactly what's being asked. E.g. Sin[a] Exp[b] + c^100. Usually b dominates the growth, but not when Sin[a] is zero. That's ignoring the independence of the variables b and c, which is another big issue. – Michael E2 Oct 25 '13 at 13:18
  • Yeah, probably its not so easy to resolve such case (sin can be also negative ;). I must think about it some more time ;) – marxin Oct 25 '13 at 14:11
  • Perhaps a more methodical approach to this kind of question uses the big-O (or little-O) notations to distinguish the max rate at which a function grows. This is discussed here http://mathematica.stackexchange.com/q/8177/1783 and more generally here http://en.wikipedia.org/wiki/Big_O_notation – bill s Oct 25 '13 at 15:04

1 Answers1

1

How fast does f(a,b,c,…,z) grow, when a argument is growing? How fast does f(a,b,c,…,z) grow, when b argument is growing?

These rates are given by the derivatives

D[f[a,b,c,...,z],a]
D[f[a,b,c,...,z],b]

This may give functions of the arguments a,b,...,z which just tells you that "which argument is more important" depends on the values of the arguments and the relationships between them.

parameters={a,b,c};
sgnList=D[f@@parameters,{parameters}]
absList=Abs/@D[f@@parameters,{parameters}]

The sgnList includes whether f increases or decreases as each parameter increases. The absList just includes tells how much f changes as each parameter changes.

Once you've decided on your ranking criteria, then you can use Sort on the appropriate list (assuming you have numerical values).

Timothy Wofford
  • 3,803
  • 2
  • 19
  • 24