"Total" EH - incorporating different damage types into EH

Warning: Theorycraft inside.

Moderators: Fridmarr, Worldie, Aergis, theckhd

Re: "New EH" - incorporating different damage types into EH

Postby theckhd » Tue Dec 01, 2009 6:48 pm

Xenix wrote:There are, however, some times where the question is "Is dA armor + dR resistance overall better than dS stam for a given fight" (e.g. the Onyxia resist ring), or similar questions for resist vs. armor, resist + health vs. armor, etc. In that case you need a coupled formula between all three variables, which is one use for the formula I posted.

In that case, you just convert dA and dR to stamina equivalents using those two formulas and compare to dS.

I'm not saying there's no value in having the fundamental formula somewhere, and it's certainly more useful for matlab situations. But in reality, I don't see many people other than you or I firing up matlab to do calculations with it. :)
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of Grehn|Skipjack.
MATLAB 5.x, Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty
User avatar
theckhd
Moderator
 
Posts: 7851
Joined: Thu Jul 31, 2008 3:06 pm
Location: Harrisburg, PA

Re: "New EH" - incorporating different damage types into EH

Postby Xenix » Tue Dec 01, 2009 7:10 pm

theckhd wrote:In that case, you just convert dA and dR to stamina equivalents using those two formulas and compare to dS.

I'm not saying there's no value in having the fundamental formula somewhere, and it's certainly more useful for matlab situations. But in reality, I don't see many people other than you or I firing up matlab to do calculations with it. :)


Heh - can't argue with you much there. I'd say the main difference is in the intent of the formulas, though. Your separate formulas basically hold the fight variables constant and let armor/health/resist vary, with the intent of giving you a fight-specific formula to weight an upgrade against. Mine is more designed to to hold the upgrades constant and let the fight variables (Pmit,Pnmit and Mmit) vary, so I give you an upgrade-specific equation to weight a fight against.

As an example, in a program based on your formulas, you'd pick a fight you're interested in and it could then sort all available gear based on which provides the larges NEH upgrade (which is of course also doable with the dNEH line in my own formulas). My approach, on the other hand, would let you pick a piece of gear and then would show a plot of when it is an upgrade, with markers on that plot representing each fight you're interested in. It gives you a better overall view, that doesn't require Matlab once you've found the formula, especially if you're analyzing just one piece, but people not interested in the theory would be more looking for the gear list that your approach works better for.

There's tons of data you can get out of the 7-D scalar field that the NEH formula covers though, everything from what we've calculated to things like calculating an iso-NEH surface in armor-health-resist space that represents the minimum NEH for a specific fight so you could plug in your armor/health/resistance to a simple inequality (like the ones for the method I posted earlier) and see if you meet it.

As much as I like the formulas I've posted, solving them for those variables instead and creating a separate surface equation based on NEH >= f(a,h,r) for each encounter/class would probably be the most useful thing to do with it, since even more than "Is this piece better for me", you want to know "Do I meet the NEH requirements for this fight". Doing that should be a simple matter of plugging the fight's coordinates in Pnmit-Pmit-Mmit space to the NEH definition, setting it equal to the required NEH and reducing all the coefficients as much as possible.

Once again, this would be easily possible to do for your specific armor/health/resist using only one NEH formula calculation, but plotting the iso-NEH surface would let you see what other possibilities gear choices you could make, as well as which gear possibility uses the least itemization points to meet the NEH requirements. Furthermore, you can plot a similar iso-NEH surface for each class (and spec when considering death knights) to see where they lie in relation to each other if you are really curious.
Kimurellia - Holy/Protection Paladin - Scions of Destiny - Eredar-US
User avatar
Xenix
 
Posts: 244
Joined: Thu Jun 25, 2009 4:56 am

Re: "New EH" - incorporating different damage types into EH

Postby theckhd » Wed Dec 02, 2009 6:59 am

I had a nagging doubt about your calculation, and now that I've sat down and started to work through it I'm certain that there's a mistake in the derivation. Mostly because it's the same one that I battled through for a few hours while working on the derivation in the OP.

