(define (make-complex a b) (cons a b))
(define (real x) (car x))
(define (imag x) (cdr x))
(define (complex-sqrt x)
(define (first a b) (sqrt (/ (+ a
(sqrt (+
(* a a)
(* b b))))
2)))
(define (second a b) (sqrt (/ (+ (* -1 a)
(sqrt (+
(* a a)
(* b b))))
2)))
(cons (first (real x) (imag x)) (second (real x) (imag x))))
(complex-sqrt (make-complex 2 0))
(complex-sqrt (make-complex -3 0))
Так что для некоторого контекста эта функция находит квадратный корень из комплексного числа. а - действительная часть комплексного числа, а Ь - мнимая часть. Функция complex-sqrt не должна работать для некоторых значений b = 0, но я не уверен, почему. Я пробовал несколько значений a, где b равно 0, и помещал их в мой калькулятор, но они оба дают мне тот же ответ.квадратный корень из комплексных чисел в схеме
Спасибо
Как я могу это исправить? –
Кроме того, вы знаете любые значения a, где b равно 0, что не будет работать для этого кода? –
что-то вдоль строк 'if b <0, тогда imag = -imag'. – LutzL