![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() |
Tribunal |
![]()
Сообщение
#1
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 233 Пол: Женский Реальное имя: Dasha Репутация: ![]() ![]() ![]() |
Здравствуйте.
Мне нужно написать программу , которая будет уравнивать химическую реакцию. Соответственно нужно прийти к СЛАУ, по которой и находить коэффициенты реакции. В этом и состоит сейчас моя проблема.Написанный мною код в C++Builder 6 выдаёт ошибку о типе integer. Вот собственно код.Надеюсь на какие-то идеи и вашу помощь. На форме Edit'ы для введения элементов веществ и их индексов с расчетом на 3 вещества в левой части и 4- в правой.А так же-StringGrid для выведения полученной матрицы.
Сообщение отредактировано: Tribunal - 4.11.2007 11:08 -------------------- irreparabilium felix olivio rerum
|
![]() ![]() |
Tribunal |
![]()
Сообщение
#2
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 233 Пол: Женский Реальное имя: Dasha Репутация: ![]() ![]() ![]() |
извините....пожалуйста! помогите сделать,чтобы этот код работал с моими матрицами...
у меня никак не получается=(( заранее спасибо! Код static const int maxsvditerations = 30; double extsign(double a, double b); double mymax(double a, double b); double pythag(double a, double b); void svdsolvefundamental([b]ap::real_2d_array a[/b], int m, int n, [b] ap::real_2d_array& solutions[/b], int& dimension) { int nm; int minmn; ////........ ap::real_1d_array rv1; ap::real_1d_array w; ap::real_2d_array v; bool flag; double epsilon; rv1.setbounds(1, n); w.setbounds(1, n); v.setbounds(1, n, 1, n); if( m<n ) { minmn = m; } else { minmn = n; } g = 0.0; vscale = 0.0; anorm = 0.0; for(i = 1; i <= n; i++) { l = i+1; rv1(i) = vscale*g; g = 0; s = 0; vscale = 0; if( i<=m ) { for(k = i; k <= m; k++) { vscale = vscale+fabs(a(k,i)); } /// ..... epsilon = epsilon*n*ap::machineepsilon; dimension = 0; for(i = 1; i <= n; i++) { if( fabs(w(i))<=epsilon ) { dimension = dimension+1; } } solutions.setbounds(1, n, 0, dimension); for(i = 1; i <= n; i++) { solutions(i,0) = 0; for(j = 1; j <= m; j++) { solutions(i,0) = solutions(i,0)+a(j,i)*a(j,n+1); } } k = 1; for(j = 1; j <= n; j++) { if( fabs(w(j))>epsilon ) { for(i = 1; i <= n; i++) { v(i,j) = v(i,j)/w(j); } } else { for(i = 1; i <= n; i++) { solutions(i,k) = v(i,j); } k = k+1; } } for(i = 1; i <= n; i++) { a(1,i) = 0; for(j = 1; j <= n; j++) { if( fabs(w(j))>epsilon ) { a(1,i) = a(1,i)+v(i,j)*solutions(j,0); } } } for(i = 1; i <= n; i++) { solutions(i,0) = a(1,i); } } вот файлы этого алгоритма ![]() ![]() -------------------- irreparabilium felix olivio rerum
|
![]() ![]() |
![]() |
Текстовая версия | 18.07.2025 9:56 |