LINUX.ORG.RU

[octave]График функции

 


0

0

Надо построить график функции F: R^3->R^3 (в 3d, короче) в octave.

Функция задана параметрически. Параметры:

r = sqrt(x^2 + y^2 + z^2)
theta = atan2( sqrt(x^2+y^2), z )
phi = atan2(y,x)

Соответственно:

x = f (r,theta,phi)
y = g (r,theta, phi)
z = h (r, theta, phi)

пробовал так:
octave:1> x = [-3:0.1:3]
octave:2> z=y=x
octave:3> [xx,yy,zz] = meshgrid (x,y,z)
warning: broken pipe — some output may be lost
octave:4> r = sqrt (xx.^2 + yy.^2+zz.^2)
warning: broken pipe — some output may be lost
octave:5> theta = atan2(sqrt (xx.^2+yy.^2),zz)
error: invalid conversion of NDArray to Matrix
error: evaluating assignment expression near line 5, column 7

В общем sqrt (..) - это NDArray, а zz - матрица. Как их сделать одного типа?? И вообще в том ли направлении я двигаюсь?

> octave:5> theta = atan2(sqrt (xx.^2+yy.^2),zz)

error: invalid conversion of NDArray to Matrix

error: evaluating assignment expression near line 5, column 7



Сложно сказать почему так странно, у меня этой ошибки нет на octave-3.2.3. Можно попробовать заменить `sqrt` на `.^0.5`.

GArik ★★★
()
Ответ на: комментарий от dragonfly

Как же помогать, если нету такой у меня? ) Я понял, что ошибка происходит при присваивании. Если theta нигде не использовалась, то как вообще тут ошибка может возникнуть? Может у меня какой-то дополнительный пакет установлен для этого? У меня вот такие:

> pkg list
Package Name    | Version | Installation directory
----------------+---------+-----------------------
data-smoothing *|   1.1.1 | /usr/share/octave/packages/data-smoothing-1.1.1
       general *|   1.0.7 | /usr/share/octave/packages/general-1.0.7
         image *|   1.0.8 | /usr/share/octave/packages/image-1.0.8
            io *|   1.0.7 | /usr/share/octave/packages/io-1.0.7
 miscellaneous *|   1.0.7 | /usr/share/octave/packages/miscellaneous-1.0.7
         optim *|   1.0.4 | /usr/share/octave/packages/optim-1.0.4
          plot *|   1.0.6 | /usr/share/octave/packages/plot-1.0.6
        signal *|   1.0.8 | /usr/share/octave/packages/signal-1.0.8
special-matrix *|   1.0.6 | /usr/share/octave/packages/special-matrix-1.0.6
Можно попробовать на основном octave'овском форуме поспрашивать, может чего подскажут.

GArik ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.