To make it obvious where the error is, let's go back to the EH expression. To make it easier to read, I'm going to convert back to an abbreviated notation. The particular damage types aren't important at the moment to identify the error. Instead of P-NEH, Pn-NEH, M-NEH, and Mn-NEH, let's just let the damage types be X, Y, Z, and W, with total mitigations Mx, My, Mz, and Mw, so that the EH formula is:

Code: Select all
EH =H*[X/(1-Mx) + Y/(1-My) + Z/(1-Mz) + W/(1-Mw)]


or, defining Px through Pw as the damage-specific EH contributions:
Code: Select all
Px = H/(1-Mx)
Py = H/(1-My)
Pz = H/(1-Mz)
Pw = H/(1-Mw)


Code: Select all
EH = X*Px + Y*Py + Z*Pz + W*Pw


Here's where the error occurs. You then say you want to talk about gear changes which change the damage-specific EH contributions. So you introduce dPx, dPy, dPz, and dPw to represent those changes, you're looking for the plane with zero change in EH. In other words, you're differentiating this equation to get:

Code: Select all
d(EH) = X*dPx + Y*dPy + Z*dPz + W*dPw = 0


or using 1=X+Y+Z+W

Code: Select all
d(EH) = X*(dPx-dPw) + Y*(dPy-dPw) + Z*(dPz-dPw) + dPw = 0


From which you can easily find your intercepts Xo, Yo, and Zo
Code: Select all
Xo = -dPw/(dPx-dPw)
Yo = -dPw/(dPy-dPw)
Zo = -dPw/(dPz-dPw)


Unfortunately, all of those equations are wrong. While the EH equation is linear in X, Y, Z, and W, it is NOT linear in Mx, My, Mz, or Mw. Any change in Mx will change both Px and X due to the way X is defined (as a post-mitigation value).

To do it properly, you'd have to differentiate like this:
Code: Select all
d(EH) = dX*Px + X*dPx + dY*Py + Y*dPY + ...

Where dX would be the change in the observed damage intake percentage due to the change in mitigation for damage type X, dY would be the change in observed damage intake percentage due to the change in mitigation for damage type Y, and so forth.

Needless to say, this can get very messy very fast, and the algebra became tedious enough that after an hour or so of trying to make it work out nicely I gave up. I'm sure it's possible, but the algebra is so annoying that you're much more likely to make a mistake.

Note that for small changes, such that the observed damage intake percentages dX, dY, dZ, and dW are small, your formula will give a close enough approximation. But for anything more than a few percent (i.e. the most trivial gear changes), it starts to give erroneous results.

This is why I went back to the definition in equation (12) to start differentiating:

Code: Select all
                                 H
EH = H*D/d = -----------------------------------------            (12)
              P(1-Ma)(1-Mt) + B(1-Mt) + G(1-Mg)(1-Mr)

Here P, B, and G are the percentages of raw boss output, which are constants. So when differentiating this equation, we get an accurate representation of how changing any of those mitigation factors Mi changes EH.

The general form of the differential equation would look like this, using <stuff> to represent the denominator of equation 12:

Code: Select all
            dH           H
d(EH) = --------- + -----------*[ dMa*P*(1-Mt) + dMt*(P*(1-Ma)+B) + dMg*G*(1-Mr) + dMr*G*(1-Mg) ]
         <stuff>     <stuff>^2

You could convert this to a general form in X, Y, and Z:
Code: Select all
            1             dMa*H*X     dMt*H*(X+Y)     dMg*H*Z     dMr*H*Z
d(EH) = ---------*[ dH + --------- + ------------- + --------- + --------- ]
         <stuff>           (1-Ma)       (1-Mt)         (1-Mg)      (1-Mr)


But as you see, that's not the same as X*dPx + Y*dPy + Z*dPz + W*dPw (and, sadly, still has <stuff> in it, which requires knowledge of P, B, and G, though these can also be solved in terms of X, Y, and Z).

Just to check, you can plug in algebraically if you want - dPx is [dH + dMa*H/(1-Ma) + dMt*H/(1-Mt)]/(1-Ma)(1-Mt), and so on. If you work through it, you get:

