Ошибка при вычислении

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
KPEATOP
Бывалый
Бывалый
 
Сообщения: 291
Зарегистрирован: 02.12.2002 (Пн) 16:33
Откуда: Russia

Ошибка при вычислении

Сообщение KPEATOP » 15.09.2009 (Вт) 7:24

Доброе утро всем!
Кто-нибудь может подсказать почему не идет расчет по формуле:
Lambda = 64 / Re * (1 - Delta) ^ 2 / (1 + Delta ^ 2 + (1 - Delta ^ 2) / Log(Delta)) * (1 + u / Vp * (-0.5 / Log(Delta) - Delta ^ 2 / (1 - Delta ^ 2)))

Возникает ошибка:
Run-time error '16':
Expression too complex
Все переменные в формуле имеют тип double.
Разбиваю эту формулу на три множителя, все нормально считает без ошибок:
a1 = 64 / Re
a2 = (1 - Delta) ^ 2 / (1 + Delta ^ 2 + (1 - Delta ^ 2) / Log(Delta))
a3 = (1 + u / Vp * (-0.5 / Log(Delta) - Delta ^ 2 / (1 - Delta ^ 2)))
Lambda = a1 * a2 * a3
Из-за чего так может быть ? Ума не приложу? Подскажите, если знаете.
Вечность пахнет нефтью

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Ошибка при вычислении

Сообщение alibek » 15.09.2009 (Вт) 7:56

Expression too complex
Lasciate ogni speranza, voi ch'entrate.

Александр_ФФ
Обычный пользователь
Обычный пользователь
 
Сообщения: 93
Зарегистрирован: 23.11.2008 (Вс) 11:09
Откуда: Северодвинск

Re: Ошибка при вычислении

Сообщение Александр_ФФ » 15.09.2009 (Вт) 8:18

Мне кажется, что интерпритатор формулы не может взять такое сложное выражение. столько умножить и делить -я сам запутался в последовательности действий.
Попробуйте отдельно написать чилситель и знаменатель, не смешивая * / * /
Хотя у меня Ваша формула считается. Может исходные данные "запредельные"?

KPEATOP
Бывалый
Бывалый
 
Сообщения: 291
Зарегистрирован: 02.12.2002 (Пн) 16:33
Откуда: Russia

Re: Ошибка при вычислении

Сообщение KPEATOP » 15.09.2009 (Вт) 8:21

Александр_ФФ писал(а):Мне кажется, что интерпритатор формулы не может взять такое сложное выражение. столько умножить и делить -я сам запутался в последовательности действий.
Попробуйте отдельно написать чилситель и знаменатель, не смешивая * / * /
Хотя у меня Ваша формула считается. Может исходные данные "запредельные"?


Когда я на три множетеля разбил, у меня без ошибки считает. Что касается сложной формулы, у меня и посложнее были, нормально считало
Вечность пахнет нефтью

Александр_ФФ
Обычный пользователь
Обычный пользователь
 
Сообщения: 93
Зарегистрирован: 23.11.2008 (Вс) 11:09
Откуда: Северодвинск

Re: Ошибка при вычислении

Сообщение Александр_ФФ » 15.09.2009 (Вт) 8:45

Разбил на числитель и знаменатель
lambda2 = (64 * (1 + u * (-0.5 / Log(delta) - delta ^ 2 / (1 - delta ^ 2)) / vp) * (1 - delta) ^ 2) / (re * (1 + delta ^ 2 + (1 - delta ^ 2) / Log(delta)))
ответ даёт такой же, как и исходная формула.
Исходные данные подскажете? может в них чё-то?
Чем не устраивает вариант с а1*а2*а3 ?

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Re: Ошибка при вычислении

Сообщение Viper » 15.09.2009 (Вт) 10:02

Ответили же тебе
alibek писал(а):Expression too complex
- слишком сложное выражение.
Весь мир матрица, а мы в нем потоки байтов!


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот, Mail.ru [бот] и гости: 19

    TopList  
cron