A computer algebra system written in pure Python http://sympy.org/ . To get started to with contributing https://github.com/sympy/sympy/wiki/Introduction-to-contributing
anutosh491 on GSOC_Pr1_Refactoring_Log_leading_term_method
Fixed leading term for acos/ase… (compare)
anutosh491 on series_for_arg
Updated code (compare)
anutosh491 on GSOC_Pr1_Refactoring_Log_leading_term_method
Improved code quality (compare)
anutosh491 on GSOC_Pr1_Refactoring_Log_leading_term_method
Fixed code quality (compare)
anutosh491 on GSOC_Pr1_Refactoring_Log_leading_term_method
Added test for 21721 (compare)
anutosh491 on GSOC_Pr1_Refactoring_Log_leading_term_method
Fixed Failing tests (compare)
anutosh491 on GSOC_Pr1_Refactoring_Log_leading_term_method
Code Cleanup (compare)
anutosh491 on GSOC_Pr1_Refactoring_Log_leading_term_method
Fixed error in test_sums_produc… (compare)
anutosh491 on GSOC_Pr1_Refactoring_Log_leading_term_method
Fixed all failing tests (compare)
anutosh491 on GSOC_Pr1_Refactoring_Log_leading_term_method
prevent unnecessary hashing add type hints to printing/late… Merge pull request #23588 from … and 34 more (compare)
@Ashwin-Shenoy-NITK How exactly are you specifying the upstream?
'Coz git remote add upstream git@github.com:sympy/sympy.git
might throw that error as you don't own the repository and you won't have the access rights.
If that is the case, you could simply use git remote add upstream https://github.com/sympy/sympy
there.
linsolve(Matrix(np.c_[V,o]))
.
{(-1.0*tau0 - 0.916666666666667, 5.0*tau0 + 0.708333333333333, -10.0*tau0 + 0.375, 10.0*tau0 - 0.208333333333333, -5.0*tau0 + 0.0416666666666667, tau0)}
, seems is autonamed tau0
tau0 = 0
, but without know the variable name before hand.
lin(Matrix(np.c_[V, o])) | all_free_variables = 0
r.evalf(subs={tau0: 0})
doesn't works, and also ) don't want to specify the variable name, since I will not know beforehand
r.subs(tau0, 0)
, both complain about tau0
not being defined
mysolution
is a numpy array as you could notice.
If no symbols are given, internally generated symbols will be used.
tau0
.
solution_as_list
, didn't returns a list per se, but a set with a tuple, as in: {(-0.916666666666667, 0.708333333333333, 0.375, -0.208333333333333, 0.0416666666666667, 0)}
of type sympy.sets.sets.FiniteSet
.
flatten
anyway... Never mind then
Actually,
solution = np.array(*[e for e in r_tmp]).astype(float)
should flatten it as well
wow. :-( Given the matrix PI
array([[ -0.917, 0.042, 0. , 0. , -1. ],
[ 0.708, -1.125, 0.042, 0. , 5. ],
[ 0.375, 1.125, -1.125, 0.042, -10. ],
[ -0.208, -0.042, 1.125, -1.125, 10. ],
[ 0.042, 0. , -0.042, 1.125, -5. ],
[ 0. , 0. , 0. , -0.042, 1. ]])
and the vector c
array([-1. , 0. , 0. , -0.042, 1.083, -0.042])
the solution given by
linsolve(Matrix(np.c_[PI,c]))
returns an EmptySet()
while the same operation in Maple 16 returns non empty, and exactly
np.array([649/576, 143/192, 75/64, 551/576, -25/13824])
that in float is around
array([ 1.127, 0.745, 1.172, 0.957, -0.002])
Any ideas?
PI = np.array([
[-11/12, 1/24, 0, 0, -1],
[ 17/24, -9/8, 1/24, 0 ,5],
[3/8, 9/8, -9/8, 1/24, -10],
[-5/24, -1/24, 9/8, -9/8, 10],
[1/24, 0, -1/24, 9/8, -5],
[0, 0, 0, -1/24, 1]
])
It seems that your system is over-determined. It has 6 equations in 5 variables. It can have solutions only if the determinant of the extended system is 0.
>>> P = Matrix([[ -0.917, 0.042, 0. , 0. , -1. ],
... [ 0.708, -1.125, 0.042, 0. , 5. ],
... [ 0.375, 1.125, -1.125, 0.042, -10. ],
... [ -0.208, -0.042, 1.125, -1.125, 10. ],
... [ 0.042, 0. , -0.042, 1.125, -5. ],
... [ 0. , 0. , 0. , -0.042, 1. ]])
>>> c = Matrix([-1. , 0. , 0. , -0.042, 1.083, -0.042])
>>> Pc = P.row_join(c)
>>> Pc.det()
0.000998125750125132
In this example, the determinant not 0 because of the inaccuracy of floating point numbers. Hence there is no solution.
A potential solution could be to define
rationalize = lambda x: [nsimplify(e) for e in x]
(this will turn numbers from a list into rationals). And then do
PI = Matrix(map(rationalize, [
[-11/12, 1/24, 0, 0, -1],
[ 17/24, -9/8, 1/24, 0 ,5],
[3/8, 9/8, -9/8, 1/24, -10],
[-5/24, -1/24, 9/8, -9/8, 10],
[1/24, 0, -1/24, 9/8, -5],
[0, 0, 0, -1/24, 1]
]))
and similarly for c
. I've just checked and this returns the right solutions