Code: Select all
X*dPx+Y*dPy+Z*dPz = dH*(EH)/H + dMa*H*X/(1-Mt)(1-Ma)^2 + dMt*(HX/(1-Ma)+HY)/(1-Mt)^2 + dMg*HZ/(1-Mr)(1-Mg)^2 + dMr*Hz/(1-Mg)(1-Mr)^2
Last edited by theckhd on Wed Dec 02, 2009 9:09 am, edited 1 time in total.
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of Grehn|Skipjack.
MATLAB 5.x, Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty
User avatar
theckhd
Moderator
 
Posts: 7851
Joined: Thu Jul 31, 2008 3:06 pm
Location: Harrisburg, PA

Re: "New EH" - incorporating different damage types into EH

Postby theckhd » Wed Dec 02, 2009 8:48 am

As a separate thought - if your interest is doing things numerically in Matlab, there's very little point in bothering with the differentiation. We could just start from Equation 12, or a variation that included non-resistable magic damage (i.e. spellfire):
Code: Select all
                                      H
EH = H*D/d = ---------------------------------------------------
              P(1-Ma)(1-Mt) + B(1-Mt) + G(1-Mg)(1-Mr) + J(1-Mg)

We have H, and all of the Mi's. What we don't have are P, B, G, and J - instead we have X, Y, Z, and W, along with the definitions (again using <stuff> for the denominator):

Code: Select all
W = P(1-Ma)(1-Mt)/<stuff>
X = B(1-Mt)/<stuff>
Y = G(1-Mg)(1-Mr)/<stuff>
Z = J(1-Mg)/<stuff>


Those are three equations in four variables (since one is redundant due to the constraint of W=1-X-Y-Z). But with P+B+G+J=1 we have four, which means we can solve for P, B, G, and J in terms of X, Y, Z, and W. Putting this system of linear equations in matrix form, we have:
Code: Select all
|                                 |P(1-Ma)(1-Mt)|
|  X     -(1-X)     X      X  | * |B(1-Mt)      | = 0
|  Y        Y    -(1-Y)    Y  |   |G(1-Mg)(1-Mr)|
|  Z        Z       Z   -(1-Z)|   |J(1-Mg)      |

Solving this (I used Mathematica, but you could do it by hand if you wanted) gives us:

Code: Select all
P = ((1-X-Y-Z)/Z) * J(1-Mg)/(1-Ma)(1-Mt)
B =         (X/Z) * J(1-Mg)/(1-Mt)
G =         (Y/Z) * J/(1-Mr)


Plugging these into P+B+G+J=1 gives:
Code: Select all
(1-X-Y-Z)     J(1-Mg)        X   J(1-Mg)     Y     J
-----------*-------------- + ---*--------- + ---*-------- + J = 1
     Z       (1-Ma)(1-Mt)     Z   (1-Mt)      Z   (1-Mr)

J = 1/[(1-X-Y-Z)/Z*(1-Mg)/((1-Ma)(1-Mt)) + X/Z*(1-Mg)/(1-Mt) + Y/Z*1/(1-Mr) + 1]


You could then plug this in to get definitions of P, B, and G in terms of only X, Y, and Z. That's a lot of algebra, so again I'll enlist the help of Mathematica to simplify all four expressions:
Code: Select all
                 (1-Mg)(1-Mr)*(1-X-Y-Z)
P = ----------------------------------------------------
     (1-Mg)(1-Mr)(1-X*Ma-Y-Z) + (1-Ma)(1-Mt)*(Y+(1-Mr)Z)

                   (1-Ma)(1-Mg)(1-Mr)*X
B =  -----------------------------------------------------
      (1-Mg)(1-Mr)(1-X*Ma-Y-Z) + (1-Ma)(1-Mt)*(Y+(1-Mr)Z)

                       (1-Ma)(1-Mt)*Y
G =  -----------------------------------------------------
      (1-Mg)(1-Mr)(1-X*Ma-Y-Z) + (1-Ma)(1-Mt)*(Y+(1-Mr)Z)

                   (1-Ma)(1-Mr)(1-Mt)*Z
J =  -----------------------------------------------------
      (1-Mg)(1-Mr)(1-X*Ma-Y-Z) + (1-Ma)(1-Mt)*(Y+(1-Mr)Z)


So now we have expressions for P, B, G, and J that depend only on X, Y, Z, and the Mi's (i.e. known values).

