|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
07.08.2010, 02:10 | #1 |
Регистрация: 07.08.2010
Сообщений: 8
|
интересное явление...
если сделать простую на паскале прогу вычисляющую интегралы методом трапеций и менять ширину промежутка (dx) то можно увидеть что погрешность изменяется по какомуто неведомому закону. можно конечно сослатся на то что это дескать результат того что отрезок интегрирования делится на dx c разными остатками. но пардон погрешность меняется слишком сильно. функция f интегрируемая
ist - точное значение alfa относит.погрешность вычисления. а если вместо трапеций использовать метод Симпсона то погрешность будет скакать от порядка Е-10 до Е2 примерно. program integral; uses crt; var a,summa,summa1,b,dx,S,x,m,c,delta,p ,u: real; n,i,k:longint; function f(x:real):real; begin f:=cos(x); end; function ist(a:real;b:real):real; begin ist:= sin(B)-sin(a); end; function alfa (is:real;q:real):real; begin alfa:=abs((abs(q-is))/is)*100; end; procedure trapetsium (a:real;b:real;dx:real); var i,n:longint; begin summa:=0; n:=round(abs(b-a)/dx); for i:=1 to n-1 do begin summa:=summa+f(a+i*dx); end;{ if (a+n*dx)<>b then writeln( (a+n*dx),b );} S:=0.5*dx*(f(a)+f(B)+2*summa); writeln('trarezium ',S); end; begin clrscr; write('a=');readln(a); write('b=');readln(B); writeln('dx=',dx); c:=1000; k:=0; while dx>0.0001 do begin trapetsium (a,b,dx); writeln(alfa(ist(a,B),S),'----dx=',dx); if alfa(ist(a,B),S)<c then begin c:=alfa(ist(a,B),S); m:=dx; end; dx:=dx-0.0001; inc(k) end; writeln; writeln('grex=',c);writeln('dx=',m) ;write(k); write(ist(a,B)); readln; end. |
07.08.2010, 17:00 | #2 |
Форумчанин
Регистрация: 11.08.2009
Сообщений: 433
|
Не понимаю, о каком неведомом законе для метода трапеций идет речь. Вашу программу не запускал и ничего не проверял, но неведомый закон для метода трапеций можно найти даже в википедии. А вот на остатки точно не сослаться, для этого нужно, чтобы функция либо очень сильно возрастала, либо очень сильно убывала. У вас такого не наблюдается. Погрешность может меняться сильно. Главное, чтобы она не превосходила рассчётную максимальную погрешность.
Пардон, а почему это она для метода Симпсона не может скакать в таких пределах? Неплохо было бы ещё увидеть на каких промежутках вы интегрируете её, от этого, знаете ли, существенно зависит возможная погрешность. |
07.08.2010, 17:55 | #3 |
Регистрация: 07.08.2010
Сообщений: 8
|
если менять промежутки то можно увидеть что если промежуток меньше чем полупериод косинуса то погрешность минимальная. в остальных случаях чем ближе dx к abs(в-а) тем больше точность. причем dx должен всегда иметь порядок Е-2..Е-3 поэтому его надо поделить на некоторое число кратное 10.иначе точность упадет резко.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
интересное перемещение в таблице | Окоча Юра | Microsoft Office Word | 1 | 14.01.2010 15:47 |
интересное ниспадающее меню | greysells | HTML и CSS | 4 | 09.07.2009 16:44 |
Явление Wordа. Часть 2 | Busine2009 | Microsoft Office Word | 2 | 26.05.2009 21:44 |
Явление Worda | Busine2009 | Microsoft Office Word | 2 | 26.05.2009 08:53 |