2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Ортогональные полиномы Чебышева
Сообщение16.12.2013, 09:19 
Здравствуйте, вопрос вот в чем, мне был дан курсовой проект, с темой "Ортогональные полиномы Чебышева", суть его: написать программу реализующие ортогональные полиномы Чебышева, скачал много лекций, почитал Википедию, не хватает, для осознания, парочки решенных простейших примеров, что бы закрепить на вашей практике знания.

 
 
 
 Re: Ортогональные полиномы Чебышева
Сообщение16.12.2013, 12:03 
Напишите программу считающую многочлены
$P_0(x)=1$
$P_1(x)=x$
$P_2(x)=2x^2-1$
$P_{n+1}(x)=2xP_n(x)-P_{n-1}$
Многочлены хранить как массив a[N+1][N+1](это в С), т.е. $P_n(x)=a[n,0]+a[n,1]x+a[n,2]x^2+\dots+\a[n,m]x^m$.
Напишите код программы сюда. Пусть для начала $N=10$

 
 
 
 Re: Ортогональные полиномы Чебышева
Сообщение16.12.2013, 14:44 
Null в сообщении #801924 писал(а):
Напишите программу считающую многочлены
$P_0(x)=1$
$P_1(x)=x$
$P_2(x)=2x^2-1$
$P_{n+1}(x)=2xP_n(x)-P_{n-1}$
Многочлены хранить как массив a[N+1][N+1](это в С), т.е. $P_n(x)=a[n,0]+a[n,1]x+a[n,2]x^2+\dots+\a[n,m]x^m$.
Напишите код программы сюда. Пусть для начала $N=10$


на Delphi

Код:
var a: array [1..10] of real;
x: real;
i: integer;
begin
  x := StrToFloat(edit1.text);
  a[1]:=1;
  a[2]:=x;
  for i=3 to 10 do
     a[i]:=2*a[i-1]*x-a[i-2];
end;


 i  Deggial: код оформил тегом code. Пользуйтесь тегом code!

 
 
 
 Re: Ортогональные полиномы Чебышева
Сообщение16.12.2013, 14:56 
Вы посчитали значение в точке $x$, а я прошу коэффициенты многочленов.

-- Пн дек 16, 2013 15:59:19 --

Так же нумерация обычно начинается с 0.

-- Пн дек 16, 2013 16:06:36 --

Должно получаться что-то вроде(столбцы идут в обратном порядке, т.е. в самом правом столбце свободные члены многочленов)
$$
\begin{array}{ccccc}
0&0&0&0&1\\
0&0&0&1&0\\
0&0&2&0&-1\\
0&4&0&-3&0\\
8&0&-8&0&1\\
\end{array}$$

 
 
 
 Re: Ортогональные полиномы Чебышева
Сообщение16.12.2013, 15:47 
Null в сообщении #802019 писал(а):
Вы посчитали значение в точке $x$, а я прошу коэффициенты многочленов.

понял, как можно быстрее отпишусь

 
 
 
 Re: Ортогональные полиномы Чебышева
Сообщение16.12.2013, 20:37 
Null в сообщении #802019 писал(а):
Вы посчитали значение в точке $x$, а я прошу коэффициенты многочленов.

А зачем Вы это просите?... Запрошено ведь было:

g1_ang31 в сообщении #801864 писал(а):
написать программу реализующие ортогональные полиномы Чебышева,

Слова "реализовать многочлены" если и могут иметь хоть какой-то разумный смысл, то только один: сочинить процедуру, вычисляющую именно их значения. А для этого нахождение их коэффициентов попросту вредно.

-- Пн дек 16, 2013 21:41:54 --

Null в сообщении #802019 писал(а):
столбцы идут в обратном порядке, т.е. в самом правом столбце свободные члены многочленов

Это, кстати, плохо -- немобильно, т.к. программа слишком жёстко завязана на заранее заявленный размер массива. Гораздо разумнее хранить коэффициенты начиная с младшего, а в нулевом элементе -- текущую степень (пусть даже и не нормализованную).

 
 
 
 Re: Ортогональные полиномы Чебышева
Сообщение17.12.2013, 08:49 
ewert в сообщении #802201 писал(а):
Null в сообщении #802019 писал(а):
Вы посчитали значение в точке $x$, а я прошу коэффициенты многочленов.

А зачем Вы это просите?... Запрошено ведь было:


Что бы потом можно было выводить многочлены в удобном виде на экран, на сколько я понял

 
 
 
 Re: Ортогональные полиномы Чебышева
Сообщение17.12.2013, 13:08 
Цитата:
Это, кстати, плохо -- немобильно, т.к. программа слишком жёстко завязана на заранее заявленный размер массива. Гораздо разумнее хранить коэффициенты начиная с младшего, а в нулевом элементе -- текущую степень (пусть даже и не нормализованную).

