(изменено: Максим Андреков, 16 апреля 2009г. 14:19:01)

Тема: Численные методы и VBA

Хочу написать в VBA програму численных методов (задача гидрогазодинамики) используя геометрические элементы Автокада (посороение геометрический модели). Вот вопрос а стоит ли ...всмысле по времени расчета и вообще используют ли его для численных методов и на сколько он приспособлен. Заранее спасибо.

Re: Численные методы и VBA

Вечный вопрос :)
Для начала посмотри В чем зло VBA
Ну и от себя.При одном и том же алгоритме решения задачи код, написанный на VBA,конечно будет работать медленнее кода написанного на C++, Pascal,VB и т.п. Но при небольших объемах вычислений конечный пользователь может и не почувствовать разницы.Если AutoCAD будет использоваться только для графического представления результатов расчетов, то использовать VBA для написания всего кода программы скорее всего не стоит, но при этом возникнут проблемы передачи данных из одной системы в другую.
В любом случае чтобы более-менее точно определить время работы программы, ее все равно сначала придется написать.
Для оценки времени работы функции можно использовать следующий код:

Private Sub TestTime()
'К сожалению в VBA нет процедурного типа данных, а то было бы красиво:
'Sub TestTime(Proc as TProcedure, N as double)
Dim t As Date
Dim N As Long
Dim i As Long

'***ЧИСЛО ПОВТОРЕНИЙ***
N = 4000
t = Time
For i = 1 To N
    '***ВЫПОЛНЯЕМЫЕ ПРОЦЕДУРЫ****
    call testFunction
Next i
t = Time - t
Debug.Print "Time = " + CStr(t)
Debug.Print "n = " + CStr(N)
t = t * 24 * 60 * 60
If t <> 0 Then
    Debug.Print "Speed,n/sec = " + CStr(N / t)
Else
    Debug.Print "Undefined speed. Time = 0 sec"
End If
End Sub

Все, что написано на VBA(в силу его простоты и ограниченности), можно легко переписать почти на чем угодно, а вот обратно далеко не всегда.
Поэтому, если Вам удобно писать на VBA и Вы можете с его помощью решить свою задачу, то почему бы и нет.

Re: Численные методы и VBA

Максим, Mika рассмотрел вопрос с точки зрения оценки быстродействия.

Существуют еще некоторые аспекты. В VBA используется тот же набор встроенных математических функций и операторов, что и в VB. В принципе, набор достаточный для элементарных вычислений. Но необходимо точно представлять себе как работают операторы деления (в частности, оператор целочисленного деленя) и как производится округление результатов деления.
Если вам важна точность вычислений, или вы намерены управлять этой точностью.
Эта тема обсуждалась на форуме раза два или три, попробуйте поискать ее.

Кроме того, если речь идет о вычисляемых формулах, то к программе может быть подключен такой модуль, как библиотека Microsoft Script Control.

Re: Численные методы и VBA

Спасибо. Я хочу использовать автокад как отдельный моджкль постореения геометрии (чтобы приблизиться к универсальности постороения геометрии задачи численных методов т.е. каждый раз новая геометрия задачи и рисуется она очень просто).