Solve a Set of Equations with Constraints and Interchangeable Varaibles

Hello, is there any way to solve the equations below using interchangeability algorithm (function of X in 4 dimensions-i,j,k,l)? I’m not a computer science guy and apparently interchangeability algorithm can solve the equations and render multiple solutions with the constraints that are within the equations (The Rs and Hs are known).
R_i-(X_l*X_j) * H_k=0;
R_j-(X_k*X_i) * H_l=0;
R_k-(X_j*X_l) * H_i=0;
R_l-(X_i*X_k) * H_j=0;
The (I ; j) pair and (k ; l) pair are interchangeable.
Each equation apparently is quadratic (I don’t understand this part about it, but the Xs correspond to each other).
I would really appreciate if someone can at least make a suggestion or give their opinion as to what approach can be used.

2 Kommentare

Adam Danz
Adam Danz am 23 Jun. 2021
Bearbeitet: Adam Danz am 24 Jun. 2021
@MarshallSc, regarding your flag, "I am the creator of this post and I want to remove it as the question and the answers are wrong and irrelevant and might be misleading to members", the problem is, multiple volunteers have already invested considerable time into answering the existing question so removing it also removes their work. It may not answer the question you intended to ask but it does address the question you asked. If you have a better answer to this quesiton you could add it so that the thread is more valuable to the community.
This highlights the importance of investigating the question before investigating the answer. Often times the process of dissecting and clearly framing a question leads to the answer before the question is even asked. Unfortunately, it's common that the real problem, and therefore, the solution, is found at the end of a windy, loopy trail bounded by investigations in the wrong directions.
“If I had only one hour to save the world, I would spend fifty-five minutes defining the problem, and only five minutes finding the solution.”
-Albert Einstein
I fully agree with Adam. That is also the reasons why Mathworks decided to hide the delete button when an answer has been posted. (and editing away your question is both rude and pointless, as there is now a capture of this thread)

Melden Sie sich an, um zu kommentieren.

Antworten (1)

John D'Errico
John D'Errico am 10 Jun. 2021
I think you are worrying about some magic algorithm, when simple linear algebra will suffice. Yes. LINEAR algebra.
Each equation is of the same form
Ri = X_i*X_j*H_k
TAKE THE LOG. Then you have
log(R_i) - log(H_k) = log(X_i) + log(X_j)
So your equations are LINEAR in the log of the unknowns. Solve the linear system for the unknowns. Again, this is linear algebra.
You will find the linear system is singular, at least as you wrote the equations, so no solution will exist unless something rare happens with the constant terms. And if that does happen, then infinitely many solutions will eist.

8 Kommentare

