Solving overdetermined system by QR decomposition Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm 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)
Marquee sign letters
Inscribed circle in right-angled triangle
What does the writing on Poe's helmet say?
Inverse square law not accurate for non-point masses?
NIntegrate on a solution of a matrix ODE
Why is a lens darker than other ones when applying the same settings?
Keyboard layout stuck into CZ_german no english layout after update, restore into original EN_us and EL_Gr ones
Does the Rock Gnome trait Artificer's Lore apply when you aren't proficient in History?
What does Turing mean by this statement?
How can I prevent/balance waiting and turtling as a response to cooldown mechanics
Why can't fire hurt Daenerys but it did to Jon Snow in season 1?
Centre cell contents vertically
One-one communication
Nose gear failure in single prop aircraft: belly landing or nose landing?
Does the main washing effect of soap come from foam?
Is there a spell that can create a permanent fire?
Found this skink in my tomato plant bucket. Is he trapped? Or could he leave if he wanted?
Understanding piped command in Gnu/Linux
The bible of geometry: Is there a modern treatment of geometries from the most primitive to the most advanced?
Is this Kuo-toa homebrew race balanced?
Are there any irrational/transcendental numbers for which the distribution of decimal digits is not uniform?
How does TikZ render an arc?
Is the time—manner—place ordering of adverbials an oversimplification?
Putting class ranking in CV, but against dept guidelines
Solving overdetermined system by QR decomposition
Announcing the arrival of Valued Associate #679: Cesar Manara
Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm 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
14521856
14521856
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
9209
9209
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