LINUX.ORG.RU
ФорумTalks

scilab - cos(x)/x


0

0

-->x=[-3.14:1e-2:+3.14] ; y =cos(x)./x ; plot(x,y)
!--error 27
division by zero...

-->x=[-%pi:1e-2:+%pi] ; y =cos(x)./x ; plot(x,y)
строит нормально

это фича или баг ?
ps
если фича - то пойду читать
зызы
нужно не мне - начальнику ставлю под winxp;
раньше(когда-то давно) он пользовался paw on nix (удалённо) -
- посмотрел я её под winnt(pawNT) -
- не понравилась панель, где графика рисуется
(затирается любым окном), но такого эффекта с cos(x)/x нет

>x=[-3.14:1e-2:+3.14] ; y =cos(x)/x ; plot(x,y)

x от -3.14 до 3.14 проходит через 0. предел cos(x)/x при x->0 не существует.

значит, все правильно --- деление на ноль и получается.

hateful_dead
()
Ответ на: комментарий от hateful_dead

>-->x=[-%pi:1e-2:+%pi] ; y =cos(x)./x ; plot(x,y) строит нормально

потому, что ни на каком шаге x не обращается в 0, в отличие от первого случая, когда на 314 шаге x становится равным нулю.

можешь попробовать на промежутке [-3.1415, 3.1415] с тем же шагом построить --- деления на ноль не должно быть. x его как бы перескочит.

PS. в первом посте я еще не до конца понял вопрос. сорри.

hateful_dead
()
Ответ на: комментарий от hateful_dead

так и есть - шаман ,однако, !
ps
как я это не заметил - обидно;
всё никак не привыкну к этому a-la "программистскому(дискретному)" стилю
зызы
вот dot slash нашел и тд

botrops-schlegelii ★★
() автор топика
Ответ на: комментарий от botrops-schlegelii

У pi больше знаков после запятой. При 3.14 он где-то обращается в ноль, а при pi хоть что-то после заптой да и останется.

stassats ★★★★
()

Странный этот ваш scilab. А точку перед "/" ты умышленно не поставил?

Да даже если и так. Matlab рисует "Warning: Divide by zero.", но рисует! Один из элементов будет Inf, всего делов-то! В scilab нет Inf и NaN?

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

в scilab "./" пришлось использовать умышленно (почитав help )
в pawNT "/" достаточно (без всяких точек)
зы
вот только изучаю - тонкостей не знаю
psps
надо еще R попробовать

anonymous
()
Ответ на: комментарий от anonymous

В матлабе так:

"\" : Matrix left division. X = A\B solves the symbolic linear equations A*X=B. Note that A\B is roughly equivalent to inv(A)*B. Warning messages are produced if X does not exist or is not unique. Rectangular matrices A are allowed, but the equations must be consistent; a least squares solution is not computed.

".\" : Array left division. A.\B is the matrix with entries B(i,j)/A(i,j). A and B must have the same dimensions, unless one is scalar.

"/" : Matrix right division. X=B/A solves the symbolic linear equation X*A=B. Note that B/A is the same as (A.'\B.').'. Warning messages are produced if X does not exist or is not unique. Rectangular matrices A are allowed, but the equations must be consistent; a least squares solution is not computed.

"./" : Array right division. A./B is the matrix with entries A(i,j)/B(i,j). A and B must have the same dimensions, unless one is scalar. ^Matrix power. X^P raises the square matrix X to the integer power P. If X is a scalar and P is a square matrix, X^P raises X to the matrix power P, using eigenvalues an

Разница существенная!

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

scilab
------------------
slash - (/) right division and feed back

Description

Right division. x=A / b is the solution of x*b=A .

b/a = (a' \ b')' .

a ./ b is the matrix with entries a(i,j)/ b(i,j) . If b is scalar (1x1 matrix) this operation is the same as a./b*ones(a) . (Same convention if a is a scalar).

Remark that 123./b is interpreted as (123.)/b . In this cases dot is part of the number not of the operator.

Backslash stands for left division.

System feed back. S=G/.K evaluates S=G*(eye()+K*G)^(-1) this operator avoid simplification problem.

Remark that G/.5 is interpreted as G/(.5) . In such cases dot is part of the number, not of the operator.

Comment // comments a line i.e lines which begin by // are ignored by the interpreter.


anonymous
()
Ответ на: комментарий от hateful_dead

> предел cos(x)/x при x->0 не существует.

Ты идиот? Предел бесконечен. Сдохни, безграмотная мразь!

anonymous
()
Ответ на: комментарий от anonymous

>Ты идиот? Предел бесконечен. Сдохни, безграмотная мразь!

нет. пределы справа и слева разные, значит предел не существует. подучи матан.

hateful_dead
()
Ответ на: комментарий от hateful_dead

> нет. пределы справа и слева разные, значит предел не существует. подучи матан.

Открой первый том Фихтенгольца на странице 117, а потом уже перечь умным людям.

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