This means that to answer questions about how changing our gear affects a fight, we can follow this procedure:

1) Take X, Y, Z, and the Mi's to calculate P, B, G, and J for a given boss fight.
2) Using those known values of P, B, G, and J, use equation (12) to calculate EH based on the mitigation factors Mi. For example, this could plot EH as you vary any of the Mi's.

3) Rather than differentiate, we can just calculate EH twice for the two cases we're interested in and subtract. For example, if you want to find out if A armor is better or worse than S stamina, calculate EH for both cases and subtract to get the net difference in EH. This can easily be done for a variety of P, B, G, and J values just as you've done already, and plotted against X, Y, Z, and W instead of P, B, G, or J just by using the definitions.
Last edited by theckhd on Wed Dec 02, 2009 9:08 am, edited 1 time in total.
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of Grehn|Skipjack.
MATLAB 5.x, Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty
User avatar
theckhd
Moderator
 
Posts: 7851
Joined: Thu Jul 31, 2008 3:06 pm
Location: Harrisburg, PA

Re: "New EH" - incorporating different damage types into EH

Postby Wrathy » Wed Dec 02, 2009 9:07 am

You guys lost me somewhere on page 5....

Can you guys confirm some numbers for Theck's variables for Mt, Mg, and Mr. Currently in my spreadsheet, I am using the following:
Code: Select all
Mt=0.1686
Mg=0.1156
Mr=0.1000
Dakiros wrote:Hear that sound? Its Wrathy breaking Wowhead and Wordpress while he quickly comes up with the Rival set.

Avenging Wrathy - A Protection Paladin Blog
Wrathy's Guide to Gear Sets

Image
Wrathy
Maintankadonor
 
Posts: 548
Joined: Sat Feb 28, 2009 4:17 pm

Re: "New EH" - incorporating different damage types into EH

Postby theckhd » Wed Dec 02, 2009 9:20 am

Wrathy wrote:You guys lost me somewhere on page 5....

Can you guys confirm some numbers for Theck's variables for Mt, Mg, and Mr. Currently in my spreadsheet, I am using the following:
Code: Select all
Mt=0.1686
Mg=0.1156
Mr=0.1000

Those can't be right, Mg should be larger than Mt thanks to Guarded by the Light. Which also means that I made a typo in the article when I re-wrote the long part of the derivation. I'll fix that when I get home and can make sure the m-file I used is accurate.

From here, it looks like:
Mg = 0.1686 without BoSanc, 0.1936 with BoSanc, and 0.2178 with BoSanc and Renewed Hope
Mt = 0.1156 without BoSanc, 0.1421 with BoSanc, and 0.1678 with BoSanc and Renewed Hope
Ma is just A/(A+K) as in the article
Mr should be 0.1 for having an aura up (128 resistance to guarantee 10% reduction).

I would say it's probably safe to use the BoSanc values since we bring that to the table automatically. Renewed Hope is a toss-up, there's no guarantee you'll have a Disc priest around, so it's probably better to ignore it.
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of Grehn|Skipjack.
MATLAB 5.x, Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty
User avatar
theckhd
Moderator
 
Posts: 7851
Joined: Thu Jul 31, 2008 3:06 pm
Location: Harrisburg, PA

Re: "New EH" - incorporating different damage types into EH

Postby Meloree » Wed Dec 02, 2009 11:00 am

Use the numbers without renewed hope: BoSanc and Renewed Hope Don't Stack

So 0.1421 and 0.1936 should be the numbers of choice.
Meloree
Maintankadonor
 
Posts: 1420
Joined: Wed Mar 12, 2008 10:15 am

Re: "New EH" - incorporating different damage types into EH

Postby theckhd » Wed Dec 02, 2009 11:08 am

Meloree wrote:Use the numbers without renewed hope: BoSanc and Renewed Hope Don't Stack

So 0.1421 and 0.1936 should be the numbers of choice.

Ah, ok. So they did finally get around to fixing that.
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of Grehn|Skipjack.
MATLAB 5.x, Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty
User avatar
theckhd
Moderator
 
Posts: 7851
Joined: Thu Jul 31, 2008 3:06 pm
Location: Harrisburg, PA

