Помощь - Поиск - Пользователи - Календарь
Полная версия: Матрица
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
NoRToN
Дано: порядок квадратной матрицы A, ее элементы и
коэффициенты многочлена.
Задание: вычислить заданный многочлен от матрицы A.
volvo
NoRToN
Что значит "многочлен матрицы"? То есть, возводить матрицу в нужную степень, умножать на коэффициент и складывать полученные результаты? Или что-то другое? Уточните, пожалуйста ...
NoRToN
volvo но мне дали с таким условием . Я уточню тогда его. и скажу.
volvo
NoRToN
Прочитайте вот это. Тут есть теория и примеры. Насчет перемножения и сложения матриц - в ФАКе есть примеры реализации...
NoRToN
многочлен ето Р=a*x^2+b*x+c
матрица А (к примеру 2 порядка то)
P(A)=( a*a11^2+b*a11+c a*a12^2+b*a12+c
a*a21^2+b*a21+c a*a22^2+b*a22+c )
вот как ето сделать
а11,а12... -элементы матрицы. a,b-коэффициенты многочлена
volvo
NoRToN
Если это так, то это вообще очень просто: делай функцию, которая будет принимать число "х" и возвращать "a*x^2+b*x+c", а потом двумя циклами проходи по матрице и передавай в эту функцию все элементы матрицы:

Код

function P(x: integer): integer;
 begin
 { здесь считаешь многочлен }
 end;

...
{основная программа}
begin
 { size - размерность матрицы }
 for i := 1 to size do
   for j := 1 to size do
     a[i, j] := P(a[i, j])
end.


Хотя очень странно ... Обычно многочлен матрицы вычисляется по-другому... blink.gif
NoRToN
да оказывается мне сказали неправильно. P(x)=a*x^2+b*x+c ,где а,б,с - коэффициенты ,а х-матрица заданного порядка(даны её элементы) :p2:
volvo
NoRToN
Я бы делал так:

Реализация перенесена сюда: FAQ: Матрицы
NoRToN
Как тут сделать, чтобы коэффициенты с клавиатуры вводились?
volvo
Основной блок исправляем:
Код

begin
For i := 1 To size Do
  For j := 1 To size Do
    a[i, j] := Random(20);

matrixPrint(a);
for i := 1 to n do
  begin
    write('p[', i, '] = '); readln(p[i])
  end;

For i := 1 To n Do
  Begin
    matrixPower(T, a, n - i);
    matrixScale(T, T, p[i]);
    matrixAdd(Res, Res, T)
  End;

matrixPrint(Res)
end.


а описание:
Код
Const
n = 3;
p: Array[1 .. n] Of Real =
  (1.0, -2.0, 3.0);

меняем на:
Код
Const
n = 3;
Var
p: Array[1 .. n] Of Real;


И все...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.