Solve returns empty result although solution exists

Hello I'm trying to solve the following system of equations,
This should be easy to solve by hand. However using solve returns an empty sym struct. what am i missing here?
variables used are attached.
Thank you.
EDIT: re-uploaded variables and added code.
EDIT2:provided working example as per @Walter Roberson's comment.

5 件のコメント

Torsten
Torsten 2019 年 3 月 19 日
編集済み: Torsten 2019 年 3 月 19 日
But as far as I can see, there is nothing in your equations that must be treated symbolically.
Just use "\" to solve the linear system in p_ij.
Star Strider
Star Strider 2019 年 3 月 19 日
Your .mat file fails. It is impossible to read its contents.
Post or attach your code as a text .m file, and attach your data in a readable form (.txt, .mat, or something else).
Walter Roberson
Walter Roberson 2019 年 3 月 19 日
Is it possible that you have Maple installed on your system?
Hazem Abdelghany
Hazem Abdelghany 2019 年 3 月 19 日
yes I installed Maple specifically to see if it produces different outcome.
same problem occurred.
Hazem Abdelghany
Hazem Abdelghany 2019 年 3 月 19 日
編集済み: Hazem Abdelghany 2019 年 3 月 19 日
@Torsten do you mean linsolve()?

サインインしてコメントする。

 採用された回答

Walter Roberson
Walter Roberson 2019 年 3 月 19 日

0 投票

You are accidentally using Maple's sym() and solve() calls. The .mat you provided for us is only useable by people who have installed "MATLAB Connector for Maple" .
You need to use pathtool to give the Maple functions a lower priority than the MATLAB functions and recreate the equations matrix and try again.

5 件のコメント

Hazem Abdelghany
Hazem Abdelghany 2019 年 3 月 19 日
Did as you said, you should be able to reproduce the error using Matlab's default symbolic toolbox now.
Thanks.
Walter Roberson
Walter Roberson 2019 年 3 月 19 日
You have 15 equations in 14 variables and your system is inconsistent.
Walter Roberson
Walter Roberson 2019 年 3 月 19 日
Part of the reason for inconsistency is your use of floating point numbers.
[A,b] = equationsToMatrix(eqns);
sol = A(1:14,:)\b(1:14);
A*sol-b
The final inconsistent row will be about 1E-13. A single bad round-off in your floating point values could lead to that.
Hazem Abdelghany
Hazem Abdelghany 2019 年 3 月 19 日
wow, thanks, finally some hope.
s there a way I can solve this? maybe some tolerance parameter?
i
Walter Roberson
Walter Roberson 2019 年 3 月 19 日
編集済み: Walter Roberson 2019 年 3 月 21 日
The lines above show a solution in which the only inconsistency is on the order of 1E-13 , The order of the variables in sol will be the same as symvar(eqns)
Note: if you vpa(eqn) and compare that to your posted equations, you will see that they do not round exactly the same way. The equations in your .mat are not exactly the same as you would get by converting your posted equations to rationals. That matters because the correction you would need to make the equations consistent is less than the difference in stored versus posted values -- whatever round-off you have going in creating those coefficients is causing problems.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

製品

リリース

R2018b

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by