Re: "New EH" - incorporating different damage types into EH

Postby theckhd » Wed Dec 02, 2009 11:29 am

By the way, just to drive home the point about the error in the derivation, I whipped up a quick matlab script to demonstrate it: newEH.m

After doing a few test plots, it calculates the Armor:Stamina ratio three ways:
  • The analytical form dA/dS = 12.54*(K+A)/H*1/(1-X-Y-Z)
  • The "computational" form, where it calculates P,B,G,J and then calculates EH for (H,A), (H+dH,A), and (H,A+dA) and from that calculates the ratio [EH(H,A+dA)-EH(H,A)]/[EH(H+dH,A)-EH(H,A)]
  • Analytically using Xenix's form, where we differentiate incorrectly by ignoring dX, dY, and dZ

This is the result:
Image

As you can see, the computational form is very accurate (the difference between the green line and the blue line is around 0.02 armor/stam, which is good considering we're effectively doing a coarse differentiation rather than a proper one). Xenix's form agrees for small Y, but deviates considerably once Y grows appreciably.

Anyhow, here are some pretty plots to demonstrate how you'd do the type of calculations Xenix is talking about. If we let Z=0 and let X and Y each vary from 0 to 0.4, we can convert the 2-dimensional plot above into a 3-dimensional one:
Image

And perhaps more conveniently, we can invert the ratio (i.e. plot Stamina:Armor). The advantage to doing this is that instead of blowing up like the Armor:Stam ratio does (since it varies as 1/(1-X-Y)), it's a linear function of Y and X, so we can plot it out to Y=1 and X=1. This is probably more conveniently viewed in two dimensions with a colorbar:
Image

In other words, if every point of armor is worth 1/11.6961 = 0.0855 stamina on a purely physical fight, it's worth less on a fight with magical or bleed damage. The exact amount can be figured out by picking X and Y values, locating the color on the plot, matching that up to an approximate value on the colorbar.

The effectiveness could be found by dividing that number by 0.0855, or I could just plot that for you:
Image
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of Grehn|Skipjack.
MATLAB 5.x, Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty
User avatar
theckhd
Moderator
 
Posts: 7851
Joined: Thu Jul 31, 2008 3:06 pm
Location: Harrisburg, PA

Re: "New EH" - incorporating different damage types into EH

Postby Xenix » Wed Dec 02, 2009 11:49 am

Edited after doing the math:

After looking at it, you are correct - I used the NEH formula which had X/Y/Z as the post-mitigation damage-type ratio thinking that it was in fact the pre-mitigation damage% ratio. The whole "this is equal to XX differential equation" thing was something I came up with after seeing the plot in mitigation%-space of a change in stats calculated from the NEH formula. If you make such a 3-d plot, you will see that the delta-NEH = 0 surface is in fact a plane with the given equation, but that equation doesn't quite represent what I though it did since my axis variables were different from what I thought they were.

The formula can still be used to calculate for which fights the gear change you made is good/bad, but using the formula to extrapolate beyond that will not work unless you transform back to pre-mitigation% space.
Last edited by Xenix on Wed Dec 02, 2009 2:21 pm, edited 2 times in total.
Kimurellia - Holy/Protection Paladin - Scions of Destiny - Eredar-US
User avatar
Xenix
 
Posts: 244
Joined: Thu Jun 25, 2009 4:56 am

Re: "New EH" - incorporating different damage types into EH

Postby trellian » Wed Dec 02, 2009 1:45 pm

eh... woosh? :P

wtb tankadin plugin, lol

"Do I have any gear that would've boosted my EH for the past fight?"
User avatar
trellian
 
Posts: 671
Joined: Wed Jul 16, 2008 3:02 am
Location: Silvermoon, EU

Re: "New EH" - incorporating different damage types into EH

Postby Horanur » Wed Dec 02, 2009 2:05 pm

Theck,
Awesome work. I look forward to going through this line by line.

If cataclysm wasn't now on the horizon with its' promised simplifications, i would advocate the creation of a Theck style Ratingbuster addon, complete with a layman's term plugin :p

Edit: The 3-D color graphs are awesome btw, just watch out as you may start giving people seizures.
Image
Horanur
 
Posts: 65
Joined: Tue Jun 09, 2009 9:38 am

Re: "New EH" - incorporating different damage types into EH

Postby theckhd » Wed Dec 02, 2009 2:24 pm

<edit> Looks like you were editing your post while I was replying to it. :P

I'm going to leave my response here just so I have something to point to in case anyone else makes the same mistake later. Which is likely - I made the same mistake in my first few tries at this calculation, and only realized something was up when I started plotting the results in Matlab and getting weird answers.

Xenix wrote: My own X-Y-Z-W were pre-mitigation percentages for exactly that reason - so they would not change with any change in the gear variables. Remember that EH is how much un-mitigated damage of a specific type you can take before dying. That would necessitate the percentages in my own formula being pre-mitigation ones.

Except that's not the formula. If you write it as:
Code: Select all
EH = X*Px + Y*Py + Z*Pz + W*Pw

Then X, Y, Z, and W are by definition post-mitigation. This is very clear from the derivation - look back at the section going from equations (8) to (12) in the original post.

If you're going to use pre-mitigation values, then the form has to be the same as eq. (12), since that's the formula for effective health derived from first principles. The only way to get it in the nice, intuitive form of equation (19) is to use post-mitigation values.

The first plot in my previous post demonstrates the discrepancy as well. It wouldn't matter whether I used the analytical form of your expression or the "computational" equivalent - it would still give the wrong result.

Xenix wrote:However, if you were to start with the NEH equation and differentiate it, this is what you would do (to get my equations):

Code: Select all
Your starting equation, where Px, Py, Pz and Pw are your 100% damage-specific EH's, and X,Y,Z and W are your :
EH = X*Px + Y*Py + Z*Pz + W*Pw

Take the partial derivative with to Pw for:
dEH     dPx     dPy     dPz     dPw       dX       dY       dZ       dW
--- = X*--- + Y*--- + Z*--- + W*--- + Px*--- + Py*--- + Pz*--- + Pw*---
dPw     dPw     dPw     dPw     dPw      dPw      dPw      dPw      dPw

Now, in the plane I plotted, EH = constant. Also, dPw/dPw = 1, and the last four terms are all zero since I'm using pre-mitigation numbers for them (If you're taking 50,000 raw P-mit damage and 50,000 raw M-mit damage, changing your gear still means you're taking that much raw damage and still need 100,000 NEH to survive, and you'll always be on the 50%X,0%Y,50%Z point in mitigation% space).

