Hi Tim
As I indicated previously, the Fortran code was only meant to define
my statement of the problem so that there can be absolutely no
ambiguity as to the question: the answer to the problem (if it exists)
has nothing whatsoever to do with the programming language used and I
don't see how it can be constrained in any way by its semantics, since
I also provided the questions in algebraic form. You can't get more
'natural' than that!
The answer may be provided either algebraically (which would actually
be preferable) or in any programming language of your choice: I am
certainly not forcing anyone to code in Fortran if they don't want to.
If you're saying that I'm unable to solve the problem just because
I'm programming in Fortran, then you don't understand how algorithmic
problem solving works: first an working solution must be obtained
algebraically, then algorithmically, and only then programmatically.
The first two steps are always the hardest, the last is almost always
relatively trivial, and the programming language chosen is a matter of
personal preference. It cannot constrain the solution, since that
must already have been completely defined by the first two steps. I
have not yet come across a purely algebraic problem which possesses
semantics that couldn't be expressed in Fortran. That doesn't mean
there aren't any, it's just that none of the problems that I've yet
come across absolutely require programmng in another language: until
they do I'm happy to stick with Fortran.
Just to be clear again, the statement of the problem, expressed
entirely algebraically, is:
1) To express F.G using vector notation only, where F and G are
complex vectors of arbitrary dimension, and
2) Same with F1/G1 where F1 and G1 are complex numbers (e.g.
individual elements of the above complex vectors).
You see, absolutely no Fortran!
Cheers
-- Ian
On Sat, Oct 16, 2010 at 8:50 AM, Tim Gruene <[log in to unmask]> wrote:
> Dear Ian,
>
> maybe you should switch from Fortran to C++. Then you would not be forced to
> make nature follow the semantics of your programming language but can adjust
> your code to the problem you are tackling.
> The question you post would nicely fit into a first year's course on C++ (and of
> course can all be answered very elegantly).
>
> Cheers, Tim
>
> On Fri, Oct 15, 2010 at 11:55:54PM +0100, Ian Tickle wrote:
>> On Fri, Oct 15, 2010 at 8:11 PM, Douglas Theobald
>> <[log in to unmask]> wrote:
>> > Vectors are not only three-dimensional, nor only Euclidean -- vectors can be
>> > defined for any number of arbitrary dimensions. Your initial comment
>> > referred to complex numbers, for instance, which are 2D vectors (not 1-D).
>> > Obviously scalars are not 3-vectors, they are 1-vectors. And contrary to
>> > your earlier assertion, you can always represent complex numbers as vectors
>> > (in fortran, C, on paper, or whatever), and it is possible to define many
>> > different valid types of multiplication, exponentiation, logarithms, powers,
>> > etc. for vectors (and matrices as well).
>>
>> I didn't say that vectors are only 3D or only Euclidean (note my
>> qualification 'Euclidean *or otherwise*'). I was stating that we're
>> not talking here specifically about 1D (or 2D) vectors; my use of 3D
>> is only an example, since my original example referred to structure
>> factors which are usually defined in 3D reciprocal space. Quite
>> obviously vectors can be generalised to any number of dimensions (as
>> in the example below).
>>
>> Let's take a simple example of an operation that's trivial to express
>> using complex numbers as scalars. Suppose we have 2 vectors of
>> complex structure factors of equal dimension (n) and we want to form
>> the (complex) scalar product. This kind of equation arises in, for
>> example, the theory of direct methods.
>>
>> Let F = (F1, F2, F3, ... Fn)
>> and G = (G1, G2, G3, ... Gn)
>>
>> Then the scalar product F.G = F1*G1 + F2*G2 + F3*G3 + ... Fn*Gn (or
>> SUM [j=1 to n] Fj*Gj),
>> where '+' and '*' here are the normal addition and multiplication
>> operators on scalars (here complex of course).
>> Note that the result of a scalar product of 2 vectors is by definition
>> a scalar and here it's complex!
>>
>> Also note that the RHS can be programmed exactly as written, in fact
>> something like:
>>
>> COMPLEX F, G, S
>> S = 0
>> 1 READ (*,*,END=2) F, G
>> S = S + F*G
>> GOTO 1
>> 2 PRINT *,S
>> END
>>
>> Now, how would you express the scalar product F.G in a way that could
>> be programmed, using vector notation for all the complex numbers, and
>> obviously you can only use operators that are defined for vectors,
>> namely addition, subtraction, scalar multiplication, scalar and
>> exterior product?
>>
>> Then when you've done that, how would you express a ratio of complex
>> numbers (say F1/G1), again using only vector notation?
>>
>> -- Ian
>>
>> >
>> > On Oct 15, 2010, at 12:40 PM, Ian Tickle wrote:
>> >
>> >> Any vector, whether in the 'mathematical' or 'physical' sense as
>> >> defined in Wikipedia, and which is defined on a 3D vector space
>> >> (Euclidean or otherwise - which I hope is what were talking about),
>> >> has by definition 3 elements (real or complex). This clearly excludes
>> >> all scalars (real or complex) which have only 1 whatever the dimension
>> >> of the space. Therefore it's plainly impossible for an entity in 3D
>> >> space to be both a scalar and a vector at the same time. Your
>> >> conclusion that scalars and complex numbers fulfil the axioms of a
>> >> vector space is applicable only in the case of a 1D vector space, and
>> >> therefore is not relevant. My original observation which started this
>> >> thread was intended to be general one, not for a particular special
>> >> case.
>> >>
>> >> -- Ian
>> >>
>> >> On Fri, Oct 15, 2010 at 5:17 PM, Douglas Theobald
>> >> <[log in to unmask]> wrote:
>> >>> On Oct 15, 2010, at 11:37 AM, Ganesh Natrajan wrote:
>> >>>
>> >>>> Douglas,
>> >>>>
>> >>>> The elements of a 'vector space' are not 'vectors' in the physical
>> >>>> sense.
>> >>>
>> >>> And there you make Ed's point -- some people are using the general vector definition, others are using the more restricted Euclidean definition.
>> >>>
>> >>> The elements of a general vector space certainly can be physical, by any normal sense of the term. And note that physical 3D space is not Euclidean, in any case.
>> >>>
>> >>>> The correct Wikipedia page is this one
>> >>>>
>> >>>> http://en.wikipedia.org/wiki/Euclidean_vector
>> >>>>
>> >>>>
>> >>>> Ganesh
>> >>>>
>> >>>>
>> >>>>
>> >>>> On Fri, 15 Oct 2010 11:20:04 -0400, Douglas Theobald
>> >>>> <[log in to unmask]> wrote:
>> >>>>> As usual, the Omniscient Wikipedia does a pretty good job of giving
>> >>>>> the standard mathematical definition of a "vector":
>> >>>>>
>> >>>>> http://en.wikipedia.org/wiki/Vector_space#Definition
>> >>>>>
>> >>>>> If the thing fulfills the axioms, it's a vector. Complex numbers do,
>> >>>>> as well as scalars.
>> >>>>>
>> >>>>> On Oct 15, 2010, at 8:56 AM, David Schuller wrote:
>> >>>>>
>> >>>>>> On 10/14/10 11:22, Ed Pozharski wrote:
>> >>>>>>> Again, definitions are a matter of choice....
>> >>>>>>> There is no "correct" definition of anything.
>> >>>>>>
>> >>>>>> Definitions are a matter of community choice, not personal choice; i.e. a matter of convention. If you come across a short squat animal with split hooves rooting through the mud and choose to define it as a "giraffe," you will find yourself ignored and cut off from the larger community which chooses to define it as a "pig."
>> >>>>>>
>> >>>>>> --
>> >>>>>> =======================================================================
>> >>>>>> All Things Serve the Beam
>> >>>>>> =======================================================================
>> >>>>>> David J. Schuller
>> >>>>>> modern man in a post-modern world
>> >>>>>> MacCHESS, Cornell University
>> >>>>>> [log in to unmask]
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>
>> >>>
>> >
>> >
>
> --
> --
> Tim Gruene
> Institut fuer anorganische Chemie
> Tammannstr. 4
> D-37077 Goettingen
>
> phone: +49 (0)551 39 22149
>
> GPG Key ID = A46BEE1A
>
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.9 (GNU/Linux)
>
> iD8DBQFMuVlgUxlJ7aRr7hoRAj9xAKCViaYrKDaXMstIUJFANe/n5hhrkwCgw5iE
> ISYjMLOKXbM58ByD/7vGLsA=
> =s4ZA
> -----END PGP SIGNATURE-----
>
>
|