Solving overdetermined system by QR decomposition Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern)What does QR decomposition have to do with least squares method?Check Whether an Overdetermined Linear Equation System is Consistent: General Approach?Is the least squares solution to an overdetermined system a triangle center?Solving a feasible system of linear equations using Linear ProgrammingProving unique solution exists for a system of equationsSolve an overdetermined system of linear equationsSolving overdetermined linear system with $3$ equations in $2$ unknownsOverdetermined System Ax=bSolving a system by using Cholesky Decomposition $(LDL^T)$Solving $Ax = b$ using least squares (minimize $||Ax -b||_2$)How to do Given's rotation for $3×2$ matrix? (QR decomposition)
Why aren't air breathing engines used as small first stages
Can inflation occur in a positive-sum game currency system such as the Stack Exchange reputation system?
English words in a non-english sci-fi novel
Why do people hide their license plates in the EU?
What does this icon in iOS Stardew Valley mean?
What's the purpose of writing one's academic biography in the third person?
How to answer "Have you ever been terminated?"
What is Wonderstone and are there any references to it pre-1982?
Why did the rest of the Eastern Bloc not invade Yugoslavia?
When were vectors invented?
Can I cast Passwall to drop an enemy into a 20-foot pit?
Storing hydrofluoric acid before the invention of plastics
What is the role of the transistor and diode in a soft start circuit?
Echoing a tail command produces unexpected output?
How widely used is the term Treppenwitz? Is it something that most Germans know?
How do I stop a creek from eroding my steep embankment?
ListPlot join points by nearest neighbor rather than order
Identify plant with long narrow paired leaves and reddish stems
Can a non-EU citizen traveling with me come with me through the EU passport line?
Output the ŋarâþ crîþ alphabet song without using (m)any letters
51k Euros annually for a family of 4 in Berlin: Is it enough?
Resolving to minmaj7
When a candle burns, why does the top of wick glow if bottom of flame is hottest?
How to align text above triangle figure
Solving overdetermined system by QR decomposition
Announcing the arrival of Valued Associate #679: Cesar Manara
Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern)What does QR decomposition have to do with least squares method?Check Whether an Overdetermined Linear Equation System is Consistent: General Approach?Is the least squares solution to an overdetermined system a triangle center?Solving a feasible system of linear equations using Linear ProgrammingProving unique solution exists for a system of equationsSolve an overdetermined system of linear equationsSolving overdetermined linear system with $3$ equations in $2$ unknownsOverdetermined System Ax=bSolving a system by using Cholesky Decomposition $(LDL^T)$Solving $Ax = b$ using least squares (minimize $||Ax -b||_2$)How to do Given's rotation for $3×2$ matrix? (QR decomposition)
$begingroup$
I need to solve $Ax=b$ in lots of ways using QR decomposition.
$$A = beginbmatrix
1 & 1 \
-1 & 1 \
1 & 2
endbmatrix, b = beginbmatrix
1 \
0 \
1
endbmatrix$$
This is an overdetermined system. That is, it has more equations than needed for a unique solution.
I need to find $min ||Ax-b||$. How should I solve it using QR?
I know that QR can be used to reduce the problem to
$$Vert Ax - b Vert = Vert QRx - b Vert = Vert Rx - Q^-1b Vert.$$
but what do I do after this?
linear-algebra numerical-methods numerical-linear-algebra
$endgroup$
add a comment |
$begingroup$
I need to solve $Ax=b$ in lots of ways using QR decomposition.
$$A = beginbmatrix
1 & 1 \
-1 & 1 \
1 & 2
endbmatrix, b = beginbmatrix
1 \
0 \
1
endbmatrix$$
This is an overdetermined system. That is, it has more equations than needed for a unique solution.
I need to find $min ||Ax-b||$. How should I solve it using QR?
I know that QR can be used to reduce the problem to
$$Vert Ax - b Vert = Vert QRx - b Vert = Vert Rx - Q^-1b Vert.$$
but what do I do after this?
linear-algebra numerical-methods numerical-linear-algebra
$endgroup$
add a comment |
$begingroup$
I need to solve $Ax=b$ in lots of ways using QR decomposition.
$$A = beginbmatrix
1 & 1 \
-1 & 1 \
1 & 2
endbmatrix, b = beginbmatrix
1 \
0 \
1
endbmatrix$$
This is an overdetermined system. That is, it has more equations than needed for a unique solution.
I need to find $min ||Ax-b||$. How should I solve it using QR?
I know that QR can be used to reduce the problem to
$$Vert Ax - b Vert = Vert QRx - b Vert = Vert Rx - Q^-1b Vert.$$
but what do I do after this?
linear-algebra numerical-methods numerical-linear-algebra
$endgroup$
I need to solve $Ax=b$ in lots of ways using QR decomposition.
$$A = beginbmatrix
1 & 1 \
-1 & 1 \
1 & 2
endbmatrix, b = beginbmatrix
1 \
0 \
1
endbmatrix$$
This is an overdetermined system. That is, it has more equations than needed for a unique solution.
I need to find $min ||Ax-b||$. How should I solve it using QR?
I know that QR can be used to reduce the problem to
$$Vert Ax - b Vert = Vert QRx - b Vert = Vert Rx - Q^-1b Vert.$$
but what do I do after this?
linear-algebra numerical-methods numerical-linear-algebra
linear-algebra numerical-methods numerical-linear-algebra
asked Apr 12 at 15:37
Guerlando OCsGuerlando OCs
16321856
16321856
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
$begingroup$
The most straightforward way I know is to pass through the normal equations:
$$A^T A x = A^T b$$
and substitute in the $QR$ decomposition of $A$ (with the convention $Q in mathbbR^m times n,R in mathbbR^n times n$). Thus you get
$$R^T Q^T Q R x = R^T Q^T b.$$
But $Q^T Q=I_n$. (Note that in this convention $Q$ isn't an orthogonal matrix, so $Q Q^T neq I_m$, but this doesn't matter here.) Thus:
$$R^T R x = R^T Q^T b.$$
If $A$ has linearly independent columns (as is usually the case with overdetermined systems), then $R^T$ is injective, so by multiplying both sides by the left inverse of $R^T$ you get
$$Rx=Q^T b.$$
This system is now easy to solve numerically.
For numerical purposes it's important that the removal of $Q^T Q$ and $R^T$ from the problem is done analytically, and in particular $A^T A$ is never constructed numerically.
$endgroup$
1
$begingroup$
Is there any reason to make this so convoluted? From $Ax=b$ you have $QRx=b$, multiply by $Q^T$ on the left.
$endgroup$
– Martin Argerami
Apr 12 at 15:45
$begingroup$
@MartinArgerami Because actually the least squares solution usually does not satisfy $Ax=b$. This simple perspective only shows you that this approach gives you a solution when a solution exists. Now you could argue directly that multiplying both sides by $Q^T$ furnishes an equation whose solution is the least squares solution. (Such an argument would resemble the usual geometric argument for deriving the normal equations.) This would make a good alternative answer to mine.
$endgroup$
– Ian
Apr 12 at 15:46
add a comment |
$begingroup$
Note that $Rx$ has the form
$$Rx = beginbmatrix y_1 \ y_2 \ 0endbmatrix $$
, so if $$ Q^-1b = beginbmatrix z_1 \ z_2 \ z_3endbmatrix$$
then $|| Rx - Q^-1b||$ will be minimal for $y_1 = z_1$, $y_2=z_2$. This set of equation is no longer overdetermined.
Using matrix notation, if tou write $R = beginbmatrix R_1 \ 0endbmatrix$ and intoduce $P=beginbmatrix1 & 0 & 0 \ 0 & 1& 0endbmatrix$, then you have
$$ R_1x = PQ^-1b$$
$$ x = (R_1)^-1PQ^-1b$$
$endgroup$
1
$begingroup$
The key trick in this answer is that by the orthogonality, $| Ax - b | = | Rx - Q^T b |$.
$endgroup$
– Ian
Apr 12 at 20:34
$begingroup$
@Ian, That's something that OP has alredy obtained on his own (since $Q$ is orthogonal, $Q^-1=Q^T$).
$endgroup$
– Adam Latosiński
Apr 13 at 11:14
add a comment |
Your Answer
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%2f3185239%2fsolving-overdetermined-system-by-qr-decomposition%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
$begingroup$
The most straightforward way I know is to pass through the normal equations:
$$A^T A x = A^T b$$
and substitute in the $QR$ decomposition of $A$ (with the convention $Q in mathbbR^m times n,R in mathbbR^n times n$). Thus you get
$$R^T Q^T Q R x = R^T Q^T b.$$
But $Q^T Q=I_n$. (Note that in this convention $Q$ isn't an orthogonal matrix, so $Q Q^T neq I_m$, but this doesn't matter here.) Thus:
$$R^T R x = R^T Q^T b.$$
If $A$ has linearly independent columns (as is usually the case with overdetermined systems), then $R^T$ is injective, so by multiplying both sides by the left inverse of $R^T$ you get
$$Rx=Q^T b.$$
This system is now easy to solve numerically.
For numerical purposes it's important that the removal of $Q^T Q$ and $R^T$ from the problem is done analytically, and in particular $A^T A$ is never constructed numerically.
$endgroup$
1
$begingroup$
Is there any reason to make this so convoluted? From $Ax=b$ you have $QRx=b$, multiply by $Q^T$ on the left.
$endgroup$
– Martin Argerami
Apr 12 at 15:45
$begingroup$
@MartinArgerami Because actually the least squares solution usually does not satisfy $Ax=b$. This simple perspective only shows you that this approach gives you a solution when a solution exists. Now you could argue directly that multiplying both sides by $Q^T$ furnishes an equation whose solution is the least squares solution. (Such an argument would resemble the usual geometric argument for deriving the normal equations.) This would make a good alternative answer to mine.
$endgroup$
– Ian
Apr 12 at 15:46
add a comment |
$begingroup$
The most straightforward way I know is to pass through the normal equations:
$$A^T A x = A^T b$$
and substitute in the $QR$ decomposition of $A$ (with the convention $Q in mathbbR^m times n,R in mathbbR^n times n$). Thus you get
$$R^T Q^T Q R x = R^T Q^T b.$$
But $Q^T Q=I_n$. (Note that in this convention $Q$ isn't an orthogonal matrix, so $Q Q^T neq I_m$, but this doesn't matter here.) Thus:
$$R^T R x = R^T Q^T b.$$
If $A$ has linearly independent columns (as is usually the case with overdetermined systems), then $R^T$ is injective, so by multiplying both sides by the left inverse of $R^T$ you get
$$Rx=Q^T b.$$
This system is now easy to solve numerically.
For numerical purposes it's important that the removal of $Q^T Q$ and $R^T$ from the problem is done analytically, and in particular $A^T A$ is never constructed numerically.
$endgroup$
1
$begingroup$
Is there any reason to make this so convoluted? From $Ax=b$ you have $QRx=b$, multiply by $Q^T$ on the left.
$endgroup$
– Martin Argerami
Apr 12 at 15:45
$begingroup$
@MartinArgerami Because actually the least squares solution usually does not satisfy $Ax=b$. This simple perspective only shows you that this approach gives you a solution when a solution exists. Now you could argue directly that multiplying both sides by $Q^T$ furnishes an equation whose solution is the least squares solution. (Such an argument would resemble the usual geometric argument for deriving the normal equations.) This would make a good alternative answer to mine.
$endgroup$
– Ian
Apr 12 at 15:46
add a comment |
$begingroup$
The most straightforward way I know is to pass through the normal equations:
$$A^T A x = A^T b$$
and substitute in the $QR$ decomposition of $A$ (with the convention $Q in mathbbR^m times n,R in mathbbR^n times n$). Thus you get
$$R^T Q^T Q R x = R^T Q^T b.$$
But $Q^T Q=I_n$. (Note that in this convention $Q$ isn't an orthogonal matrix, so $Q Q^T neq I_m$, but this doesn't matter here.) Thus:
$$R^T R x = R^T Q^T b.$$
If $A$ has linearly independent columns (as is usually the case with overdetermined systems), then $R^T$ is injective, so by multiplying both sides by the left inverse of $R^T$ you get
$$Rx=Q^T b.$$
This system is now easy to solve numerically.
For numerical purposes it's important that the removal of $Q^T Q$ and $R^T$ from the problem is done analytically, and in particular $A^T A$ is never constructed numerically.
$endgroup$
The most straightforward way I know is to pass through the normal equations:
$$A^T A x = A^T b$$
and substitute in the $QR$ decomposition of $A$ (with the convention $Q in mathbbR^m times n,R in mathbbR^n times n$). Thus you get
$$R^T Q^T Q R x = R^T Q^T b.$$
But $Q^T Q=I_n$. (Note that in this convention $Q$ isn't an orthogonal matrix, so $Q Q^T neq I_m$, but this doesn't matter here.) Thus:
$$R^T R x = R^T Q^T b.$$
If $A$ has linearly independent columns (as is usually the case with overdetermined systems), then $R^T$ is injective, so by multiplying both sides by the left inverse of $R^T$ you get
$$Rx=Q^T b.$$
This system is now easy to solve numerically.
For numerical purposes it's important that the removal of $Q^T Q$ and $R^T$ from the problem is done analytically, and in particular $A^T A$ is never constructed numerically.
edited Apr 12 at 19:46
answered Apr 12 at 15:44
IanIan
69.2k25393
69.2k25393
1
$begingroup$
Is there any reason to make this so convoluted? From $Ax=b$ you have $QRx=b$, multiply by $Q^T$ on the left.
$endgroup$
– Martin Argerami
Apr 12 at 15:45
$begingroup$
@MartinArgerami Because actually the least squares solution usually does not satisfy $Ax=b$. This simple perspective only shows you that this approach gives you a solution when a solution exists. Now you could argue directly that multiplying both sides by $Q^T$ furnishes an equation whose solution is the least squares solution. (Such an argument would resemble the usual geometric argument for deriving the normal equations.) This would make a good alternative answer to mine.
$endgroup$
– Ian
Apr 12 at 15:46
add a comment |
1
$begingroup$
Is there any reason to make this so convoluted? From $Ax=b$ you have $QRx=b$, multiply by $Q^T$ on the left.
$endgroup$
– Martin Argerami
Apr 12 at 15:45
$begingroup$
@MartinArgerami Because actually the least squares solution usually does not satisfy $Ax=b$. This simple perspective only shows you that this approach gives you a solution when a solution exists. Now you could argue directly that multiplying both sides by $Q^T$ furnishes an equation whose solution is the least squares solution. (Such an argument would resemble the usual geometric argument for deriving the normal equations.) This would make a good alternative answer to mine.
$endgroup$
– Ian
Apr 12 at 15:46
1
1
$begingroup$
Is there any reason to make this so convoluted? From $Ax=b$ you have $QRx=b$, multiply by $Q^T$ on the left.
$endgroup$
– Martin Argerami
Apr 12 at 15:45
$begingroup$
Is there any reason to make this so convoluted? From $Ax=b$ you have $QRx=b$, multiply by $Q^T$ on the left.
$endgroup$
– Martin Argerami
Apr 12 at 15:45
$begingroup$
@MartinArgerami Because actually the least squares solution usually does not satisfy $Ax=b$. This simple perspective only shows you that this approach gives you a solution when a solution exists. Now you could argue directly that multiplying both sides by $Q^T$ furnishes an equation whose solution is the least squares solution. (Such an argument would resemble the usual geometric argument for deriving the normal equations.) This would make a good alternative answer to mine.
$endgroup$
– Ian
Apr 12 at 15:46
$begingroup$
@MartinArgerami Because actually the least squares solution usually does not satisfy $Ax=b$. This simple perspective only shows you that this approach gives you a solution when a solution exists. Now you could argue directly that multiplying both sides by $Q^T$ furnishes an equation whose solution is the least squares solution. (Such an argument would resemble the usual geometric argument for deriving the normal equations.) This would make a good alternative answer to mine.
$endgroup$
– Ian
Apr 12 at 15:46
add a comment |
$begingroup$
Note that $Rx$ has the form
$$Rx = beginbmatrix y_1 \ y_2 \ 0endbmatrix $$
, so if $$ Q^-1b = beginbmatrix z_1 \ z_2 \ z_3endbmatrix$$
then $|| Rx - Q^-1b||$ will be minimal for $y_1 = z_1$, $y_2=z_2$. This set of equation is no longer overdetermined.
Using matrix notation, if tou write $R = beginbmatrix R_1 \ 0endbmatrix$ and intoduce $P=beginbmatrix1 & 0 & 0 \ 0 & 1& 0endbmatrix$, then you have
$$ R_1x = PQ^-1b$$
$$ x = (R_1)^-1PQ^-1b$$
$endgroup$
1
$begingroup$
The key trick in this answer is that by the orthogonality, $| Ax - b | = | Rx - Q^T b |$.
$endgroup$
– Ian
Apr 12 at 20:34
$begingroup$
@Ian, That's something that OP has alredy obtained on his own (since $Q$ is orthogonal, $Q^-1=Q^T$).
$endgroup$
– Adam Latosiński
Apr 13 at 11:14
add a comment |
$begingroup$
Note that $Rx$ has the form
$$Rx = beginbmatrix y_1 \ y_2 \ 0endbmatrix $$
, so if $$ Q^-1b = beginbmatrix z_1 \ z_2 \ z_3endbmatrix$$
then $|| Rx - Q^-1b||$ will be minimal for $y_1 = z_1$, $y_2=z_2$. This set of equation is no longer overdetermined.
Using matrix notation, if tou write $R = beginbmatrix R_1 \ 0endbmatrix$ and intoduce $P=beginbmatrix1 & 0 & 0 \ 0 & 1& 0endbmatrix$, then you have
$$ R_1x = PQ^-1b$$
$$ x = (R_1)^-1PQ^-1b$$
$endgroup$
1
$begingroup$
The key trick in this answer is that by the orthogonality, $| Ax - b | = | Rx - Q^T b |$.
$endgroup$
– Ian
Apr 12 at 20:34
$begingroup$
@Ian, That's something that OP has alredy obtained on his own (since $Q$ is orthogonal, $Q^-1=Q^T$).
$endgroup$
– Adam Latosiński
Apr 13 at 11:14
add a comment |
$begingroup$
Note that $Rx$ has the form
$$Rx = beginbmatrix y_1 \ y_2 \ 0endbmatrix $$
, so if $$ Q^-1b = beginbmatrix z_1 \ z_2 \ z_3endbmatrix$$
then $|| Rx - Q^-1b||$ will be minimal for $y_1 = z_1$, $y_2=z_2$. This set of equation is no longer overdetermined.
Using matrix notation, if tou write $R = beginbmatrix R_1 \ 0endbmatrix$ and intoduce $P=beginbmatrix1 & 0 & 0 \ 0 & 1& 0endbmatrix$, then you have
$$ R_1x = PQ^-1b$$
$$ x = (R_1)^-1PQ^-1b$$
$endgroup$
Note that $Rx$ has the form
$$Rx = beginbmatrix y_1 \ y_2 \ 0endbmatrix $$
, so if $$ Q^-1b = beginbmatrix z_1 \ z_2 \ z_3endbmatrix$$
then $|| Rx - Q^-1b||$ will be minimal for $y_1 = z_1$, $y_2=z_2$. This set of equation is no longer overdetermined.
Using matrix notation, if tou write $R = beginbmatrix R_1 \ 0endbmatrix$ and intoduce $P=beginbmatrix1 & 0 & 0 \ 0 & 1& 0endbmatrix$, then you have
$$ R_1x = PQ^-1b$$
$$ x = (R_1)^-1PQ^-1b$$
answered Apr 12 at 15:56
Adam LatosińskiAdam Latosiński
7408
7408
1
$begingroup$
The key trick in this answer is that by the orthogonality, $| Ax - b | = | Rx - Q^T b |$.
$endgroup$
– Ian
Apr 12 at 20:34
$begingroup$
@Ian, That's something that OP has alredy obtained on his own (since $Q$ is orthogonal, $Q^-1=Q^T$).
$endgroup$
– Adam Latosiński
Apr 13 at 11:14
add a comment |
1
$begingroup$
The key trick in this answer is that by the orthogonality, $| Ax - b | = | Rx - Q^T b |$.
$endgroup$
– Ian
Apr 12 at 20:34
$begingroup$
@Ian, That's something that OP has alredy obtained on his own (since $Q$ is orthogonal, $Q^-1=Q^T$).
$endgroup$
– Adam Latosiński
Apr 13 at 11:14
1
1
$begingroup$
The key trick in this answer is that by the orthogonality, $| Ax - b | = | Rx - Q^T b |$.
$endgroup$
– Ian
Apr 12 at 20:34
$begingroup$
The key trick in this answer is that by the orthogonality, $| Ax - b | = | Rx - Q^T b |$.
$endgroup$
– Ian
Apr 12 at 20:34
$begingroup$
@Ian, That's something that OP has alredy obtained on his own (since $Q$ is orthogonal, $Q^-1=Q^T$).
$endgroup$
– Adam Latosiński
Apr 13 at 11:14
$begingroup$
@Ian, That's something that OP has alredy obtained on his own (since $Q$ is orthogonal, $Q^-1=Q^T$).
$endgroup$
– Adam Latosiński
Apr 13 at 11:14
add a comment |
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.
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%2f3185239%2fsolving-overdetermined-system-by-qr-decomposition%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