This is the fundamental error highlighted. dX/dPw through dW/dPw are not zero if you define EH the way you just have. This is also why it doesn't matter whether you computationally determine the dPi/dPw's or whether you do it analytically, because you've just thrown away half of the relevant information in the equation.
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of Grehn|Skipjack.
MATLAB 5.x, Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty
User avatar
theckhd
Moderator
 
Posts: 7851
Joined: Thu Jul 31, 2008 3:06 pm
Location: Harrisburg, PA

Re: "New EH" - incorporating different damage types into EH

Postby Xenix » Wed Dec 02, 2009 3:13 pm

Yeah, definitely a good idea to keep that post for reference.

Also, I could re-do my original visualization by just changing the neh.m file to the correct formula which would give me the same plots for the corrected axes, but with the derivations you did, it's much simpler to avoid the brute-force method and instead just calculate the dNEH=0 surface directly for a certain gear change and compare that to the full range of possible fights.

Once again, this will not be worth doing if you only care about a single fight - in that case, you should just calculate the dNEH for that fight for each piece of gear available and sort them in order. It would only be worth doing if you care about a single piece of gear and want to see over what ranges of fights it's an upgrade.

Also, if you want to try and avoid confusion, the following image shows the generalized formulas 12 and 19 in a format that's a bit easier to read for people who are used to math notation:
Image
In these formulas, H is health, Phi_i is the percent unmitigated damage (of the total unmitigated damage) of the i'th type, Phi-hat_i is the percent mitigated damage (of the total mitigated damage) of the i'th type, and M_j is the percent reduction in damage of that type from your j'th source. For damage types we're used to these products are well-known, but I left it as a product over j types of damage reduction since that's the true form of the equation.

