 |
02/19/13, 4:10 PM
|
#346
|
|
King Hippo
Night Elf Priest
Silvermoon (EU)
|
Originally Posted by Szeretlek
Yeah, I got that in mind too when I already wrote the post, but consider to post it anyway.
It should be calculated as derivative of complex function.
=(
|
Not worth the effort IMO. I think adding g to pH/pI will correct it in the right direction even if its not exact. It shouldn't be too big of an error.
Solving
1.33*g*k*(1+0.5M)*(1+F(M)*(1+M)) = (1+(1.33*I*g+baseSP)*k)*(0.5+F(M)*(1.5+M))*1.6*z
F(M)*(1.5+M)*1.6 = (0.4+M*(3+M))/(3.2*(1.5+M))*(1.5+M)*1.6 = (0.4+M*(3+M))/2
1.33*g*(1+0.5M)*(1+F(M)*(1+M)) = (1/k + 1.33*I*g+base SP)*(0.4+M*(3+M))*z/2
1/k+1.33*I*g+baseSP = 2.66*g/z*(1+0.5M)*(1+F(M)*(1+M))/(0.4+M*(3+M))
I = 2/z*(1+0.5M)*(1+F(M)*(1+M))/(0.4+M*(3+M)) - (baseSP+1/k)/1.33/g
since (1+F(M)*(1+M))*(1+0.5M) is just the heal coefficient for the optimal level of crit and mastery from base*(1+0.5M)*(1+C*(1+M),
I = 2/z*heal_coeff_opt/(0.4+M*(4+M) - (baseSP+1/k)/1.33/g
not sure if this is correct I will have to test it. This way g is also restricted to the subtracted factor, which might magnify errors if it makes a big difference.
Last edited by Havoc12 : 02/19/13 at 7:12 PM.
|
|
|
|
|
02/20/13, 2:25 AM
|
#347
|
|
Piston Honda
Troll Priest
Термоштепсель (EU)
|
|
I am not incuding the crit meta, because I assume everyone will be using the legendary one. The 3% value is not going to change anything much.
|
I include it because I will get new meta after months and I go with 3% on progress.
I think I find slighlty easier way to find pH/pInt for gear (and I really think if we multiply mastery and crit value x2 for gems, it wont ruin anything).
Base idea:
H = H(M,C,SP)
C = C(CR,Int) = CR/60000+0.012+0.05 + Int/255300
SP = SP(Int) = baseSP + Int*1.334
M = M(MR) = 0.13 + MR/60000
p - partial derivative.
pH/pCR = pH/pC * pC/pCR
pH/pMR = pH/pM * pM/pMR
pH/pInt = pH/pSP * pSP/pInt + pH/pC * pC/pInt
Main condition:
pH/pSP * pSP/pInt + pH/pC * pC/pInt = pH/pC * pC/pCR
with pH/pCR=pH/pMR in mind
From main condition we get Int=Int(MP) and calculate it.
Last sentence is easy to calc, but it is very massive. And because of that there can be errors. I dont want to post wall of formulas, let me skip to results:
Int from gear - 19000 (specialization buff only), baseSP = 8000,
MR - mastery rating from gear.
MP - mastery points,
C% - optimized crit rating buffed, int included,
CR - crit rating, that provides you with needed C% with all others crit sources
IntOpt - calculated amount of Int from gear that should be optimal. before that amount 1 Int is more valued then 1 mastery or 1 crit. After that amount - less valued. This is for gear Int only.
CR+MR - obviously rating sum.

MR MP C% CR IntOpt CR+MR
0 13,00 21,37% 4639 36801 4639
250 13,42 21,71% 4839 36276 5089
500 13,83 22,04% 5039 35759 5539
750 14,25 22,37% 5238 35251 5988
1000 14,67 22,70% 5436 34751 6436
1250 15,08 23,03% 5634 34259 6884
1500 15,50 23,36% 5831 33774 7331
1750 15,92 23,69% 6028 33298 7778
2000 16,33 24,02% 6224 32828 8224
2250 16,75 24,34% 6420 32367 8670
2500 17,17 24,67% 6615 31912 9115
2750 17,58 24,99% 6809 31464 9559
3000 18,00 25,31% 7003 31023 10003
3250 18,42 25,64% 7197 30589 10447
3500 18,83 25,96% 7390 30161 10890
3750 19,25 26,28% 7583 29740 11333
4000 19,67 26,60% 7775 29325 11775
4250 20,08 26,92% 7966 28917 12216
4500 20,50 27,24% 8157 28514 12657
4750 20,92 27,56% 8348 28117 13098
5000 21,33 27,87% 8538 27726 13538
5250 21,75 28,19% 8728 27340 13978
5500 22,17 28,50% 8917 26960 14417
5750 22,58 28,82% 9106 26586 14856
6000 23,00 29,13% 9294 26217 15294
6250 23,42 29,45% 9482 25853 15732
6500 23,83 29,76% 9669 25494 16169
6750 24,25 30,07% 9856 25140 16606
7000 24,67 30,38% 10043 24791 17043
7250 25,08 30,69% 10229 24447 17479
7500 25,50 31,00% 10415 24108 17915
7750 25,92 31,31% 10600 23773 18350
8000 26,33 31,62% 10785 23443 18785
8250 26,75 31,92% 10969 23117 19219
8500 27,17 32,23% 11154 22796 19654
8750 27,58 32,54% 11337 22479 20087
9000 28,00 32,84% 11520 22166 20520
9250 28,42 33,15% 11703 21858 20953
9500 28,83 33,45% 11886 21553 21386
9750 29,25 33,76% 12068 21252 21818
10000 29,67% 34,06% 12250 20956 22250
The more stats you get - the less valued Int become.

Last edited by Szeretlek : 02/20/13 at 2:39 AM.
|
|
|
|
|
02/20/13, 5:02 AM
|
#348
|
|
King Hippo
Night Elf Priest
Silvermoon (EU)
|
Hmmm, that can't be right, it is the completely the inverse of the result I got. I don't think I could be that far wrong and this result does not make intuitive sense. Lets try going back to the basic principles
dF(x,y,z)/dx = pF/px + pF/py*dy/dx + pF/pz*dz/dx, where p/px denotes partial derivative and d/dx denotes total derivative. Thus the spellpower optimization equation is
dH/dSP = 0 --> pH/pSP + pF/pMR*dMR/dSP + pF/pCR*dCR/dSP = 0
now pF/pMR = pF/pCR and dMR/dSP = dCR/dSP by default, so
pH/pSP = -2pF/pMR*dMR/dSP
using H = base*Heal_Coeff we get
p(base)/pSP*Heal_Coeff = -2base*p(Heal_Coeff)/pMR*dMR/dSP
which leads to
base = -1/2*p(base)/pSP*Heal_Coeff*dSP/dMR/( p(Heal_Coeff)/pMR )
now base is entirely SP dependent so this equation determines everything. The only thing that needs to be calculated here is dSP/dMR
Looking at this equation it is clear that the nominator is 2nd order for MR, while the denominator is 1st order for MR, and since dSP/dMR must be negative the whole thing will be positive, so the optimal base value and hence the optimal spellpower must increase with stats not decrease.
I will solve the equation a little later, once I finish work or someone else can have a crack at it.
Last edited by Havoc12 : 02/20/13 at 5:57 AM.
|
|
|
|
|
02/20/13, 5:13 AM
|
#349
|
|
Piston Honda
Troll Priest
Термоштепсель (EU)
|
Havoc12, your thought would be right if I need to find total derivative. But I want to find partial derivative of CR, Int and MR.
And partial derivative of complex function is:
F( a(x), b(x,y))
pF/px = pF/pa * pa/px + pF/pb * pb/px
there is no need in total derivative when I calculate partial derivatives.
So I think my idea is right, but performing might not =) Ill try to find errors in that wall of formulas -_-
|
|
|
|
|
02/20/13, 5:54 AM
|
#350
|
|
King Hippo
Night Elf Priest
Silvermoon (EU)
|
Originally Posted by Szeretlek
Havoc12, your thought would be right if I need to find total derivative. But I want to find partial derivative of CR, Int and MR.
And partial derivative of complex function is:
F( a(x), b(x,y))
pF/px = pF/pa * pa/px + pF/pb * pb/px
there is no need in total derivative when I calculate partial derivatives.
So I think my idea is right, but performing might not =) Ill try to find errors in that wall of formulas -_-
|
This way your condition is pH/pSP = pH/pCR = pH/pMR, which is not right, that cannot the correct optimisation condition.
The remember that hte optimsation condition we used before for mastery and crit was not pH/pCR = pH/pMR, but rather
pH/pCR = -pH/pMR*dCR/dMR. Because dCR/dMR = -1 due to CR = const - MR we can use the simplified pH/pCR = pH/pMR
Unless you are somehow calculating it indirectly you can't avoid the total derivative because the real optimisation condition for variable x is always dH/dx = 0, the equality of partial derivatives is just a solution of this equation when the two variables scale exactly the same. Your solution must give the same results as mine and just by looking at them you can see that they can't be the same.
when you have spellpower mastery and crit to optimise then 1.33*SP = const - G(MR) - MR, so dSP/dMR = -(1+dG(MR)/dMR)
and this needs to be included in your optimisation equation.
It is not that complicated to solve the formula I posted, since everything in it is easy to calculate separately to find the base and then the base is a linear equation of int.
The equation leads to (1+SP*k) = -1/2*k*Heal_Coeff*dSP/dMR/((1+0.5M*(3+M))*z), since pHeal_coeff/pMR = pHeal_Coeff/pCR = (1+0.5M*(3+M))*z
SP = -1/2*z*Heal_Coeff*dSP/dMR/((1+0.5M*(3+M)) -1/k
and this should accurate
Which I means I was a bit wrong, the nominator is 3rd order in M, while the denominator is 2nd order, but that should still leave us with optimal SP increasing with stats.
SP/1.33 = const-CR-MR needs to be used to calculate dSP/dMR. This is easy since C = F(M), meaning that CR = G(MR)
so dSP/dMR = -(1+dG(MR)/dMR)*1.33, this should not be tough to calculate.
Final formula is SP = 1.33/(2z)*Heal_coeff*(1+dG(MR)/dMR)/(1+0.5M*(3+M)) - 1/k
edit: Fixed the scaling factor
Last edited by Havoc12 : 02/20/13 at 8:04 AM.
|
|
|
|
|
02/20/13, 6:14 AM
|
#351
|
|
Piston Honda
Troll Priest
Термоштепсель (EU)
|
Or we can give up and just dont bother with stats distribution.
I dont really want to calculate that horror analytical way.
I think best way to do it - empirical way.
1) Calculate HealCoeff: (1+0.5*M)*(1+C*(1+M))*(1+k*SP)
2) Add 100 Int, 100 Crit or 100 Mastery, calculate 3 new HealCoeff with raised stats
3) ...
4) PROFIT!
Ok. Stop joking:
3) (HealCoeffNEW - HealCoeff)/100 = Stat weight.
I think this is most practical way to do it -_-
I repeat myself, I dont want to solve it analytical.
|
|
|
|
|
02/20/13, 6:24 AM
|
#352
|
|
King Hippo
Night Elf Priest
Silvermoon (EU)
|
Already solved it pretty much. I just need to calculate dG/dMR later on and my notation is
Heal_Coeff = (1+0.5M)*(1+C*(1+M))
Heal = base*Heal_Coeff.
This is important so we don't get confused.
I hate looking through long lists by eye, trying to find out what the best spellpower is for each value of mastery/crit. That is really annoying.
C = (0.4+M(3+M))/(3.2*(1.5+M)) = F(M)
G(CR) = C*z = F(M)*z
dG(MR)/dMR = dC/dM*dM/dMR*z = dC/dM*1.6/z*z = dC/dM*1.6
dC/dM = 1/3.2*((3+2M)*(1.5+M) - (0.4+M*(3+M)) )/((1.5+M)^2) = 1/3.2*(2 - (0.4+M*(3+M))/((1.5+M)^2) )
dG/dMR = 0.5*(2 - (0.4+M*(3+M))/((1.5+M)^2) )
edit: Fixed dG/dMR I forgot a z, which was supposed to cancel out things.
SP = 1.33/(2z)*Heal_coeff*(1+dG/dMR)/(1+0.5M*(3+M)) - 1/k
edit: Fixed the values and now the equation should work better.
The variation in heal_Coeff/(1+0.5M*(3+M), turns out to be tiny. This whole thing is effectively a constant. Because this is a complex polynomial its value oscilates and it ends up having a minimum at 47% mastery, then it increases again. Of course 47% mastery is unreachable.
0.208 1.02308389
0.228 1.019769169
0.248 1.016796925
0.268 1.014149755
0.288 1.011811386
0.308 1.009766591
0.328 1.008001107
0.348 1.006501559
0.368 1.005255394
0.388 1.00425082
0.408 1.003476749
0.428 1.002922747
0.448 1.002578987
0.468 1.002436207
0.488 1.002485667
0.508 1.002719117
0.528 1.003128763
0.548 1.003707234
0.568 1.004447559
0.588 1.005343133
0.608 1.006387701
0.628 1.007575332
0.648 1.0089004
0.668 1.010357561
0.688 1.011941742
0.708 1.013648119
0.728 1.015472106
0.748 1.017409337
0.768 1.019455657
0.788 1.021607106
As you can see it barely varies at all at relevant values of mastery. The maximum variation is like 2%. The only thing that remains is to properly calculate dG/dMR.
I fixed the equation and this is a list for dG/dMR
0.81707792 0.208
0.809780628 0.228
0.802732381 0.248
0.795921971 0.268
0.789338819 0.288
0.782972923 0.308
0.776814828 0.328
0.770855587 0.348
0.765086731 0.368
0.759500233 0.388
0.75408849 0.408
0.748844286 0.428
0.743760778 0.448
0.738831466 0.468
0.734050176 0.488
0.729411041 0.508
0.72490848 0.528
0.720537186 0.548
0.716292103 0.568
0.712168421 0.588
0.708161553 0.608
0.704267129 0.628
0.700480981 0.648
0.696799131 0.668
0.693217784 0.688
0.689733315 0.708
0.686342261 0.728
0.683041312 0.748
0.679827304 0.768
0.67669721 0.788
so the strong scaling of spellpower drops relative to the other stats.
Using the formula I calculated a list of the optimal values of spellpower, mastery and crit
Mast Crit SP
0.208 0.195 63807
0.228 0.205 63270
0.248 0.216 62769
0.268 0.226 62303
0.288 0.235 61870
0.308 0.245 61467
0.328 0.255 61094
0.348 0.265 60748
0.368 0.274 60429
0.388 0.284 60134
0.408 0.293 59863
0.428 0.303 59615
0.448 0.312 59387
0.468 0.321 59180
0.488 0.330 58992
0.508 0.340 58823
0.528 0.349 58671
0.548 0.358 58536
0.568 0.367 58416
0.588 0.376 58312
0.608 0.384 58223
0.628 0.393 58147
0.648 0.402 58085
0.668 0.411 58035
0.688 0.420 57998
0.708 0.428 57972
0.728 0.437 57958
0.748 0.445 57954
0.768 0.454 57961
0.788 0.462 57978
I had tested it using the 2nd value in the list and it's turned out to be 7.7k off the correct value, so I still have an error somewhere. In other words the 2nd value is actually 71k spellpower
dropping 100 mastery and ~81 crit and increasing spellpower by ~241 increases healing by 0.03% and doing the opposite i.e. dropping ~241 spellpower and adding 100 mastery and ~81 crit decreases healing by 0.03% with the values in the table.
Basically what this tells is that spellpower is always better no matter the gear since, we won't get to these values this expansion and even that value is ~7.7k off the mark.
Last edited by Havoc12 : 02/20/13 at 9:11 AM.
|
|
|
|
|
02/20/13, 7:42 AM
|
#353
|
|
Piston Honda
Troll Priest
Термоштепсель (EU)
|
Your data very similar to what I get here
Disc Priest - Mists of Pandaria
And I got optimal SP there nearly constant too.
The question is - is that right?
I really think now that empirical way - right way.
|
|
|
|
|
02/20/13, 9:12 AM
|
#354
|
|
King Hippo
Night Elf Priest
Silvermoon (EU)
|
I updated the post above, check again. What you calculated in that post had the correct behaviour because it is exactly what you should get from your approach, which effectively ignores dG/dMR. Adding dG/dMR changes things again, so the drop is a little larger and it does constantly drop, but the values turned out to be much higher that what you calculated.
There is still an error there and I will find it, because I am sure it is in the way I calculated dG/dMR.
Empirically correcting the formula tells us that the optimal value of intellect is ~70k at reasonable mastery values, so int on gear is always better than mastery and crit.
==========================================
Important addition. I used the formula to find out whether 320 mastery is equal to 160 intellect and found that 160 intellect is better than mastery up to 37900 spellpower. Past that point it ends up being better gemming mastery.
I did not include reoptimization of mastery and crit, but the effect should be negligible.
The order for gems is thus spirit > int > mastery +crit assuming you can use the extra mana. Otherwise spirit is out of the equation. After 37900 spellpower mastery and crit become better than intellect.
Last edited by Havoc12 : 02/20/13 at 10:52 AM.
|
|
|
|
|
02/20/13, 12:16 PM
|
#355
|
|
Piston Honda
Troll Priest
Термоштепсель (EU)
|
|
The order for gems is thus spirit > int > mastery +crit assuming you can use the extra mana. Otherwise spirit is out of the equation. After 37900 spellpower mastery and crit become better than intellect.
|
Yep, this is very close to my result:
|
I got another table for gemming, where I compare (2 crit vs 2 mastery vs 1 int) and SP threshold in that situation is near 34500-35000.
|
our numbers are nearly equal, which is good, but not so good because between my result (35000 sp) and your result (38000 sp) lying 3000 sp.
If you approach to that number from 34k sp and decide switch from Int gems to mastery or crit gems it would be hard to decide when to do it.
I redo all my calculations tomorrow to provide better answer.
And I will try to calculate real haste value.
|
|
|
|
|
02/20/13, 1:34 PM
|
#356
|
|
King Hippo
Night Elf Priest
Silvermoon (EU)
|
Originally Posted by Szeretlek
Yep, this is very close to my result:
our numbers are nearly equal, which is good, but not so good because between my result (35000 sp) and your result (38000 sp) lying 3000 sp.
If you approach to that number from 34k sp and decide switch from Int gems to mastery or crit gems it would be hard to decide when to do it.
I redo all my calculations tomorrow to provide better answer.
And I will try to calculate real haste value.
|
The breakpoint depends on your mastery/crit value, higher mastery/crit suppresses slightly the breakpoint
Mastery: 0.268 crit: 0.225506222 sp 37900, (1+k*SP)*heal_coeff = 6.788799706
remove 320 mastery and add 160*1.33 = 212.8 intellect
mastery 0.259466667, Crit 0.226392888, (1+k*SP)*heal_coeff = 6.788807919
Change: 1.00000121
remove 212.8 int and add 320 mastery instead:
Mastery: 0.276533333 Crit 0.224619555, (1+k*SP)*heal_coeff = 6.788480925
Change: 0.999953043
If you add another 100 sp to 38000 then the int gem dips below the mastery gem
Crit is the same because these are optimised crit/mastery values.
Doing the same with a higher mastery value and crit gives you a lower sp threshold
For example for mastery 0.288 crit: 0.23541387, the threshold is 35800 sp
Last edited by Havoc12 : 02/20/13 at 1:51 PM.
|
|
|
|
|
02/20/13, 2:14 PM
|
#357
|
|
<Druid Trainer>
|
While I started this whole calculus discussion, I haven't actually had time to review the recent math posts yet. Let me just add that based on my spreadsheet (other thread), I agree with the basic point that seems to be implied in all this, that a crit rating and a half-Int are very similar in value.
The only reason I haven't gotten too far into the crit/mastery/Int breakpoint calculus on my own is that the primary factor making one stat better than another isn't the slight scaling effects of your current stats, but rather your spell distribution (PWS favors mastery) and the relative effectiveness of heals vs. aegis (aegis favors crit).
Also, if you're looking so simplify analytic discussion of Int scaling: rather than worrying about individual spells, an handy rule of thumb is that the base heal amount is usually/always equal to just about 11,000 times the spellpower coefficient. So you can basically assume that spellpower is additive with a constant base term of 11000 and behaves proportionally otherwise (10,000 might be better figure to use if you want to account for the raid spellpower buff). I put a longer explanation of that here a little while ago: Healing Theory, Part 2: A Tour of Your Character Sheet | It's Dangerous to Go Alone
|
|
|
|
02/21/13, 10:58 AM
|
#358
|
|
Piston Honda
Troll Priest
Термоштепсель (EU)
|
I tested SS on PTR with various stats, with 3% meta and w/o.
It works good (finally) with ±1 precision compared to theory prediction.
Without 3% meta gem:
SS = AvgHeal * (1+M/2) * (1+C*(1+M))
With 3% meta gem:
SS = AvgHeal * (1+M/2) * (1+0.03*C+1.03*C*(1+M))
AvgHeal=Base*(1+k*SP)
C = CritChance%
M = MasteryPoints*0.016
BEWARE. Tooltips on PTR shows value with mastery healing effect!
So you should just use value from tooltip and keep in mind that this is AvgHeal*(1+M/2)
or manually calculate AvgHeal with your SP number.
|
|
|
|
|
02/21/13, 12:04 PM
|
#359
|
|
<Druid Trainer>
|
Ah good, I hadn't actually done that test since the mastery change. This also should act as a confirmation that crits work how we thought they should work even outside of SS (a 103% heal and a 103%*(1+M) shield).
Just to be clear--you're saying that on PTR, the spell tooltips for heals correctly show the healing they do, including the passive benefit of mastery? That's more or less what we expect from tooltips these days, that they take into account all present buffs.
|
|
|
|
02/21/13, 1:00 PM
|
#360
|
|
Piston Honda
Troll Priest
Термоштепсель (EU)
|
|
Just to be clear--you're saying that on PTR, the spell tooltips for heals correctly show the healing they do, including the passive benefit of mastery? That's more or less what we expect from tooltips these days, that they take into account all present buffs.
|
maybe so =) I just warn you to calculate it right way.
And after we know that SS works correctly -> all analysis that we made works perfectly for SS. So to maximize spirit shell: Int before SP 35-38k (clarification in progress) then Crit and Mastery balanced.
|
|
|
|
|
|