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

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

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.05.2010, 01:34   #1
skorpion21-90
 
Регистрация: 13.05.2010
Сообщений: 3
По умолчанию Уточнение корней, вычисленных методом Гаусса

Ребята, нужна прога по этой теме в vba. Всем заранее спасибо!!!!!
skorpion21-90 вне форума Ответить с цитированием
Старый 13.05.2010, 02:35   #2
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Хоть умножение матриц,наработок нет,только обмен.Если будет трудно,Ася в профиле.
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 13.05.2010, 19:36   #3
skorpion21-90
 
Регистрация: 13.05.2010
Сообщений: 3
По умолчанию

у меня есть код в паскале по самому методу гаусса. а как дальше сделать уточнение. по сути теперь нужно опять пройти всю процедуру метода гаусс, только для системы А*х=В-А*х0.
то есть, можно метод загнать в процедуру, и потом по нему вычислить приближения для корней?
а как потом это все на vba написать?
вот код метода гаусса в паскале

program Gauss_Classic;
uses crt;

type vec=array[1..10] of real;
mas=array[1..10] of vec;

var a:mas;b,x:vec;
h:real;
i,j,k,n:integer;

Begin {Начало основной программы}
Clrscr;
write('Введите количество уравнений: ');read(n);
for i:=1 to n do begin
writeln('Уравнение ',i);
writeln('Введите коэффициенты');
for j:=1 to n do begin
write('a[',i,',',j,']=');read(a[i,j]);end;
writeln('Введите правую часть уравнения');
write('b[',i,']=');read(b[i]); end;
Clrscr;
writeln('Исходная матрица');
for i:=1 to n do begin
write(i);
for j:=1 to n do
write(a[i,j]:10:5);
writeln(b[i]:10:5) end;
writeln; writeln; writeln;
{Прямой ход - исключение переменных}
for i:=1 to n-1 do
for j:=i+1 to n do begin
a[j,i]:=-a[j,i]/a[i,i];
for k:=i+1 to n do
a[j,k]:=a[j,k]+a[j,i]*a[i,k];
b[j]:=b[j]+a[j,i]*b[i] end;
x[n]:=b[n]/a[n,n];
{Обратный ход - нахождение корней}
for i:=n-1 downto 1 do begin
h:=b[i];
for j:=i+1 to n do h:=h-x[j]*a[i,j];
x[i]:=h/a[i,i]; end;
writeln('Корни уравнения');
for i:=1 to n do writeln('x(',i,')=',x[i]:10:5);
readkey
end.

помогите разобраться, пожалуйста
skorpion21-90 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Уточнение корней, вычисленных методом Гаусса skorpion21-90 Помощь студентам 0 13.05.2010 01:24
отделение корней методом Лангранжа sat123 Помощь студентам 8 23.03.2009 18:27
Уточнение корней при решении слау? RealNt Помощь студентам 3 29.10.2007 16:17