Furthermore, in these forms you can manually differentiate with respect to any variable U and find a closed-form solution that's only slightly messy (what Theckd ended up using Mathematica for when considering the four damage types we currently encounter), but that might be taking it a bit far. I'll see how bored I get studying for finals and might end up doing it to see if the result is enlightening.

---------------------

<Edit>: I really was bored tonight, enough to complete the derivation of the full differential form of the NEH equation using pre-mitigation variables (e.g. the -first- one.) So as not to scare everyone away from this thread (the final equation should do that alone), I won't post all 10 steps of the derivation, but if you want to check my work, I made a PDF of the derivation.

The final equation is the following, when you differentiate with respect to ANY variable U:
Image
where Q-bar is what I am calling your "Weighted Damage Intake %", defined as the denominator of the original NEH equation (or simply your Health divided by your NEH):
Image
Now, before your eyes glaze over from trying to comprehend that cold, let's see what it says. The change in NEH with any other variable can be broken down into three terms:
  • Term 1: How your health changes with that variable.
  • Term 2: How the damage percentages change with that variable.
  • Term 3: How the mitigation percentages change with that variable.
In most cases, two of those terms will be zero, simplifying matters greatly.

As a quick example of an easy use of this, let's see how NEH changes with a change in stamina. Terms 2 and 3 would be zero in this case because stamina has no effect on the damage percentages or mitigation percentages, which means the two scary terms disappear, leaving you with:
Image
And even better, dH/dS is a simple constant for any class (12.54 for paladins), which means that your change in NEH per point of stamina is equal to 12.54 divided by Q-bar.

To check my work against Theckd's equations, I then took dNEH/dA. For this case, the first two terms disappear as those values do not change with armor, and all of the non-pmit damage parts of the final summation term disappear as well. In the end, you are left with:
Image
Where Phi_p is the % of raw damage affected by armor, Mp is your physical damage mitigation, Ma is your armor mitigation and K is the armor constant.

Now, you can invert one and multiply the two to get the following:
Code: Select all
dA    dA  dNEH
-- = ----*----
dS   dNEH  dS

which gives for dA/dS:
Image
Note that the first equation is only in terms of pre-mitigation variables, but as Theckd noticed in his derivation of the same equation, the second fraction is the same as 1/(Phi-hat_p), or 1 over the post-mitigation % of damage that is physical. Also, dH/dS is how much health you get from a point of stamina, or 12.54 for paladins, and you set dA/dS equal to zero to find the equivalence points. Furthermore, just to make it clear (since I didn't realize this initially from Theckd's previous posts), dS/dA is linear only with the % of physical damage post-mitigation. If you're using raw damage percentages, you'll have to use the first version of the equation.


Now, you may ask yourself - what is the big deal since I just re-derived an equation that we already knew (aside from proving the differential form is correct)? In short, we can use the same method to calculate how ANY two variables relate to each other.

Want to know dPhi_p/dPhi_m for some strange reason? Just take (dNEH/dPhi_m) / (dNEH/dPhi_p). This equation lets you analytically determine the differential ratio between any two variables related to NEH, or even just the change in NEH versus one variable. It's probably not something more than a few people will use, but we now actually have it posted if someone were to want to derive a new relationship analytically instead of numerically, and it is valid for any number of damage types.
Last edited by Xenix on Thu Dec 03, 2009 7:22 am, edited 1 time in total.
Kimurellia - Holy/Protection Paladin - Scions of Destiny - Eredar-US
User avatar
Xenix
 
Posts: 244
Joined: Thu Jun 25, 2009 4:56 am

Re: "New EH" - incorporating different damage types into EH

Postby Meloree » Wed Dec 02, 2009 10:14 pm

You two are both totally batshit insane. And I love you for it.
Meloree
Maintankadonor
 
Posts: 1420
Joined: Wed Mar 12, 2008 10:15 am

PreviousNext

Return to Advanced Theorycraft and Calculations

Who is online

Users browsing this forum: Google [Bot] and 1 guest

Who is online

In total there are 2 users online :: 1 registered, 0 hidden and 1 guest (based on users active over the past 5 minutes)
Most users ever online was 380 on Tue Oct 14, 2008 6:28 pm

Users browsing this forum: Google [Bot] and 1 guest