Thank you John for your response. I understand what you are saying and that's one way of looking at it which is true in fact (I've pursued this path as well), but the problem is that's all the information that I have to solve the equations and get the values for Xs (i though l) and I'm not looking to linearize the equation. My question is, as I've metnioned in the original question, since the Xs correspond to each other, would it be rational to treat the X_i and X_k as similar and take the sqrt of the equation and use the value obtained and float it into the equations and get the resulting solutions?
John D'Errico
John D'Errico am 10 Jun. 2021
Bearbeitet: John D'Errico am 10 Jun. 2021
Whether you are looking to linearize it or not, that is irrelevant.
The equations you wrote are such that TWO of them are:
R_j-(X_k*X_i) * H_l=0;
R_l-(X_i*X_k) * H_j=0;
Do you see that the product X_i*X_k is the same as the product X_k*X_i? Multiplication is commutative. This is not similatrity, or whatever you want to call it. This is just simple, pure mathematics.
That means that UNLESS the constants in that equation are exactly the correct values, then NO solution can exist?
Call the product of those two unknowns Xik, This product is unknown, but since those values appear together in both equations, we can look at Xik together, as a product. As well, see that NEITHER of the variables X_i or X_k appear in any other equation. So we can re-write that pair of equations as:
R_j- Xik * H_l=0;
R_l- Xik * H_j=0;
Now solve for Xik. We must have the product variable as:
Xik = R_j / H_l
but also
Xik = R_l / H_j
So if and only if BOTH of those conditions are EXACTLY true, then you will have a solution. Otherwise, no solution can exist. Again, maybe this is what you want to call similarity. That is just a word you seem to have made up. Simple mathematics is sufficient to see this to be true.
So ONLY if the constants are such that
R_j / H_l == R_l / H_j
does a solution exist. If those ratios are identical, then infinitely many solutions exist, and you can choose any of those solutions. Which one you choose is irrelevant, though perhaps the best choice would be to choose them equal to each other.
X_i = X_k = sqrt(R_j / H_l)
I'd call that "best" because it is the minimum norm solution. Once you have those two equations solved, then it is as trivial to solve the other pair of equations the same way. Thus, we have:
R_i-(X_l*X_j) * H_k=0;
R_k-(X_j*X_l) * H_i=0;
Again, we can argue that X_L and X_j are inextricably linked. Unless the constants R and H are such that this next equality of constants EXACTLY holds true, then NO solution can possibly exist.
R_i / H_k == R_k / H_i
If those ratios are identical, then you can pick ANY values for the product X_l*X_j. Again, the sqrt idea has some attraction for me, since it is again the minimum norm solution. That would leave the minimum norm solution as:
X_l = X_j = sqrt(R_i / H_k)
You should see that as I have written it here, I never bothered to linearize anything. I used simple mathematics to prove what I did. And that relied on nothing more than the commutative law for multiplication of two numbers. So everything I said relies on nothing more than the commutative law:
X*Y == Y*X
as long as X and Y are simple numeric values. You should have learned that in some really early elementary school class. Do you want to use the word similarity to describe that? I'd argue it is just hiding behind a fancy name. There is no magic algorithm needed to solve the problem.
MarshallSc
MarshallSc am 10 Jun. 2021
Bearbeitet: MarshallSc am 10 Jun. 2021
Thanks a lot John for your thorough response, What you are saying is correct and I agree with you. These equations are really vague and the authors did not provide enough information about it. I've thought about all the things that you just mentioned, that's why I'm really confused. They don't make a lot sense to me.
The equations above are solved stochastically, meaning that there are no exact solutions and 16 roots of the solutions are considered (8 complex and 8 complex conjugate). To make Things more clear I'm going to show the section of this part of the paper (E, ro and delta t are ingnored in this equation - and Ls are the Xs and delta Hs are Hs - R and delta Hs are just constants). I would love to hear your opinion on this John:
MarshallSc
MarshallSc am 11 Jun. 2021
Bearbeitet: MarshallSc am 11 Jun. 2021
There is a chance that L_i*L_k is of O(2) nature (Asymptotic notation or big o notation). Can it be solved knwoing that?
The O() notation has different meanings in different contexts. The one we see most often on this site is "order" of computational complexity, which is a measure of how about how much computational work increases as the size of the problem increases.
However... when computational complexity is being talked about, O(2) would never be used. O(constant) in computational complexity is the same as O(1) computational complexity -- fixed amount of time no matter how large the input is. O(constant) computational complexity is only possible for computations that either ignore their input or use a fixed extract of their input (such as exactly the first 10 inputs.) O(2) would not be used because that tells you nothing about the growth in time compared to O(1).
O() as computational complexity or as space (memory) complexity are ruled out for O(2) or any constant other than O(1). Not something that would be used.
We must be talking about a different Order indicator. In context we are probably talking about "approximate magnitude" . Saying that L_i*L_k is O(2) is probably saying that L_i*L_k is approximately 2.
If you do a computation and L_i*L_k is significantly different than 2, such as 1074 or pi*1e93 then you can be sure that you did something wrong ;-)
Besides being available as a cross-check, knowing O(2) can help in situations where you want to take a taylor expansion: you would know to use 2 as the expansion point.
Thanks a lot Walter. Does “ L(i)*L(j) ~ O(2)or quadratic” help in understanding how the equation can be solved in your opinion?
The equations divide by Li*Lj so for stability analysis, it is nice to know that the result is "about 2" instead of having to worry about covering many order of magnitudes. It means the code does not have to be as careful as might otherwise be the case.
However, beyond that, I do not think it helps much.
(My tracking number: T0098914 )
Thanks a lot again Walter, really appreicate your kind responses. I still haven't figured out how I can solve the equations and what method I can use. I guess that's the beauty of research. But I appreciate you very much.

Melden Sie sich an, um zu kommentieren.

Kategorien

Tags

Gefragt:

am 10 Jun. 2021

Bearbeitet:

am 24 Jun. 2021

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by