1 Востаннє редагувалося HetmanNet (29.10.2012 18:56:12)

Тема: Вища математика в С++

Доброго вечора :)
Зараз пишу програму для розрахунку математичної моделі електродвигуна, необхідно алгоритми обчислення передаточної функції зображеної в формі Лапласа, але не використовуючи бібліотек (мається на увазі, не стандартних). Як то можна зробити? Хто пам'ятає?
Також цікавлять алгоритми обчислення інтегралів та похідних.

P.S. Пишу на С, тому тут пишу, але алгоритм бажано просто описати, код сам вже напишу.
P.P.S. Програма немає прямого відношення до навчання, але розрахунок моделі має.
P.P.P.S. .Пропонувати використовувати MatLab не треба, бо вже давно використовую і математична модель спочатку робилася в ньому.

2

Re: Вища математика в С++

Тут треба поконкретніше, і найперше: чисельні методи, чи символьні обчислення? Тобто вам треба обчислювати це для елементарних функцій і точно, чи отримувати приблизні числові значення?

3

Re: Вища математика в С++

ІМГО, якщо HetmanNet зробить на символьних обчисленнях, то проФФесори самі не второпають що їм принесли. Бо вони самі здавали диплом вирішення диференційних рівнянь методом Монте Карло на Фортрані. Навіть якщо людина змінить стандартний метод отримання псевдовипадкових чисел(бо воно страшне в багатьох компіляторах), то ці вищезгадані розумники не допетрають джерельного кода. Я дуже хочу помилятися, але ... Sad, but True.
Це не стосується може 4-х навчальних закладів України.

4

Re: Вища математика в С++

d4rkc10ud написав:

ІМГО, якщо HetmanNet зробить на символьних обчисленнях, то проФФесори самі не второпають що їм принесли. Бо вони самі здавали диплом вирішення диференційних рівнянь методом Монте Карло на Фортрані. Навіть якщо людина змінить стандартний метод отримання псевдовипадкових чисел(бо воно страшне в багатьох компіляторах), то ці вищезгадані розумники не допетрають джерельного кода. Я дуже хочу помилятися, але ... Sad, but True.
Це не стосується може 4-х навчальних закладів України.

Джерельний код професорам не надаватиметься, бо вони в програмуванні мало тямлять - їм ближче електротехніка та електромеханіка (в мене кафедра випускає електромеханіків, а не програмістів). Головне точність, бажано з можливістю регулювати її, бо іноді треба висока точність, а іноді з певною похибкою (якщо можна наведіть інформацію як її визначити). Обчислення буде виконуватися для отримання характеристик електродвигунів з певною точністю, будуть враховуватися нелінійності елементів схем заміщення, тобто йтиму методом миттєвих потужностей, а не повної.

5 Востаннє редагувалося HetmanNet (29.10.2012 19:26:27)

Re: Вища математика в С++

bunyk написав:

Тут треба поконкретніше, і найперше: чисельні методи, чи символьні обчислення? Тобто вам треба обчислювати це для елементарних функцій і точно, чи отримувати приблизні числові значення?

Модель складається з чималої кількості рівнянь, що правда досить елементарних. Тому мабуть варто використати чисельні методи, бо символьні для великої моделі мабуть не варто використовувати, та й потрібна точність в деяких випадках досить не мала.

6

Re: Вища математика в С++

Метод Монте-Карло дешево і сердито. Розрахунок похибки для цього методу залежить від похибки генератора псевдовипадкових чисел.

7 Востаннє редагувалося HetmanNet (29.10.2012 21:03:10)

Re: Вища математика в С++

d4rkc10ud написав:

Метод Монте-Карло дешево і сердито. Розрахунок похибки для цього методу залежить від похибки генератора псевдовипадкових чисел.

А можете описати? Чи сказати де можна нормально почитати про нього? Бо назва знайома, а згадати нічого не можу.. ну це здається для інтегралів використовують..

8

Re: Вища математика в С++

Так, це класичний відомий метод обчислення інтегралів\диференціалів. До того ж ви могли чути про нього через "індусію" програмістів НАСА. Для розрахунку траєкторії польоту апарата Піонер, що летів до Юпітера, точніше її коригування вирішили використовувати метод Монте-Карло, що взагалі-то раціонально. Але про точність генератора псевдовипадкових чисел вони вирішили не думати, тому космічний апарат схибив "лише" на 20 мільйонів кілометрів і багатомільярдному проекту гаплик. Особисто я ознайомився з методом за книжкою "Турбо Паскаль" Нємюгіна. Але в вікіпедії теж про це є.

9

Re: Вища математика в С++

d4rkc10ud написав:

Так, це класичний відомий метод обчислення інтегралів\диференціалів. До того ж ви могли чути про нього через "індусію" програмістів НАСА. Для розрахунку траєкторії польоту апарата Піонер, що летів до Юпітера, точніше її коригування вирішили використовувати метод Монте-Карло, що взагалі-то раціонально. Але про точність генератора псевдовипадкових чисел вони вирішили не думати, тому космічний апарат схибив "лише" на 20 мільйонів кілометрів і багатомільярдному проекту гаплик. Особисто я ознайомився з методом за книжкою "Турбо Паскаль" Нємюгіна. Але в вікіпедії теж про це є.

"Турбо Паскаль" Нємюгіна ? 2-е видання? Зараз таку маю.

10

Re: Вища математика в С++

Щодо похідних, як їх обчислити?

11 Востаннє редагувалося bunyk (29.10.2012 22:15:47)

Re: Вища математика в С++

HetmanNet написав:

Щодо похідних, як їх обчислити?

Ми на чисельних методах вчили якийсь метод скінченних різниць, але я його вже забув. А ще брали й інтерполювали функцію на певному відрізку поліномом, а тоді отримували похідну від полінома, це простіше.

Перепрошую, метод розділених різниць. Кажу що забув. :)