|
Главная -> Справочник по алгоритмам 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 [76] 77 78 16 REMОБРАЩЕНИЕ МАТРИЦЫ А £0 ХНРиТЗАДАйТЕ Н=Н! N=N-l!BIM А<Н,Н>тВ(Н,Н),С<Н,Н) 30 ПйТА 4/8,0,8,0,8/2,0/1 48 МАТ REAB As МАТ A=IHU<e,C> 50 PRINTiFl.5!ОПРЕДЕЛИТЕЛЬ МАТРИЦЫ А »=В<0) 60 PRINTМАССИВ ОБРАЩЕННОЙ МАТРИЦЫ ПОСТРОЧНО 70 мат PRINT а;ENB Программа П5.12/3. 18 REMУМНОЖЕНИЕ МАТРИЦ 20 BIM A<3,4>,b;4,2),C<3,2) 30 ВАТА 1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,5,1,2 40 МАТ REAB А 58 ВАТА 1,2,3,1,2,3,1,2,3,1,2,3,1,2,3 60 МАТ REAB В 78 МАТ С=АжВ 80 PRINT !F1.5!ВЫВОД ПОСТРОЧНО ЭЛЕМЕНТОВ МАТРИЦЫ С 90 МАТ PRINT С:ENB Программа иллюстрирует умножение двух в 10 раз. Программу П5.12/4 можно проверить матриц Л и В с применением оператора МАТС= по контрольному примеру, приведенному к про-= А*В. Числовые значения элементов матриц А грамме П5.2. и В соответствуют коитрольнсаду примеру к про- Решение системы уравнений АХ=В с приме- грамме 3.58 Следует отметить, что в- этом нением формулы Х = /?~"В практикуется редко, примере размеры всех матриц различны. Эле- так как другие методы (например, Гаусса) менты результата - матрицы С - выводятся по- обеспечивают в 2-3 раза меньшее время вы-строчно: 15, 30, 45, 31, 62, 93, 20, 40, 60, 27, числений - при условии одинаковой реализации. 54 и 81. Однако резкое уменьшение времени обращения Программа П5.12/4. матриц с помощью специального матричного 18 PRINTОБРАЩЕНИЕ МАТРИЦЫ А, ВЫЧИСЛЕНИЕ ЕЕ ОПРЕДЕЛИТЕЛЯ 20 PRINTH РЕШЕНИЕ СИСТЕМЫ УРАВНЕНИЙ A*X=b ПРИ РАЗНЫХ В 38 ШРиТЗАДАйТЕ ЧИСЛО УРАВНЕНИЙ Н=н5 N=N-1 48 BIM a<:n,n),b<:n),c<n,n),b<n,n),x<n) 58 FOR 1=8 ТО NsFOR 0=8 ТО NsPRINT!2.8!ВВЕДИТЕ AI+1,J+1 68 INPUT Aa,.J>sNEXT JsNEXT isMAT A=IHU<c,B) 78 PRINT!F1.5!ВЫВОД ЭЛЕМЕНТОВ ОБРАЩЕННОЙ МАТРИЦЫ 88 МАТ PRIHT as PRINTОПРЕДЕЛИТЕЛЬ МАТРИЦЫ А В=С<0) 90 INPUTБУДЕТ ЛИ РЕШАТЬСЯ СИСТЕМА УРАВНЕНИЙ? ДА 1,НЕТ 8 К 188 IF К=0 THEN PRINTВЫЧИСЛЕНИЯ ОКОНЧЕНЫsENB 110 FOR 1=0 ТО NsPRINT!2.0!BBEAHTE ВI+l 120 INPUT BCDSNEXT IsMAT X=A*b 130 PRIHT!F1.5!МАССИВ НЕИЗВЕСТНЫХ СИСТЕМЫ 148 MAT PRINT X:PRINTКОНЕЦsGOTO SSsEHB Эта программа обеспечивает ввод с пульта оператора МАТ 1NV и оператора умножения элементов квадратной матрицы/1 размером ЛXЛ. матриц в конечном счете обеспечивает сущест- обрашение матрицы Л, вычисление ее определи- венное уменьшение времени вычислений. Этот теля, ввод вектора с числом компонентов Ли реше- пример наглядно показывает, что наличие спе- ние системы линейных уравнений АХ = В для цнальных операторов в некоторых версиях разных В методом обращения матрицы, т. е. бейсика может существенно влиять на целесо- вычисление Х=Л~В. Программа аналогична образность применения того нли иного численного программе П5.2, но вдвое короче ее и обеспе- метода, чивает уменьшение времени вычислений примерно Программа П5.12/5. 18 PRINTРЕШЕНИЕ СИСТЕМЫ НЕЛИНЕЙНЫХ УРАВНЕНИЙ 20 PRINTМОДИФИЦИРОВАННЫМ МЕТОДОМ НЬЮТОНА.ВАР.2 38 ШРиТЗАДАйТЕ ЧИСЛО УРАВНЕНИЙ N=Ns N=N-1 40 BIM x<n>,b<h>,f<h),a<:n,n>,k<n,n>,l<n,n> 58 INPUTЗАДАЙТЕ МАКСИМАЛЬНОЕ ЧИСЛО ИТЕРАЦИЙ М=М 60 INPUTЗАДАЙТЕ ОТНОСИТЕЛЬНУЮ ПОГРЕШНОСТЬ E=Es 3=8 70 FOR 1=8 ТО HsPRlNT!2.8!ВВЕДИТЕ XI<е>s INPUT XCDsHEXT I 80 60sub 188 5 MAT b=F 98 FOR J=0 TO ns V=X<J>s H=E*ABS<V> 100 X<J>=V+HsGOSUB 180SFOR 1=0 TO H 110 A<I,J)=<F<:i)-b<I)>>HshEXT is XtJ)=VsNEXT J 120 s=s+15IF s=M+1 THEH PRINTHHCflO ИТЕРАЦИЙ s=MsENB 130 MAT A=INU<k,L)!MAT b=A*f5mat X=X-b 140 R=0SFOR 1=0 TO NSIF ABS(b<I)>X<:i)>>E THEN R=l 150 NEXT I:IF R=l THEH 80 1§? PRINT!F1.9!MftCCHB НЕИЗВЕСТНЫХ СИСТЕМЫ 1ГИ МАТ PRIHT X:PRIMT!2.0i4MCnO ИТЕРАЦИЙ s=s!EHI! 180 REMПОДПРОГРАММА ВЫЧИСЛЕНИЯ F<I)=F<X<0),Xa)r...rX<H-l)> 1Э8 . F<0)=X<8)+3«L.6T<X<e))-X<l)*Xa> 200 Р<и=2жХ<0>жХ<8>~-Х<8>жХ<1)-5жХС0>+1 • . 218 RETURNSEND Эта программа обеспечивает решение систем Программа обеспечивает полиномиальную ап- нелинейных уравнений модифицированным мето- проксимацию (и интерполяцию) функции yi {Xi), дом Ньютона (Ньютона - Рафсона). Программа заданной п-отсчетами (начиная с 1) по методу аналогична программе 4.20 и может быть про- наименьших квадратов. Программа аналогична верена по контрольному примеру к последней. программе 5.25 и может быть проверена по Программа П5.12/6. контрольному при.".!еру для программы 5.24. 10 PRINTПОЛИНОМИАЛЬНАЯ АППРОКСИМАЦИЯ И ИНТЕРПОЛЯЦИЯ 28 1НРиТЗАДАйТЕ ЧИСЛО ОТСЧЕТОВ N=Hs М=Н-1 30 DIM A<M»M?»C<M»M>jD<M»M>rBai>,X(M) 40 FOR 1=0 ТО MS PRINT!2.0!ВВЕДИТЕ XF,VI 50 IHPUT 2>B<I>s Aar0>=l! R=liFOR J=l TO M 60 R=mZi A<I»J)=RSNEXT JsNEXT I 70 MAT A=INU<C»D)sMAT Х=АжВ 80 PRINT !F1.9!КОЭФФИЦИЕНТЫ A0.-АЬ . .AMsMAT PRIHT X 90 INPUTВВЕДИТЕ X=2! V=2*X.;M) 100 FOR I=M-1 to 1 step-ls У=<У+Х<1)>ж2гНЕХТ I 110 V=V+X<0>!PRINTV<X)=V:GOTO 98:ENB Программа П5.12/6 обеспечивает аппроксимацию таблично заданной п значениями х, и у, функции у,- (лг,) с помощью полинома y = ai,-{-aiX-{-a2x+ .. +а,„х". § П5.13. Приближение функций по Чебышеву Среди многочленов, с помощью которых можно приближенно задать функцию f (х), особое место где т = « -1. Вычисление коэффициентов этого занимают многочлены Чебышева Г, (л;) (см. §3.4). полинома осуществляется реигением системы Многочлены Т, (х) формируются с помощью линейных (относительно коэффициентов an, ai, ... рекуррентного соотношения {х) =2хТ, (х) - а,„) уравнений -T,-i (х), при То (х) =1, Т, [х) =.\-. Таким обра- а, + а,х„ + а2х(,+ ... +а,„л;;==у„, зом, получаем: П (х) =2x-1; П (х)=4х-3х; „„ а,х, +С2ХГ + ... +а,„хТ = у,, Т, (х) =8х-8х;+1 и т. д. Значения х должны быть в пределах[ - !, 1 ]. В технике прибл-ижения функций испспьзу-ется линейная кодбийация многочленов Чебы- aa + a,x„, + a2f„+ ... +а„х%у,. Программа позволяет также находить у (х) по шееа, которая записывается в виде составного задаино.аду х, т. е. обеспечивает интерполяцию. многочлена Т (х) =авТо (х)+а\Т\ (х) + Данный метод обычно сложнее и требует ... Ч-алп (х), где оо, ai, .... а„ - коэффициенты больших затрат времени, чем аппроксимация Чебышева. ч и интерполяция методами Ньютона или Лагранжа Приближение функции / (х) с помощью мно- (§ 4.2). Однако из-за высокой скорости решения гочлена Т (х) обеспечивает минимальную по- систем линейных уравнений с помощью матрич- грешность отклонения Т (х) от / (х) (в сравнении пых операторов программа П5.!2/6 обеспечивает с другими интерполяционными многочленами), в несколько раз меньшее время вычисления Это достигается за счет оптимального выбора коэффициентов с.,, а....., а,„ и имеет вдвое узлов интерполяции в заданном промежутке меньшую длину листинга, чем программа 4.7. изменения аргумента х. Многочлен. 7 (х) Программу По.12/6 можно проверить по кон- может быть представлен вформе обычного сте- трольному примеру к программе 4.7. пенного многочлена (полинома) Р(х)=ао + Программа П5.12/7. +aix + a2x + ... +а„х". 10 PRINTПОЛИНОМИАЛЬНАЯ АППРОКСИМАЦИЯ И ИНТЕРПОЛЯЦИЯ 28 PRINT МЕТОДОМ НАИМЕНЬШИХ КВАДРАТОВ 30 1НРиТБВЕДИТЕ СТЕПЕНЬ ПОЛИНОМА M=N! Р=2ж<Н+1) 40 DIM A(NfN)rB<H)jrC(P>fD<NrN)/E<Nj.N)fX<N> 50 INPUTЗАДАЙТЕ ЧИСЛО ПАР XjV N=H 60 FOR 1=0 ТО H-l!PRINT!3.0!ДЛЯ I=Is INPUTВВЕДИТЕ X,V X,V 70 F=lsFOR J=0 TO PsiF J>N THEN 90 88 B<J)=B<J)+V! V=V!«X 98 C<J)=C<J>+F! F=F*XsNEXT JsNEXT I 180 FOR 1=0 TO Ns K=l!FOR J=0 TO N 110 ACIfJ>=C(K)s K=K+l!NEXT JsNEXT I 128 MAT A=IHU(D,E>sMAT Х=А!кВ 138 PRIHT!F1.9!КОЭФФИЦИЕНТЫ ПОЛИНОМАsMAT PRINT X 140 PRINT! ШРиТВВЕДИТЕ X=2! S=e!FOR I=N TO 1 STEP -1 150 S=<S+X<I))*2!NEXT I! S=S+X<0) 160 PRINTЗНАЧЕНИЕ V<X)=S!GOTO 140!END- Алгоритм преобразования линейной комбинации многочленов Чебышева в обычный степенной многочлен. 1. Вводим коэффициенты «о, oi, а„ многочлена Т (х) я образуем массив а (i). 2. Делнм Оо на 2: ао=ао/2. 3. Для у = 2, 3.....п и fc=n. n-1.....i проводим преобразования коэффициентов по формулам о*-2=а(, 2-ац; ai,=2at. В результате получаем коэффициенты а степенного полинома Р (х). Алгоритм преобразовании коэффициентов степенного полинома в коэффициенты, линейной комбинации многочленов Чебышева. 1. Вводим коэффициенты степенного полинома с 2. Для i = n, п-1.....2 и k=j, /-(-!.....п выполняем преобразования коэффициентов по формулам a\=ak/2; а4 2 = а*-2-1-а*. 3. Умножаем оо на 2: ао==2ас. В результате получаем коэффициенты Чебышева для Т {х). Программа П5.13/1. 2. Для /=0. 1, .... я на отрезке [-1,5] формируем сетку оптимальных значений аргумента в узлах чебышевской интерполяции xl-- = cos(----- ЬА-а , приводим х\ в отрезок -Xi и вычисляем значе- ИИЯ f (Xi). 3. Для А = 0, I, .... п и t = 0, I.....я вычисляем (Xi) cos (2t-(-l) fcn 2 (n-(-I) В результате получаем коэффициенты Оо, ... ..., многочлена 7" (д), приближающего функцию / (х), т. е. аппроксимируем / (д:) многочленом Т (х). Вычисление значений Г (х) выполняется по следующему алгоритму. 1. Считая заданным массив Os, задаем память под массив из {п-(-2) вспомогательных коэффициентов 6*. Полагаем fcn+2 = 0 и 6„+i = 0. le PRIHTПРЕОБРйЗОВЙННЕ КОЭФФИЦИЕНТОВ ИНОГОЧ.ПЕНОВ ТОО ИР>;Х), 20 IHPUTВВЕДИТЕ СТЕПЕНЬ ННОГОЧПЕНА Н=н1!Б1Г1 ftCH) 25 FOR 1=0 ТО H!PRIHT!2,6!ВВЕДИТЕ ftI:IHPUT ftCDsNEXT I 30 PRIHTВВЕДИТЕ КОД ИСХОДНОГО MhOrOH.flEHft 40 1НРиТ0-ДЯЯ Т(М) И 1-ДГ1Я PCX) S!IF S=i THEN ВО 50 L.ETftC0)=ft<0)x2sFOR J=2 TO HsFOR K=H TO J STEP-l 60LETftCK-2)=A<K-2>-ft<K>sLETft<K)=2»:AK> 70 NEXT KSHEXT JsBOTO 130 80 FOR J=H TO 2 STEP-15 FOR K=0 TO H 90 LETftCK)=ft<K>-2sLETftCK-2>=A<K-2>+ACK) 100 HEXT k5hext .Jsl ETA<8)=A<e)*2 110 IF K=l THEH PRIHTКОЭФФИЦИЕНТЫ МНОГОЧЯЕНЙ POOsGOTO 138 128 PRIHTКОЭФФИЦИЕНТЫ МНОГОЧГЕНЙ Т<Х) 138 FOR 1=0 TO H5PRIHT!2.8!Ar=!F1.9!Aa> 140 NEXT isEHD Работу программы можно проверить с помощью взаимного преобразования многочленов (п = = /V=4): Т (x) = 8.757-0 (x) -t- 57-, (х) 472 (х) 1 Тз {х) 4-0,625Т4 (.«:), Р (x) = H-2x-F3x«-F4jc-F5x Алгоритм приблизкения функции по Чебышеву. 1. Задаем степень и многочлена Т (х) и пределы а, Ь области изменения аргумента х функции / (х). 2. Задаем значение х на отрезке [а, Ь] и переводим его в отрезок [ - 1,1] с помощью пре- , (х-(Ь-а)/2)2 образования х=.---. Ь -а) 3. Для k = n, п - 1, .... 1 вычисляем 6* = = at -Й4+24-26*+Х. 4. Находим 7" (х) =ао/2 -bz-FfciJC. Приведенная ниже программа обеспечивает приближение / (л;) многочленом Т (х) заданной степени п, вычисление ао, oi, а„ многочлена Т (л) или Р (х) (задается кодом О или 1) и вычисление значения Т (х) илн Р (х). Программа П5.13/2. 10 PRINTПРИБЛИЖЕНИЕ ФУНКЦИИ ПО ЧЕБЫШЕВУ. 20 INPUTBBEfiHTE СТЕПЕНЬ МНОГОЧЛЕНА N=HsDIM V<:N),ft<:N),B<:H+2) 38 INPUTBBEAHTE ПРЕДЕЛЫ ИЗМЕНЕНИЯ X А,В ftbBl 48 LETQ=N+1 s 1 ЕТМ=#Р I 2-Q s LETC=СВ1 +ft 1 > .2 s 1 ЕТБ= С В1 -A 1 > 2 50 FOR 1=8 TO NsLETXl=COS(42«I + l>*M)5letx=C+D»:Xl 60 60SL1B 3005LETV<I>=FSNEXT I 78 FOR K=0 TO NSFOR 1=8 TO H 88 иЕТА<К>=Й>;К)+У<1)*С03>;КжС£ж1+1)жМ)!НЕХТ I 98 LETA*:K)=A<K)*2/QshEXT К 188 РР1НТЗЙДАйТЕ ВВОДОМ КОДА ВИД МНОГОЧЛЕНА 118 INPUTе-Т<Х)/1-Р<Х) SsIF S=l ТНЕН 158 120 PRINTКОЭФФИЦИЕНТЫ МНОГОЧЛЕНА Т<Х> 130 FOR 1=0 ТО NsPRINT!2.e!ftI=!Р1.9!Й<1> 148 NEXT IS GOTO 196 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 [76] 77 78 0.0077 |
|