Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.11.2010, 23:05   #1
Onni
Форумчанин
 
Аватар для Onni
 
Регистрация: 28.12.2008
Сообщений: 134
Радость Метод пополнения. Mathematica for student

Если вы разбираетесь в Mathematica for student,тогда ваш совет просто необходим...
имеется следущее в Mathematica for student:

Код:
Clear[a, A, dop];
A = a = ( {
     {1, 0.42, 0.54, 0.66},
     {0.42, 1, 0.32, 0.44},
     {0.54, 0.32, 1, 0.22},
     {0.66, 0.44, 0.22, 1}
    } );
dop = Table[0, {4}, {4}];
For[k = 1, k <= 4,
  For[i = 1, i <= Length[a],
   For[j = 1, j <= Length[a],
    If[i == k && j == k, dop[[i, j]] = 1/A[[k, k]]];
    If[i != k && j == k, dop[[i, j]] = A[[i, k]]/A[[k, k]]];
    If[i == k && j != k, dop[[i, j]] = -( A[[k, j]]/A[[k, k]])];
    If[i != k && j != k, 
     dop[[i, j]] = A[[i, j]] - A[[i, k]]/A[[k, k]]*A[[k, j]]];
    Print["k=", k, " ;i=", i, " ; j=", j, " ; a=", MatrixForm[dop]]
     j++];
   i++];
  A = dop;
  k++];
Print["Inverse Matrix=", MatrixForm[A]];

всё это мне необходио перевести на С++, моя попытка:

Код:
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
	const int n = 4;
//Clear[a, A, dop];

	double a[n][n] = {1.0, 0.42, 0.54, 0.66,
					  0.42, 1.0, 0.32, 0.44, 
					  0.54, 0.32, 1.0, 0.22,
					  0.66, 0.44, 0.22, 1.0}, 
	dop[n][n];
	for(int k = 0; k < n;k++){
		for(int i = 0; i <n;i++){
			for(int j = 0; j <n;j++){
    if((i == k) && (j == k))
		dop[i][j] = 1/(a[k][k]);
    if((i != k) && (j == k))
		dop[i][j] = (a[i][k])/(a[k][k]);
    if((i == k) && (j != k))
		dop[i][j] = -((a[k][j])/(a[k][k]));
    if((i != k) && (j != k)) 
     dop[i][j] = a[i][j] - (((a[i][k])/(a[k][k]))*(a[k][j]));
    cout<<"k= "<< k<< " i="<< i<< "  j= "<< j<< "  a= "<< dop[i][j]<<endl;
		a[i][j] = dop[i][j];	}}
		//a[i][j] = dop[i][j];
	}
	cout<<"Inverse Matrix = "<<endl;
	for(int i = 0; i < n; i++)
	{
	for(int j = 0; j < n; j++)
		cout<<a[i][j]<<"  ";
	}
	cin.get();
	cin.get();

	return 0;
}
я не скажу что она неудачна,она просто с какой то погрешностью,потому ка ответы разные.
В математике получается ответ(он же правильный):


Код:
My Inverse Matrix=(2.50759	  -0.123039	-1.01149	-1.37834
                         -0.123039   1.33221	-0.261427	-0.447454
                          -1.01149   -0.261427	1.53183	0.445609
                          -1.37834 	-0.447454 0.445609	 2.00855)
Кто знает где ошибка?

Оформляй код! // Модератор

Последний раз редактировалось SkyM@n; 15.11.2010 в 10:58.
Onni вне форума Ответить с цитированием
Старый 15.11.2010, 11:04   #2
voproshaika2
Новичок
Джуниор
 
Регистрация: 15.11.2010
Сообщений: 1
По умолчанию ололо

Ошибка в мозгу
voproshaika2 вне форума Ответить с цитированием
Старый 15.11.2010, 11:24   #3
Z1000000
Форумчанин
 
Регистрация: 04.05.2010
Сообщений: 495
По умолчанию

Приложи промежуточные результаты для Математики, также как и для C++
Нажми на весы, поставь +
Для благодарностей : WebMoney WMR R252732729948
Z1000000 вне форума Ответить с цитированием
Старый 15.11.2010, 22:30   #4
Onni
Форумчанин
 
Аватар для Onni
 
Регистрация: 28.12.2008
Сообщений: 134
По умолчанию

Цитата:
Сообщение от Z1000000 Посмотреть сообщение
Приложи промежуточные результаты для Математики, также как и для C++
ээээ.... не поняла немного....

Модератор, спасибо)))
Onni вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Wolfram Mathematica 7. Вставка кнопок управления. AlDelta Помощь студентам 0 29.03.2010 16:15
программирование в Mathematica SUN-SHINE-LADY Фриланс 1 10.02.2010 19:12
структура STUDENT! Jereme Общие вопросы C/C++ 2 17.01.2010 19:19
программа, которая как будто должна бы генерировать коды на пополнения мобильных счетов gajdamak Свободное общение 23 27.02.2009 18:13