Информация о готовой работе
Бесплатная студенческая работ № 7710
Исследование точности численного интегрирования Research of Accuracy of Numerical Integration
Задание исследования Провести исследование внутренней сходимости численного интегрирования методом Симпсона и трапеций различных функций, задаваемых с помощью языка С. Подробное описание задачи и способы ее решения Необходимо провести исследования так называемой внутренней сходимости численного интегрирования методами Симсона и трапеций различных функций, задаваемых с помощью функций языка С. Предполагается, что отрезок интегрирования [a,b] разбит на n равных частей системой точек (сеткой). Контроль внутренней сходимости заключается в циклическом вычислении приближенных значений интеграла для удваиваемого по сравнению со значением на предыдущем прохождении цикла числа n. Отношения абсолютной величины разности этих значений к абсолютной величине предыдущего приближенного значения принимается в качестве критерия достижения точности интеграла. Построить зависимости количеств итераций от различных величин критерия точности. Построить обратные зависимости критерия точности от количества итераций. Повторить все вышеуказанные исследования для случая, когда при вычислении критерия точности разность значений интеграла относится не к предыдущему значению, а к точному значению аналитически вычисленного интеграла. Исследовать влияние увеличения верхнего предела интегрирования на точность (при прочих неизменных условиях) Метод трапеций , где Метод Симпсона , где
Результаты исследований Таблица и график зависимости количества итераций от различных значений критерия точности Для Критерий точностиКоличество итераций -0,167663114 -0,151891616 -0,004693112 -0,002653111 -0,000263910 -0,00017092 -0,00012979 -0,00005573 -0,0000258 -0,00001984 -0,00000965 -0,00000386 015 0,00000527 0,07108913
Критерий точностиКоличество итераций -0,112727116 -0,075028815 -0,054067714 -0,002141512 -0,000571111 -0,00004589 -0,00003812 -0,00001913 -0,0000084 -0,0000045 -0,00000197 -0,00000026 0,0000058 0,000298310 0,016437713
Критерий точностиКоличество итераций -0,006670913 -0,004236714 -0,000356110 -0,00000165 -0,0000014 0,00000053 0,00000066 0,00000092 0,00000097 0,00002238 0,0000569 0,000278211 0,000347412 0,00529316 0,005326715
Критерий точностиКритерий точности -61,446979512 -5,7140473 -1,021575513 -0,72414332 -0,51211174 -0,322264311 -0,21636147 -0,15366299 -0,093026114 0,035318316 0,05705915 0,16973715 0,202553410 0,25047286 0,62025928
Критерий точностиКоличество итераций -0,011930816 -0,000783413 -0,00000793 -0,00000414 -0,00000377 -0,00000275 -0,00000276 -0,0000028 -0,00000162 0,000000310 0,00000629 0,000038511 0,000080212 0,000545215 0,001668914
Критерий точностиКоличество итераций -0,002628616 -0,001241614 -0,00001183 -0,00001074 -0,00000465 -0,00000469 -0,00000286 -0,00000217 -0,00000052 0,000001110 0,00000188 0,000002311 0,00005812 0,000104913 0,002792815
Таблица и график зависимости значений критерия точности от количества итераций Для функции По отношению к предыдущему значениюПо отношению к аналитическому значению Критерий точностиКоличество итерацийКритерий точностиКоличество итераций -0,00017092-0,00019322 -0,00005573-0,00006293 -0,00001984-0,00002244 -0,00000965-0,00001085 -0,00000386-0,00000436 0,000005270,00000587 -0,0000258-0,00002838 -0,00012979-0,00014669 -0,000263910-0,000298310 -0,002653111-0,00299811 -0,004693112-0,005289112 0,071089130,079740313 -0,167663114-0,201436514 015015 -0,151891616-0,151891616
Для функции По отношению к предыдущему значениюПо отношению к аналитическому значению Критерий точностиКоличество итерацийКритерий точностиКоличество итераций -0,00003812-0,00006662 -0,00001913-0,00003353 -0,0000084-0,00001414 -0,0000045-0,00000695 -0,00000026-0,00000046 -0,00000197-0,00000337 0,00000580,00000888 -0,00004589-0,00008029 0,0002983100,00052210 -0,000571111-0,000999711 -0,002141512-0,003746512 0,0164377130,028695513 -0,054067714-0,095937814 -0,075028815-0,125933115 -0,112727116-0,175012416
Сравнение результатов Таблица сравнительных результатов Метод трапеции n=1000000Метод Симпсона n =1000000Аналитический результатФункцияПределы 4,50514754,52401834,49980967f(x)=1/x0,1Е..9 1,74914621,75007611,791756469f(x)=1/x*x0,3Е..5 1,99918851,99995052f(x)=sin(x)0ЕЕ.? -0,00005120,0000030f(x)=sin(2*x)0ЕЕ.? 0,28571570,28569350,285714285f(x)=sin(7*x)0Е....? 0,22220530,22221330,222222222f(x)=sin(9*x)0Е....? Таблица влияния увеличения верхнего предела на точность интегрирования Аналитическое значениеПрактическое значениеВерхний пределПогрешность 4,499809674,52179969-0,02198993 4,6051701864,62496910-0,019798814 4,7874917434,803941212-0,016449457 4,9416424234,955784314-0,014141877 5,0751738155,087544416-0,012370585 5,1929568515,203927518-0,010970649 5,2983173675,308204220-0,009886833 Следовательно, увеличение верхнего предела приводит к увеличению точности интегрирования
Текст программы /* Курсовая работа по информатике "Исследование точности численного интегрирования" "Research of Accuracy of Numerical Integration" Преподаватель: Студенты: Степанов А.Г. Черепанов К.А. Группа: Р-207 */ # include <stdio.h> # include <io.h> # include <stdlib.h> # include <iostream.h> # include <string.h> # include <math.h>
int main () { FILE *fp; /*указатель на поток*/ int n,i,t,j,N; float a,b,h,Sum[100],x,y,coa;
printf("Research of Accuracy of Numerical Integration\n");
/*Ввод точности вычисления*/ printf("Enter accuracy of calculation n= "); scanf("%d",&n);
/*Ввод начала интегрирования*/ printf("Enter beginnings of integration= "); scanf("%f",&a);
/*Ввод предела интегрирования*/ printf("Enter limit of integration= "); scanf("%f",&b);
/*Открытие файла-источника*/ while((fp=fopen("data3.xls","w"))==NULL) { puts("Error!!! Can't open file \nInput name of file\n"); }
/*Ввод количества итераций*/ printf("Enter number of Itteration N= "); scanf("%d",&N);
/*Вычисление шага интегрирования*/ h=(a+b)/n; printf("Step=%.3f\n",h); /
for(j=1;j<=N;j++) { h=(a+b)/(int(pow(2,j-1))*n); Sum[j]=0; for(i=0;i<=(int(pow(2,j-1))*n);i++) { x=a+i*h; if(i==0) t=1; else t=2; y=t*(h/2)*(sin(2*x)); Sum[j]=Sum[j]+y; } if (j>1) { coa=(Sum[j]-Sum[j-1])/Sum[j-1]; printf("Criterion of accuracy=%.5f Number of iteration=%d\n",coa,j); fprintf(fp,"%.7f\t",coa); fprintf(fp,"%d\t\n",j); } } printf("The sum by a method of trapezes=%.7f\n",Sum[1]); fprintf(fp,"The sum by a method of trapezes=%.7f\n",Sum[1]); /
for(j=1;j<=N;j++) { h=(a+b)/(int(pow(2,j-1))*n); Sum[j]=0; for(i=0;i<=(int(pow(2,j-1))*n);i++) { x=a+i*h; if(i==0||i==n) t=1; else { if(i%2==0) t=2; else t=4; } y=t*(h/3)*(sin(2*x)); Sum[j]=Sum[j]+y; } if (j>1) { coa=(Sum[j]-Sum[j-1])/Sum[j-1]; printf("Criterion of accuracy=%.5f Number of iteration=%d\n",coa,j); fprintf(fp,"%.7f\t",coa); fprintf(fp,"%d\t\n",j); } } printf("The sum by a Simpson's method= %.7f\n",Sum[1]); fprintf(fp,"The sum by a Simpson's method=%.7f\n",Sum[1]); scanf("%d",&b); }
Вы можете приобрести готовую работу
Альтернатива - заказ совершенно новой работы?
Вы можете запросить данные о готовой работе и получить ее в сокращенном виде для ознакомления. Если готовая работа не подходит, то закажите новую работуэто лучший вариант, так как при этом могут быть учтены самые различные особенности, применена более актуальная информация и аналитические данные