Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #71513
| From | Joseph Martinot-Lagarde <joseph.martinot-lagarde@m4x.org> |
|---|---|
| Subject | Re: How can this assert() ever trigger? |
| Date | 2014-05-14 01:14 +0200 |
| References | <536e44c1$0$27147$e4fe514c@dreader35.news.xs4all.nl> <mailman.9917.1399914607.18130.python-list@python.org> <5371ec30$0$27133$e4fe514c@dreader35.news.xs4all.nl> |
| Newsgroups | comp.lang.python |
| Message-ID | <mailman.9982.1400022859.18130.python-list@python.org> (permalink) |
Le 13/05/2014 11:56, Albert van der Horst a écrit :
> In article <mailman.9917.1399914607.18130.python-list@python.org>,
> Joseph Martinot-Lagarde <joseph.martinot-lagarde@m4x.org> wrote:
>> Le 10/05/2014 17:24, Albert van der Horst a écrit :
>>> I have the following code for calculating the determinant of
>>> a matrix. It works inasfar that it gives the same result as an
>>> octave program on a same matrix.
>>>
>>> / ----------------------------------------------------------------
>>>
>>> def determinant( mat ):
> ..
>>> result = lastr[jx]
>>> assert(result<>0.)
> ...
>>> assert(result<>0.)
>>> nom *= result # Compenstate for multiplying a row.
> ...
>>> assert(nom<>0.)
> ..
>>>
>>> /-----------------------------------------
>>>
>>> Now on some matrices the assert triggers, meaning that nom is zero.
>>> How can that ever happen? mon start out as 1. and gets multiplied
>>> with a number that is asserted to be not zero.
>>>
>>> Any hints appreciated.
>>>
>>> Groetjes Albert
>>>
>> I know it's not the question, but if you want a replacement for octave
>> did you try numpy (and scipy) ? The determinant would be computer faster
>> and with less memory than with your function.
>
> I'm using several programming languages in a mix to solve Euler problems.
> This is about learning how octave compares to python for a certain kind of
> problem as anything.
> The determinant program I had lying around, but it was infinite precision
> with integer only arithmetic. Then I made a simple modification and got
> mad because I didn't understand why it didn't work.
>
> I have used numpy and its det before, but I find it difficult to
> remember how to create a matrix in numpy. This is the kind of thing
> that is hard to find in the docs. Now I looked it up in my old
> programs: you start a matrix with the zeroes() function.
>
> I expect the built in determinant of octave to be on a par with corresponding
> python libraries.
>
>>
>> ---
>
> Groetjes Albert
>
>
>
You can use numpy.zeros(), but you can also use the same list of lists
that you use for your problem.
Transform a list of lists into a numpy array:
>>> np.asarray([[1, 2],[3, 4]])
array([[1, 2],
[3, 4]])
Use a numpy function directly on a list of lists (works for must numpy
functions):
>>> np.linalg.det([[1, 2],[3, 4]])
-2.0000000000000004
More info on array creation:
http://wiki.scipy.org/Tentative_NumPy_Tutorial#head-d3f8e5fe9b903f3c3b2a5c0dfceb60d71602cf93
---
Ce courrier électronique ne contient aucun virus ou logiciel malveillant parce que la protection avast! Antivirus est active.
http://www.avast.com
Back to comp.lang.python | Previous | Next — Previous in thread | Find similar | Unroll thread
How can this assert() ever trigger? albert@spenarnc.xs4all.nl (Albert van der Horst) - 2014-05-10 15:24 +0000
Re: How can this assert() ever trigger? Peter Otten <__peter__@web.de> - 2014-05-10 17:50 +0200
Re: How can this assert() ever trigger? Ethan Furman <ethan@stoneleaf.us> - 2014-05-10 08:35 -0700
Re: How can this assert() ever trigger? Gary Herron <gary.herron@islandtraining.com> - 2014-05-10 08:48 -0700
Re: How can this assert() ever trigger? Alain Ketterlin <alain@dpt-info.u-strasbg.fr> - 2014-05-10 17:56 +0200
Re: How can this assert() ever trigger? albert@spenarnc.xs4all.nl (Albert van der Horst) - 2014-05-10 16:39 +0000
Re: How can this assert() ever trigger? Joseph Martinot-Lagarde <joseph.martinot-lagarde@m4x.org> - 2014-05-12 19:05 +0200
Re: How can this assert() ever trigger? albert@spenarnc.xs4all.nl (Albert van der Horst) - 2014-05-13 09:56 +0000
Re: How can this assert() ever trigger? Joseph Martinot-Lagarde <joseph.martinot-lagarde@m4x.org> - 2014-05-14 01:14 +0200
csiph-web