Модераторы: mihanik
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка есть но найти не могу. Хелп, VBA в Excel 
:(
    Опции темы
nightvi
Дата 22.4.2008, 21:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 78
Регистрация: 20.7.2007

Репутация: нет
Всего: нет



Народ хелп нужно решить задачу методом хорд и касатльных
даны три функции и найдены к ним производные их код такой 
Код

Public Function F(X As Double) As Double
Application.Volatile
F = (3 * X ^ 2 - 0.5 * X - 5) / (X * (X + 1))
End Function
Public Function F_1(X As Double) As Double
Application.Volatile
F_1 = (-2.5 * X ^ 2 + 10 * X + 14) / (X + 1)
End Function
Public Function F_2(X As Double) As Double
Application.Volatile
F_2 = (2.5 * X ^ 2 - 9.5 * X - 5) / X
End Function
Public Function F1_0(X As Double) As Double
Application.Volatile
F1_0 = (3.5 * X ^ 2 + 10 * X + 5) / (X ^ 2 * (X + 1) ^ 2)
End Function
Public Function F1_1(X As Double) As Double
Application.Volatile
F1_1 = (-2.5 * X ^ 2 - 5 * X - 4) / (X + 1) ^ 2
End Function
Public Function F1_2(X As Double) As Double
Application.Volatile
F1_2 = (2.5 * X ^ 2 + 5) / X ^ 2
End Function
Public Function F2_0(X As Double) As Double
Application.Volatile
F2_0 = (-7 * X ^ 4 - 37 * X ^ 3 - 60 * X ^ 2 - 40 * X - 10) / (X ^ 3 * (X + 1) ^ 4)
End Function
Public Function F2_1(X As Double) As Double
Application.Volatile
F2_1 = 3 / (X + 1) ^ 3
End Function
Public Function F2_2(X As Double) As Double
Application.Volatile
F2_2 = -10 / X ^ 3
End Function

далее написал 3 функции на вычисление абсцис точек методом хорд и касательных
третья тоесть Myfunc5 рабоатет идеально сбоев нет так как она просто тестовая,
а вот первая и вторая хоть и выдают значения, но не соотвествуют графику построеному по точкам на основании функции,
ошибки найти не могу вот код 
Код

Public Function Myfunc3(A As Double, B As Double, E As Double) As Double
Application.Volatile
Dim FB As Double
Dim FB1 As Double
Dim FA As Double
Dim C As Double
Dim Z As Double
Do
FB = (3 * B ^ 2 - 0.5 * B - 5) / (B * (B + 1))
FB1 = (3.5 * B ^ 2 + 10 * B + 5) / (B ^ 2 * (B + 1) ^ 2)
FA = (3 * A ^ 2 - 0.5 * A - 5) / (A * (A + 1))
C = A - (((B - A) * FA) / (FB - FA))
Z = B - (FB / FB1)
A = C
B = Z
D = FB - FA
Loop Until FB - FA < E
Myfunc3 = B
End Function

Public Function Myfunc4(A As Double, B As Double, E As Double) As Double
Application.Volatile
Dim C As Double
Dim Z As Double
Do While B - A >= E
A = A - (((B - A) * (3 * A ^ 2 - 0.5 * A - 5) / (A * (A + 1))) / ((3 * B ^ 2 - 0.5 * B - 5) / (B * (B + 1)) - (3 * A ^ 2 - 0.5 * A - 5) / (A * (A + 1))))
B = B - ((3 * B ^ 2 - 0.5 * B - 5) / (B * (B + 1)) / (3.5 * B ^ 2 + 10 * B + 5) / (B ^ 2 * (B + 1) ^ 2))
Loop
Myfunc4 = B
End Function
Public Function Myfunc5(A As Double, B As Double, E As Double) As Double
Application.Volatile
Do While B - A >= E
B = B - 0.0001
A = A + 0.0001
Loop
Myfunc5 = B
End Function

помогите пожалуйста есть есть возможность и знания
Спасибо
PM MAIL   Вверх
Akina
Дата 22.4.2008, 22:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 26
Всего: 454



Что такое трассировка - знаете? вперед... а длинные многоэтажные безобразия разбивайте на небольшие - в 1-2-3 действия - фрагменты. Не надо экономить на промежуточных переменных.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
nightvi
Дата 23.4.2008, 07:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 78
Регистрация: 20.7.2007

Репутация: нет
Всего: нет



нет не знаю а что это такое?
PM MAIL   Вверх
RockClimber
Дата 28.4.2008, 10:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 848
Регистрация: 5.5.2006
Где: планета 013 в тен туре

Репутация: 7
Всего: 15



Цитата(nightvi @ 23.4.2008,  07:02)
нет не знаю а что это такое?

Это вот что:
Код

Sub Proverka()
Dim a As Double
a = F(123.456)
End Sub

Ставим курсор внурь функции, жмём F8. Наведением курсоры мыши выясняем значение переменной в любой момент времени.
Кликом по "Add Watch..." вызываем окно наблюдения за переменными и пихаем их туда (чтобы видеть значения нескольких сразу). Полезно вывести панельку "Debug". Можно использовать команду "Stop" - если надо быстро выполнить много строк кода, а потом резко притормозить и посмотреть значения переменных.

Добавлено через 3 минуты и 52 секунды
Нажатие F8 выполняет одну строку. Нажимать F8 столько раз, сколько надо будет до выявления ошибки... Нажатие F8 на строчке с вызовом в вункции позволяет посмотреть, как эта функция выполняется - тоже построчно.

Можно еще Break point ставить... Ну и вкуривать мануалы, конечно  smile 


--------------------
Хорошо кинутый дятел далеко летит, крепко встревает, долго торчит.
PM MAIL GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование, связанное с MS Office"
mihanik staruha

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами



  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • Оставляйте свои записи в "Книге отзывов о работе администрации"
  • А вот тут лежит FAQ нашего подраздела


Если Вам понравилась атмосфера форума, заходите к нам чаще!
С уважением mihanik и staruha.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема »


 




[ Время генерации скрипта: 0.0456 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.