Форум программистов, компьютерный форум CyberForum.ru

Метод ньютона для СНУ - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Оператор if http://www.cyberforum.ru/cpp-beginners/thread93707.html
Почему у меня оператор Else выдает как ошибку(Е2054 Misplaced else)? и в операторе if не нравится как я записал if((s==a)&&(f==p)); ? #include<vcl.h> #include<iostream.h> void main(void) { const a=33,p=222222; int s,f; cout<<"vvedite ceriu pasporta- "; cin>>s; cout<<"vvedi nomer- ";
C++ динамический массив 1) Дан массив из 6 элементов типа целое без знакаю Сформировать указатель на этот массив и обратится ко второму элементу массива разными способами 2) Выделить память для трёхмерного массива в . Изменить индексацию массиватак, чтобы начальный элементимел индексы -1, -2, -3 http://www.cyberforum.ru/cpp-beginners/thread93685.html
вопрос, наверное, по потокам C++
вот есть программка, работающая с текстовым файлом, первые два символа которого хранят длинну строки. программыа должна вывести всю строку (включая первые два символа) #include <iostream> #include <string> #include <fstream> using namespace std; int main() { ifstream fin("input.txt"); if (!fin) { cout<<"fail input.txt not found"<<endl; return 1;
Фибоначчи C++
Дано целое число N(>1), которое является числом Фибоначчи: N=Fk. Найти целые числа Fk-1 и Fk+1 - предыдущие и последующее числа Фибоначчи.
C++ Нужно посчитать количество слов в тексте http://www.cyberforum.ru/cpp-beginners/thread93680.html
Нужно посчитать количество слов в тексте, подкииньте, кто знает какие-то идеи.
C++ указатели с массивами Привет.Помогите пожалуйста решить задачу. В массиве А вставить после первого максимального элемента k наименьших элементов. например 2 5 6 3 6 8 6 4 4 с клавы вводим k=3 получим 2 5 6 3 6 8 2 3 4 4 6 4 (если можно с пояснениями) Заранее спасибо. P.S. Использовать указатели и функции. подробнее

Показать сообщение отдельно
nevod
0 / 0 / 0
Регистрация: 04.02.2010
Сообщений: 16
09.02.2010, 00:05     Метод ньютона для СНУ
Привет всем!!!)) Помогите пожалуста перевести программу з матлаба на С++. Вот исходник матлаба и функции(обратна, транспонирование) которые уже есть. Помогите пожалуста завтра здача курсовой, а у меня нечего не готово!!(((

матлабовська прога

function Z=F(X) function W=JF(X)
x=X(l);y=XB); x=X(1); y=X(2);
Z=zeros(l,2); W=[2*x-2 -1;2*x 8*y] ;
Z(1) = x^2 - 2*x - y + 0.5;
Z(2) = x^2 + 4y^2 - 4;
function [Р, iter,err] =newdim(F,JF,P,delta,epsilon,max)
% Вход - F - система, записанная в форме М-файла F.m
% - JF - матрица Якоби F, записанная в форме М-файла JF.M
% - Р - начальное приближение к решению
% - delta - допустимое отклонение для Р
% - epsilon - допустимое отклонение для F(P)
% - maxl - максимальное число итераций
% Выход - Р - приближенное решение
% - iter - число потребовавшихся итераций
% - err - ошибка вычисления Р '
Y=feval(F,P);
for k=1:max
J=feval(JF,P);
Q=P-(J\Y')';
Z=feval(F,Q);
err=norm(Q-P);
relerr=err/(norm(Q)+eps);
P=Q;
Y=Z;
iter=k;
if (err<delta)|(relerr<delta)|(abs(Y)<epsilon)
break
end
end

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
//----------------------begin obernena-----------------------
void obrat(double **a)
{
    double **d, vrem, max, tryam;
    int i, j, k, *p, jmax, temp;
 
    d = (double **)malloc(sizeof(double) * 2*n); //videlenie dlinnoi stroki
    for (i=0; i < n; i++)
        d[i] = (double *)malloc(sizeof(double) * n);
 
    for (i=0; i < n; i++) {
        for (j=0; j < n; j++)
            d[i][j] = a[i][j];
        for (j=n; j < 2*n; j++) {
            if (j == n+i)
                d[i][j] = 1;
            else
                d[i][j] = 0;
        }
    }
 
    p = (int *)malloc(sizeof(int) * n);
    for (j=0; j < n; j++)
        p[j] = j;
 
    //k-nomer pervogo uravn
    for (k=0; k < n-1; k++) {
        max = fabs(d[k][k]);
        jmax=j;
        for (j=k; j < n; j++)
            if (fabs(d[k][j]) > max) {
                max = fabs(d[k][j]);
                jmax = j;
                temp = p[k];
                p[k] = p[jmax];
                p[jmax] = temp;
            }
            //menyaem mestami stolbiki
            for (i=k; i < n; i++) {
                tryam = d[i][k]; //tryam - vrem peremennaya
                d[i][k] = d[i][jmax];
                d[i][jmax] = tryam;
            }
            for (i=k+1; i < n; i++) {
                vrem = d[i][k] / d[k][k];
                for (j=k; j < 2*n; j++)
                    d[i][j] -= vrem*d[i][j];
            }
    }
    for (k=n-1; k > 0; k--) {
        for (i=k-1; i >= 0; i--) {
            vrem = d[i][k] / d[k][k];
            for (j=k; j < 2*n; j++)
                d[i][j] = d[i][j] - vrem*d[i][j];
        }
    }
    for (i=0; i < n; i++) {
        for (j=n; j < 2*n; j++)
            d[i][j] = d[i][j] / d[i][i];
        d[i][i] = 1;
    }
    for (i=0; i < n; i++) {
        for (j=n; j < 2*n; j++)
            printf("%f ", d[p[i]][j]);
        printf("\n");
    }
}
 
//------------------- end obernena-----------------

транспонованая!!!

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
//------------------- begin Transposition----------
 
void  Transposition ( int n,  double a[][2] ) {
    double tmp;
 
  for ( int i=0; i < n -1 ; i++ )      // äî ïðåäïîñëåäГ*ГҐГ© ñòðîêè
    for ( int j = i + 1; j < n; j++ )  // Г± ýëåìåГ*ГІГ* Г§Г* ГЈГ«Г*ГўГ*îé äèГ*ГЈГ®Г*Г*ëüþ
      {
        tmp = a [ i ][ j ];
        a [ i ][ j ] =  a [ j ][ i ];
        a [ j ][ i ] = tmp;
      }
 
 
  int n = 3, i, j;
  double  a[ 2 ][ 2 ] = {  };
 
  Transposition ( 2, a );
 
  cout << "\n\t     matrix A: \n";
  for ( i=0; i < n; i++ )
   {
     for ( j=0; j < n; j++ )
       cout << '\t' << a[ i ][ j ];
     cout << '\n';
   }
} 
//------------------the end transposition------------
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 19:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru