Форум программистов, компьютерный форум, киберфорум
Lisp
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/16: Рейтинг темы: голосов - 16, средняя оценка - 4.94
 Аватар для RUSya82
242 / 120 / 14
Регистрация: 15.10.2010
Сообщений: 395

Биквадратное уравнение

18.06.2011, 22:18. Показов 3425. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Попытался написать Лямбда - Выражение для решения биквадратного уравнения. Вот:
Lisp
1
2
3
4
5
6
7
8
9
10
11
   ((lambda (d f) 
        (list (* d d)    ;тело функции
        (* (* -1 d) d) 
        (* f f) 
        (* (* -1 f) f) 
        )) 
            ((lambda (a b c) ;вместо списка параметров два новых Лямбда-вызова
                (/ (+ (* -1 b) sqrt (- (* b b) (* 4 a c))) (* 2 a))) 2 3 5) 
            ((lambda (a b c)
                (/ (- (* -1 b) sqrt (- (* b b) (* 4 a c))) (* 2 a))) 2 3 5)
             )
Проверил уже всё, передумал. Выдает ошибку:
Warning: Syntactic warning for form SQRT:
SQRT assumed special.
Что не так с вычислением квадратного корня?
Пишу:
Lisp
1
((lambda (x) (sqrt (x))) 25)
Пытаюсь просто вычислить квадратный корень - опять та же ошибка. Что не так? Что то с синтаксисом?

Добавлено через 1 час 56 минут
Ну да, синтаксис.
Lisp
1
2
3
4
5
6
7
8
9
10
11
   ((lambda (d f) 
        (list (* d d)    ;тело функции
        (* (* -1 d) d) 
        (* f f) 
        (* (* -1 f) f) 
        )) 
            ((lambda (a b c) ;вместо списка параметров два новых Лямбда-вызова
                (/ (+ (* -1 b) (sqrt (- (* b b) (* 4 a c)))) (* 2 a))) 2 3 5) 
            ((lambda (a b c)
                (/ (- (* -1 b) (sqrt (- (* b b) (* 4 a c)))) (* 2 a))) 2 3 5)
             )
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.06.2011, 22:18
Ответы с готовыми решениями:

Биквадратное уравнение на С++
Помогите создать программный код биквадратного уравнения без ООП.

Биквадратное уравнение
Найти корни биквадратного уравнения Ax^4+Bx^2+C=0 (Программа Паскаль) очень прошу помочь

биквадратное уравнение
Решите биквадратное уравнение ax4 + bx2 + c = 0 (помогите срочно надо). TURBO PASCAL

3
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
19.06.2011, 08:10
Цитата Сообщение от RUSya82 Посмотреть сообщение
Что не так с вычислением квадратного корня?
Пишу:
Lisp
1
((lambda (x) (sqrt (x))) 25)
Пытаюсь просто вычислить квадратный корень - опять та же ошибка. Что не так? Что то с синтаксисом?
В данном случае Lisp считает запись (x) - как вызов функции x, которая не принимает аргументов. Нужно так:
Lisp
1
2
3
CL-USER> ((lambda (x) (sqrt x)) 25)
5.0
CL-USER>
В Lisp'е используется префиксная запись. Вызов функции представляется в виде списка, в котором голова (первый элемент) - это имя функции, а хвост списка (остальные элементы) - это аргументы функции. Поэтому не надо (т.к. это будет неправильно), заключать аргументы функции в скобки, как это было бы необходимо в языках типа C.
Я бы решал так:
Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
(defun biquadratic-equation (a b c)
  (assert  (and (numberp a) (numberp b) (numberp c) (/= a 0))
       (a b c)
       "bad arguments: a=~a, b=~b, c=~c" a b c)
  (let* ((D (- (* b b) (* 4 a c)))  ; Дискриминант
     (d (sqrt D))           ; Корень из дискриминанта
     ;; Решаем сначала квадратное уравнение
     (y1 (/ (- (+ b d)) 2 a))       ; Первый корень квадратного уравнения
     (y2 (/ (- d b) 2 a))   ; Второй корень квадратного уравнения
     ;; Положительные корни биквадратного уравнения
     (x1 (sqrt y1))
     (x2 (sqrt y2)))
    ;; Можно вернуть также просто список корней
    ;; (list -x1 x1 -x2 x2)
    (values (- x1) x1 (- x2) x2)))
Пример:
Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
CL-USER> (biquadratic-equation 2 -3 1)
-0.70710677
0.70710677
-1.0
1.0
CL-USER> (biquadratic-equation 1 2 1)
#C(-0.0 -1.0)
#C(0.0 1.0)
#C(-0.0 -1.0)
#C(0.0 1.0)
CL-USER> (biquadratic-equation 1 -2 1)
-1.0
1.0
-1.0
1.0
1
 Аватар для RUSya82
242 / 120 / 14
Регистрация: 15.10.2010
Сообщений: 395
19.06.2011, 11:31  [ТС]
Дело в том, что biquadratic-equation - это функция с именем, а в Лабе, которую я решаю, нужно "разработать и реализовать лямбда - выражение, осуществляющее решение соответствующего задания", ну то есть в моём случае биквадратного уравнения. То бишь использовать анонимную функцию.
Ну то есть я так понял моё решение не правильно. Ответы то в принципе правильные выдает. Согласен, что коряво. Подскажи, что поправить, я сам поправлю.
0
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
19.06.2011, 12:20
Цитата Сообщение от RUSya82 Посмотреть сообщение
нужно "разработать и реализовать лямбда - выражение, осуществляющее решение соответствующего задания", ну то есть в моём случае биквадратного уравнения. То бишь использовать анонимную функцию.
ну так, по сути, тело функции - это и есть лямбда-выражение:
Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
CL-USER> ((lambda (a b c)
        (assert  (and (numberp a) (numberp b) (numberp c) (/= a 0))
             (a b c)
             "bad arguments: a=~a, b=~b, c=~c" a b c)
        (let* ((D (- (* b b) (* 4 a c)))    ; Дискриминант
           (d (sqrt D))         ; Корень из дискриминанта
           ;; Решаем сначала квадратное уравнение
           (y1 (/ (- (+ b d)) 2 a)) ; Первый корень квадратного уравнения
           (y2 (/ (- d b) 2 a)) ; Второй корень квадратного уравнения
           ;; Положительные корни биквадратного уравнения
           (x1 (sqrt y1))
           (x2 (sqrt y2)))
          ;; Можно вернуть также просто список корней
          ;; (list -x1 x1 -x2 x2)
          (values (- x1) x1 (- x2) x2)))
      1 -2 1)
-1.0
1.0
-1.0
1.0
CL-USER>
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.06.2011, 12:20
Помогаю со студенческими работами здесь

Биквадратное уравнение
Даны действительные числа a, b, c (a ≠ 0). Полностью исследовать биквадратное уравнение ax4 + bx2 + c = 0, т.е. если действительных...

Решить биквадратное уравнение
помогите на дельфи решить биквадратное ур-ие: ax^4+bx^2+c=0 (pleese!!!)

Решить биквадратное уравнение
2)даны a b c биквадратное ax^4+bx^2+c=0 решить пожалуйста зачет сдать а то на пары не ходил(( в паскале

Решить биквадратное уравнение
1)Даны действительные числа а,в,с (а>0).Полностью исследовать биквадратное уравнение ах4+вх2+с=0,т.е. если действительных корней нет,то...

Решить биквадратное уравнение
Помогите сделать прогу на биквадратное уравнение очень нада !!!


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru