IPB

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в эту темуОткрыть новую тему
> Help! Помогите решить лабу в VBA
Igr1986
сообщение 7.11.2006, 13:54
Сообщение #1


Пользователь


Группа: Пользователи
Сообщений: 5
Регистрация: 3.11.2006
Пользователь №: 13 618



Ест прога которая решает СЛАУ методом простой итерации (прикреплено)

Необхоимо самостоятельно преобразовать программу метода итераци в программу решающую СЛАУ методом Зейделя.
Матрица с элемментами аij, задаётся таким образом:


аij={ 10*sin(pi *i/n)+2, если i=j }
cos(pi*(i+j)/(n*n)), если i=j-1 и aij = 0 в остальных случаях.
sin(pi*(i+j)/(n*n)), если i=j-1

вектор xti=n-i+1.
Решить СЛАУ с n=13 и eps = 0.001


Прикрепленные файлы
Прикрепленный файл  _____1.rar ( 9.26 килобайт ) Кол-во скачиваний: 147
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
PolPoll
сообщение 7.11.2006, 14:33
Сообщение #2


:)


Группа: Главные администраторы
Сообщений: 5 858
Регистрация: 24.11.2005
Из: Москва
Пользователь №: 5 327



зачем две темы-то?
http://www.opeople.ru/index.php?showtopic=6205


--------------------
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Igr1986
сообщение 7.11.2006, 14:50
Сообщение #3


Пользователь


Группа: Пользователи
Сообщений: 5
Регистрация: 3.11.2006
Пользователь №: 13 618



Цитата(PolPoll @ 7.11.2006, 14:33) *

зачем две темы-то?
http://www.opeople.ru/index.php?showtopic=6205

Извиняюсь.
Так как эта тема относится к этому разделу. Думаю если в том разделе не кто не поможет то в этом кто-нибудь, тем более что это первая тема в данном разделе
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
PolPoll
сообщение 7.11.2006, 15:03
Сообщение #4


:)


Группа: Главные администраторы
Сообщений: 5 858
Регистрация: 24.11.2005
Из: Москва
Пользователь №: 5 327



Цитата(Igr1986 @ 7.11.2006, 17:50) *

тем более что это первая тема в данном разделе
Не первая.
Чтобы отобразить все выбери ЗА ВСЕ ВРЕМЯ в правом нижнем углу и нажми Ok
По умолчанию - 30 дней



--------------------
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Igr1986
сообщение 8.11.2006, 13:46
Сообщение #5


Пользователь


Группа: Пользователи
Сообщений: 5
Регистрация: 3.11.2006
Пользователь №: 13 618



Чо никто не знает?
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
PolPoll
сообщение 8.11.2006, 14:16
Сообщение #6


:)


Группа: Главные администраторы
Сообщений: 5 858
Регистрация: 24.11.2005
Из: Москва
Пользователь №: 5 327



Так ты ничего не спрашиваешь. wink.gif

На алгоритм на Паскале ссылка дана тебе. Вот еще одна ( http://www.opeople.ru/index.php?showtopic=5539 ). Переделывай и выкладывай, если что не получится.

И вообще, http://www.opeople.ru/index.php?showtopic=860


--------------------
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Igr1986
сообщение 10.11.2006, 5:40
Сообщение #7


Пользователь


Группа: Пользователи
Сообщений: 5
Регистрация: 3.11.2006
Пользователь №: 13 618



Незнаю почему но неправильно вводиьться матрица

Sub Matrica()
Const n = 5, eps = 0.1
Dim a(1 To n, 1 To n) As Double
Dim f(1 To n), xt(1 To n), x(1 To n), x0(1 To n) As Double
Dim i, j, k, m As Integer
Dim max, y, z As Double
'Очистка экрана
'For i = 1 To 101: For j = 1 To 101: Cells(i, j) = Null: Next j: Next i:
'Задаём матрицу

For i = 1 To n
For j = 1 To n
If i = j Then
a(i, j) = (10 * Sin(3.14 * (i / n))) + 2
End If
'ElseIf i = j - 1 Then
'a(i, j) = Cos(3.14 * (i + j) / (n * n))
'End If
'If i = j + 1 Then
' a(i, j) = Sin(3.14 * (i + j) / (n * n))
'End If
'a(i, j) = 0
Next j
Next i

'Вычисляем вектор f(i)
For i = 1 To n
xt(i) = n - i + 1
Next i
'Выводим на рабочий лис Excel матрицу a(i,j) и вектор x(i)
For i = 1 To n
For j = 1 To n: Cells(i + 1, j) = a(i, j): Cells(i + 1, n + 2) = xt(i)
Next j: Next i
Cells(1, n + 2) = "xt(i)"
End Sub

Там где жирно не могу понять?
То есть нам долна напечататься матрица по диагонали у которой
A(1,1)=10 * Sin(3.14 * (1 / 5))) + 2=2.110
а получается совсем другое
7,875275257 0 0 0 0
0 11,50859461 0 0 0
0 0 11,51351376 0 0
0 0 0 7,88815562 0
0 0 0 0 2,015926529

То есть по идее вместо числа 7,875275257 должно быть 2.110.
Где ошибка?
Не могу понять почему высчитывая например Sin(6) в Excell показывает одно число а в калькуляторе другое
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
PolPoll
сообщение 10.11.2006, 6:40
Сообщение #8


:)


Группа: Главные администраторы
Сообщений: 5 858
Регистрация: 24.11.2005
Из: Москва
Пользователь №: 5 327



Цитата
То есть по идее вместо числа 7,875275257 должно быть 2.110.
Где ошибка?
В твоих рассчетах smile.gif . там 7,87=10*0,587+2

Цитата
Не могу понять почему высчитывая например Sin(6) в Excell показывает одно число а в калькуляторе другое
В Excel радианы, а в калькуляторе градусы(по умолчанию)

вместо 3.14 попробуй написать ПИ()


--------------------
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия Сейчас: 6.2.2012, 8:16