Читайте внимательнее.
Цитата:
$P_n(x)=a[n,0]+a[n,1]x+a[n,2]x^2+\dots+\a[n,m]x^m$.

я же не предлагаю их в таком порядке хранить.

Цитата:
Слова "реализовать многочлены" если и могут иметь хоть какой-то разумный смысл, то только один: сочинить процедуру, вычисляющую именно их значения.

Это вопрос к преподавателю. Ну или к способу использования результата.

 
 
 
 Re: Ортогональные полиномы Чебышева
Сообщение17.12.2013, 15:47 
Null в сообщении #802019 писал(а):
Вы посчитали значение в точке $x$, а я прошу коэффициенты многочленов.


Это оказалось сложнее чем я думал, а Вы бы не смогли мне написать формулу этих коэффициентов или подсказать где про нее почитать, в википедии мне не оч понятно, при x в 0 и x в максимальной степени все прозрачно, можно еще какую-нибудь зацепку?

 
 
 
 Re: Ортогональные полиномы Чебышева
Сообщение17.12.2013, 16:02 
g1_ang31, вычесть поэлементно из одного массива другой можете?

 
 
 
 Re: Ортогональные полиномы Чебышева
Сообщение17.12.2013, 19:21 
_Ivana в сообщении #802613 писал(а):
g1_ang31, вычесть поэлементно из одного массива другой можете?


да, вполне

 
 
 
 Re: Ортогональные полиномы Чебышева
Сообщение17.12.2013, 20:27 
g1_ang31 в сообщении #802604 писал(а):
а Вы бы не смогли мне написать формулу этих коэффициентов или подсказать где про нее почитать,

А Вам не нужна ни разу конкретная формула. Вам предъявили рекуррентное соотношение (или Вы сами его предъявили, не помню и не важно) -- вот в соответствии с ним и стройте процедуру, возвращающую по заданной степени набор коэффициентов соотв. многочлена.

Если, конечно, в техзадании запрашивались именно они (коэффициенты). В чём я лично до сих пор сильно сомневаюсь (нахрена именно они-то?...).Ведь в предъявленном на данный момент задании -- об этом ни гу-гу.

 
 
 
 Re: Ортогональные полиномы Чебышева
Сообщение17.12.2013, 20:53 
Если уж так неясно, что делать с массивами коэффициентов…

Чтобы думать о коэффициентах полиномов, есть удобное обозначение — взятие коэффициента при переменной в данной степени. Например, в многочлене $P=2-x+3x^2$ коэффициент при второй степени икса — $3$. Это записывают коротко так: $[x^2]\,P = 3$ (можно читать «у $x^2$ в $P$ степень равна 3»). Остальные коэффициенты: $[x^1]\,P = -1, \; [x^0]\,P = 2$. А вот, например, $[x^5]\,P = 0$ — там этой степени не встречается.

Теперь вы можете записать, как меняются коэффициенты многочленов при операциях с ними. Сложим многочлены $P = p_0 + p_1x + \ldots$ и $Q = q_0 + q_1x + \ldots$ Получим многочлен $P+Q = (p_0 + q_0) + (p_1 + q_1)x + \ldots$ Коэффициенты при равных степенях складываются. Коротко это пишется $[x^m]\,(P+Q) = [x^m]\,P + [x^m]\,Q$.

Задачка 1: выразите $[x^m]\,(\alpha P)$ через $[x^m]\,P$; $\alpha$ — какое-то число.
Задачка 2: выразите $[x^m]\,(x^k P)$ через $[x^m]\,P$.
Задачка 3: как решения задачек 1 и 2 помогут вам с реализацией алгоритма?

 
 
 
 Re: Ортогональные полиномы Чебышева
Сообщение17.12.2013, 22:47 
Используется синтаксис Matlab M
N = 10; p = [0, 1; 1, 0];
for i = 3:N
    p = [[zeros(i-1, 1), p]; 2.*[p(i-1,:), 0] - [0, p(i-2,:)]];
end

Код:
p =

     0     0     0     0     0     0     0     0     0     1
     0     0     0     0     0     0     0     0     1     0
     0     0     0     0     0     0     0     2     0    -1
     0     0     0     0     0     0     4     0    -3     0
     0     0     0     0     0     8     0    -8     0     1
     0     0     0     0    16     0   -20     0     5     0
     0     0     0    32     0   -48     0    18     0    -1
     0     0    64     0  -112     0    56     0    -7     0
     0   128     0  -256     0   160     0   -32     0     1
   256     0  -576     0   432     0  -120     0     9     0

Надеюсь, это не лишит вас шанса подумать, как реализовать процедуру в Delphi

 
 
 
 Re: Ортогональные полиномы Чебышева
Сообщение20.12.2013, 08:47 
Всем огроменное спасибо, вы лучшие!!

 
 
 [ Сообщений: 15 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group