Bounded, skewed “bell” curve.
I am writing a program which uses a bounded bell-curve (i.e. with bounded support) to modulate light intensity. I'm using a raised cosine distribution at the moment, which works well. However I would now like to introduce a skew to the curve for a different effect. What are some formulæ I can use? The ideal formula would have the following properties:
- easy to compute - so it should be in closed form, no integrals or infinite sums;
- easy to adjust the domain and range;
- easy to tune the skewness;
- not merely the truncation of some taylor/fourier sum (because this would be inelegant and difficult to tune);
- finally and most difficult: easily computable with integer arithmetic, since I am doing this on a microprocessor without a floating-point unit.
I think the latter criterion might be a bridge too far which is why I separated it from the first one. Note that there is no need to be a probability distribution, but that is a natural area to look.
The most promising family of functions seems to be the Beta distribution, but in order to adjust the skewness one most adjust the parameters and therefore the quotient involving the $Gamma$ function which is not closed-form. If I were not varying the skewness this would just be some constant factor I could compute beforehand, but I don't want to have to approximate the $Gamma$ function on-the-fly.
Other possibilities include "tilted" trigonometric functions of which some are enumerated in this question but the explicitly defined answer there, and likely any such answer, is hard to tune because as the skewness changes, the position (and the value, in fact) of the minima also change, so I would need to be calculating those values constantly to keep my curve's endpoints anchored.
functions probability-distributions closed-form
add a comment |
I am writing a program which uses a bounded bell-curve (i.e. with bounded support) to modulate light intensity. I'm using a raised cosine distribution at the moment, which works well. However I would now like to introduce a skew to the curve for a different effect. What are some formulæ I can use? The ideal formula would have the following properties:
- easy to compute - so it should be in closed form, no integrals or infinite sums;
- easy to adjust the domain and range;
- easy to tune the skewness;
- not merely the truncation of some taylor/fourier sum (because this would be inelegant and difficult to tune);
- finally and most difficult: easily computable with integer arithmetic, since I am doing this on a microprocessor without a floating-point unit.
I think the latter criterion might be a bridge too far which is why I separated it from the first one. Note that there is no need to be a probability distribution, but that is a natural area to look.
The most promising family of functions seems to be the Beta distribution, but in order to adjust the skewness one most adjust the parameters and therefore the quotient involving the $Gamma$ function which is not closed-form. If I were not varying the skewness this would just be some constant factor I could compute beforehand, but I don't want to have to approximate the $Gamma$ function on-the-fly.
Other possibilities include "tilted" trigonometric functions of which some are enumerated in this question but the explicitly defined answer there, and likely any such answer, is hard to tune because as the skewness changes, the position (and the value, in fact) of the minima also change, so I would need to be calculating those values constantly to keep my curve's endpoints anchored.
functions probability-distributions closed-form
add a comment |
I am writing a program which uses a bounded bell-curve (i.e. with bounded support) to modulate light intensity. I'm using a raised cosine distribution at the moment, which works well. However I would now like to introduce a skew to the curve for a different effect. What are some formulæ I can use? The ideal formula would have the following properties:
- easy to compute - so it should be in closed form, no integrals or infinite sums;
- easy to adjust the domain and range;
- easy to tune the skewness;
- not merely the truncation of some taylor/fourier sum (because this would be inelegant and difficult to tune);
- finally and most difficult: easily computable with integer arithmetic, since I am doing this on a microprocessor without a floating-point unit.
I think the latter criterion might be a bridge too far which is why I separated it from the first one. Note that there is no need to be a probability distribution, but that is a natural area to look.
The most promising family of functions seems to be the Beta distribution, but in order to adjust the skewness one most adjust the parameters and therefore the quotient involving the $Gamma$ function which is not closed-form. If I were not varying the skewness this would just be some constant factor I could compute beforehand, but I don't want to have to approximate the $Gamma$ function on-the-fly.
Other possibilities include "tilted" trigonometric functions of which some are enumerated in this question but the explicitly defined answer there, and likely any such answer, is hard to tune because as the skewness changes, the position (and the value, in fact) of the minima also change, so I would need to be calculating those values constantly to keep my curve's endpoints anchored.
functions probability-distributions closed-form
I am writing a program which uses a bounded bell-curve (i.e. with bounded support) to modulate light intensity. I'm using a raised cosine distribution at the moment, which works well. However I would now like to introduce a skew to the curve for a different effect. What are some formulæ I can use? The ideal formula would have the following properties:
- easy to compute - so it should be in closed form, no integrals or infinite sums;
- easy to adjust the domain and range;
- easy to tune the skewness;
- not merely the truncation of some taylor/fourier sum (because this would be inelegant and difficult to tune);
- finally and most difficult: easily computable with integer arithmetic, since I am doing this on a microprocessor without a floating-point unit.
I think the latter criterion might be a bridge too far which is why I separated it from the first one. Note that there is no need to be a probability distribution, but that is a natural area to look.
The most promising family of functions seems to be the Beta distribution, but in order to adjust the skewness one most adjust the parameters and therefore the quotient involving the $Gamma$ function which is not closed-form. If I were not varying the skewness this would just be some constant factor I could compute beforehand, but I don't want to have to approximate the $Gamma$ function on-the-fly.
Other possibilities include "tilted" trigonometric functions of which some are enumerated in this question but the explicitly defined answer there, and likely any such answer, is hard to tune because as the skewness changes, the position (and the value, in fact) of the minima also change, so I would need to be calculating those values constantly to keep my curve's endpoints anchored.
functions probability-distributions closed-form
functions probability-distributions closed-form
asked Nov 24 at 14:21
Chris Le Sueur
1012
1012
add a comment |
add a comment |
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function () {
return StackExchange.using("mathjaxEditing", function () {
StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
});
});
}, "mathjax-editing");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "69"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
noCode: true, onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f3011610%2fbounded-skewed-bell-curve%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Mathematics Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
Use MathJax to format equations. MathJax reference.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f3011610%2fbounded-skewed-bell-curve%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown