Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 07.04.2011, 14:15   #1 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию Кое что о логарифмах и экспонентах

Временами в студенческих программах появляется конструкция вида
y:= exp(x*ln(e));
долженствующая реализовать выражение типа у равен е в степени х. При этом в программе предусматривается ввод постоянной Эйлера (е), и даже зачастую не в виде константы, а с клавиатуры.
Всё это не то, чтобы ошибка, а просто излишний и изрядно нелепый наворот ненужных значков и действий. Потому что задачу решает стандартная функция
у:= ехр(х);
Ехр(х) - это и есть возведение числа е в степень х.
Откуда же и почему возникает логарифм?
Ответ прост - от незнания того, что такое вообще логарифм и с чем его едят, и, соответственно, бездумного применения общей формулы возведения в степень.
Попытаемся разобраться.
Будем исходить из того, что все представляют себе смысл действия "возведение в степень" (в дальнейшем основание степени а будем считать строго положительным):
Название: L_1.jpg
Просмотров: 2271

Размер: 1.8 Кб
Так вот, логарифм - это ни что иное, как показатель степени b, т.е.
Название: L_2.jpg
Просмотров: 2246

Размер: 2.0 Кб
Подставляя одно в другое, получаем основное логарифмическое тождество:
Название: L_3.jpg
Просмотров: 2291

Размер: 1.7 Кб
Естественно, основанием логарифма, как и степени, может быть любое положительное число. Но два из них выделены особо - это 10 и е, дающие, соответственно, десятичные (lg) и натуральные (ln) логарифмы:
l_4.jpg
Десятичными логарифмами мы заниматься не будем, нас будут интересовать в первую очередь логарифмы натуральные, потому что ln(x) - это стандартная функция во всех языках программирования.
Но прежде отметим два фундаментальных свойства любых логарифмов. Из очевидных равенств
l_5.jpg и т.д.
следует, что
Название: L_6.jpg
Просмотров: 2319

Размер: 1.8 Кб
и, в частности, для натуральных логарифмов
Название: L_7.jpg
Просмотров: 2294

Размер: 1.4 Кб
Отсюда понятно, что множитель вида ln(e) - бессмыслен, ибо он есть тождественная единица.
Второе свойство (легко доказуемо):
l_8.jpg
А вот теперь вернемся к общему алгоритму программирования возведения произвольного числа в произвольную степень. Используя основное логарифмическое тождество и с учетом последней формулы, имеем:
l_9.jpg
Вот здесь, когда основание степени а отлично от е, логарифм уместен и необходим. А если же а=е, то настоятельно призываю пользоваться стандартной функцией ехр(х) и не маяться дурью.
Vladimir_S вне форума   Ответить с цитированием
Старый 07.04.2011, 14:19   #2 (permalink)
Павел
StalkerMEN
 
Аватар для Павел
 
Регистрация: 19.04.2009
Сообщений: 3,702
Записей в дневнике: 2
Сказал(а) спасибо: 0
Поблагодарили 3 раз(а) в 2 сообщениях
Репутация: 4466
По умолчанию

надоели просьбы "сделайте до завтра"? решил в лекторы податься?
Павел вне форума   Ответить с цитированием
Старый 07.04.2011, 14:32   #3 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Павел Посмотреть сообщение
надоели просьбы "сделайте до завтра"? решил в лекторы податься?
А думаешь, одно заменяет другое?
Надежды, конечно, мало - но вдруг кто-то да прочтёт и разберется? Всё благо...
Vladimir_S вне форума   Ответить с цитированием
Старый 07.04.2011, 14:36   #4 (permalink)
Павел
StalkerMEN
 
Аватар для Павел
 
Регистрация: 19.04.2009
Сообщений: 3,702
Записей в дневнике: 2
Сказал(а) спасибо: 0
Поблагодарили 3 раз(а) в 2 сообщениях
Репутация: 4466
По умолчанию

Цитата:
Надежды, конечно, мало - но вдруг кто-то да прочтёт и разберется? Всё благо...
я прочёл, азы у меня есть, более менее понятно, но с 1 раза не получится это точно, с часик посидеть, поломать голову и вот тогда всё будет работать
Павел вне форума   Ответить с цитированием
Старый 07.04.2011, 15:37   #5 (permalink)
kreol
Member
 
Аватар для kreol
 
Регистрация: 27.02.2010
Сообщений: 659
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1312
По умолчанию

Цитата:
Сообщение от Vladimir_S Посмотреть сообщение
А думаешь, одно заменяет другое? Надежды, конечно, мало - но вдруг кто-то да прочтёт и разберется? Всё благо...
судя по просьбам написать некоторые программы это вряд ли. ибо код программ написан на многих сайтах причем чуть ли не первая ссылка в поисковике ведет к решению...

нужно сделать раздел здесь что может понадобиться для написания простых программ)))
kreol вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 09.09.2011, 13:21   #6 (permalink)
Skazzi
Member
 
Регистрация: 24.08.2011
Сообщений: 15
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

kreol, а сами-то как учились? Никого никогда не просили о помощи?
Skazzi вне форума   Ответить с цитированием
Старый 09.09.2011, 14:50   #7 (permalink)
Edgar23
Специалист
 
Регистрация: 12.01.2011
Адрес: Ростовская область, Таганрог
Сообщений: 2,024
Записей в дневнике: 9
Сказал(а) спасибо: 127
Поблагодарили 29 раз(а) в 16 сообщениях
Репутация: 12404
По умолчанию

спасбо Владимир, жизнь моя далека от высшей математики, забылось то что я прекрасно знал, (поработал пару лет на стройке и усохли драгоценные нейроны с важной инфой), а вашу небольшую лекцию почитал и кое что зашевелилось.
Edgar23 вне форума   Ответить с цитированием
Старый 04.12.2011, 14:58   #8 (permalink)
Катеринаа
Новичок
 
Регистрация: 21.10.2011
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Если, например, вот так y[i,j]:=(exp(1/x[i])*ln(exp))+ln(a[j]*x[i]))/sin(a[j]*x[i])+4
а абс мне пишет, что функция EXP с параметрами указанных типов не найдена.
Катеринаа вне форума   Ответить с цитированием
Старый 04.12.2011, 16:00   #9 (permalink)
Long Cat
Banned
 
Регистрация: 01.09.2009
Сообщений: 4,396
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 2544
По умолчанию

Цитата:
Сообщение от Катеринаа Посмотреть сообщение
*ln(exp)
ну бред же кромешный!
ln(e)=1
Long Cat вне форума   Ответить с цитированием
Старый 04.12.2011, 16:03   #10 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Катеринаа Посмотреть сообщение
а абс мне пишет, что функция EXP с параметрами указанных типов не найдена.
И правильно пишет! Поскольку
Цитата:
Сообщение от Катеринаа Посмотреть сообщение
ln(exp)
что за бред? Показательная функция (ехр) бывает (точно так же, как, например, Sin) от чего-то, а не сама по себе. Т.е. Exp(x), Exp(-1.8) и т.п. А если Вы имеете в виду Ln(e), то повторяю - такой множитель бессмыслен, ибо он по определению есть тождественная единица.

P.S. LongCat, ну надо же - даже эпитеты у нас в отношении написанного идентичны!
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 02:24.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.