2017-07-23 4 views
0

J'ai un formulaire -j(a*x + b*x) où j est un nombre complexe. Quand je ne me trompe pas, -j est défini comme std::complex<double> j(0,-1). Très bien, disons (a*x + b*y) = 5. J'ai lu sur SO, il sera traduit à std::complex<double> scalarCmplx(5,0).Nombre complexe multiplié par Scalar

Lors de la multiplication j*scalarCmplx cela se traduira à:

real = j.real * scalarCmplx.real = 0 * 5 = 0 
imag = j.imag * scalarCmplx.imag = -1 * 0 = 0 

Ainsi, dans ma compréhension, le résultat sera toujours 0. Est-ce que quelque chose me manque?

+3

La multiplication complexe ne fonctionne pas comme cela, il suffit de rechercher à nouveau la définition et il devrait être clair. – harold

+0

Oh, ai-je confondu quelque chose? J'ai cherché Krantz99, ai-je raison si (-j) * 5 traduirait facilement en 'j.real * 5, j.imag * 5'? (@harold) –

+3

Je vote pour clore cette question hors-sujet parce que c'est un malentendu sur la façon dont les nombres complexes fonctionnent, pas sur un problème de programmation. – Mat

Répondre

0

Comme en mathématiques simples où s(a+b) = sa+sb, le complexe -i se traduit par 0-i, donc s*-i = s*0-s*i = -si.