Есть задача:
вычислить матрицу вида: C=A3+B3
3 - это степень, степень размер матрицы и т.д. естественно вводит пользователь
вообщем нужно решить всё это на турбо паскале..
я ещё не очень хорошо в нём разбираюсь но вот что всё таки сделал сам:
(работает не правельно, выводит вообще числа и не близкие к ответу)
ну во первых ты судя по всему матрицу не правильно заполняешь,
for i:=1 to amax do
for j:=1 to bmax do
begin
write('vvedite ',i,'-й элемент ',j,'-строки: '); // <------- i - это строка, а j - столбец, а ты видимо наоборот вводишь
readln(a[i,j]);
end;
ну это я пробывал менять местами вообщем смысла не меняет, я постоянно пробую вводить в А и в В одинаковые квадратные матрицы 2х2 и все элементы тоже 2. В результате программа выдаёт матрицу: 2;4;2;2, а должна 16;16;16;16..
c[i,j]:=exp(n*LN(a[i,j]))+exp(n*LN(b[i,j]));?
volvo, ну как я думал эта строчка должна была возводить элемент матрицы А в степень и прибавлять к нему возведённый в степень элемент матрицы В или я не прав? исправь меня тогда пожалуйста =))
Ты внимательно посмотри, на то, что было у тебя, и на то, что сделал я ...
Особенно внимание - на скобки... Ну, и про Ln не забудь...
а извини плз, я подумал что ты просто выделил мою строчку кода и написал вопрос а ты на самом деле написал исправленую =) спасиб пойду пробывать
====
попробывал, всё работает огромное спасибо =)
теперь остался один вопрос только, можно ли как то реализовать тоже самое вычисление но например если матрицы будут не квадратный а скажем одна 2х3 а вторая 3х4.. я неособо в математике силён поэтому честно говоря на бумаге то не уверен что посчитаю =) очень хотел бы узнать сам метод приблезительно..
а разве возведение матрицы в степень - это возведение в степень ее элементов?...
неет матрицу в степень мне возводить не надо =) это я и сам бы разобрался как её возвести =)
мне надо было вычилисть матрицу С каждый элемент которой равен элемнт матрицы А в степени + элемент матрицы В в степени =) впрочем с этим я разобрался, проехали =)
теперь только один вопрос можно ли перемножать не квадратные матрицы?.. или перемножать можно только сцепленные матрицы?
п.с. спасибо за ссылку нашёл некоторые полезные вещи =)
так ты определись, надо ли тебе перемножать матрицы или работать с отдельными элементами?
я плохо наверное обьясняю сори =)
вот значит ещё раз =)
задача:
вычислисть матрицу: An+Bn=C, где n - степень
ну т.е. каждый элемент матрицы С явл. суммой соответствующий элементов матриц А и В в указаной степени.
я решил задачу для квадратных матриц. Теперь только один вопрос, можно ли решить задачу если матрицы будут НЕ квадратные и НЕ сцеплённые?
мисс_граффити и volvo указали тебе на то, что в математике возведение матрицы в степень - это НЕ возведение в степень её элементов. Реши, что тебе надо.
Archon, я ж пишу, в степень конкретно матрицу возводить мне не надо. Необходимо только её элементы
Вот ещё один вопрос возник.. а как быть если степень отрицательная?
напомню задачу:
определить матрницу С=А3+В3, где 3 - это степень..
я делал так, чтобы вычислять задачу при отрицательной степени:
сделал проверку, если стпень, которую ввёл юзер отрицательна, значит берём модуль и ставим логическую переменную, при выводе ответа опять проверка, если переменная тру, тогда пишем 1/ответ, но почему считает не правельно.. подскажите пожалуйсто.. ну и если ещё какие то недочёты уваидите тоже буду рад =)
вот конечный вариант алгоритма:
А ошибка у тебя - в том, что ты СНАЧАЛА складываешь значения, а потом делишь на результат единицу... Тебе же надо складывать обратные значения...
Пример:
пусть определенный элемент матрицы А[1, 1] = 2, и соответственно, элемент B[1, 1] = 3... Что делает твоя программа при возведении в (-3) степень?
C[1, 1] := (2^3) + (3^3) = 35, после чего получаем 1/35
а нужно:
C[1, 1] := 1 / (2^3) + 1/(3^3) = 1/8 + 1/27 = 35/216... Согласись, что это не одно и то же...
оо спасиба =) точно, а я сидел голову ломал откуда такие цифры берутся, всё супер спасибо =)