Автор работы: Пользователь скрыл имя, 21 Апреля 2014 в 21:41, курсовая работа
В даній курсовій роботі були проведені розрахунки з використанням різноманітних методів математичної обробки експериментальних даних. Був проведен аналіз результатів отриманних за допомоги різноманітних методів, а також були порівняні, методи якими ми користувалися в роботі, методи обробки експериментальних даних по простоті використання і по точності отриманних результатів. Був розрахован вибірковий коефіцієнт кореляції, характеризуючий силу лінійного кореляційного зв¢язку між X та Y. З використанням методів параболічного інтерполювання і метода Лагранжа були розраховані значення фізичних величин в заданних невузлових точках, результати отримані по заданим методам були співставленні і проаналізовані.
#include<stdio.h>
#include<conio.h>
#include<math.h>
void main(void)
{
float x[100], y[100], Sx=0, Sy=0, Sx2=0, Sy2=0, Sxy=0, a, b, r; int n, i=0;
clrscr();
printf (“\n введіть кількість єкспериментальних крапок\n n=”); scanf(“%i”, &n);
printf (“Попарно введіть значення х та у”);
for(i=0;i<n;i=i+1)
{ printf(“\n x[%i”, i); printf (“]=”); scanf(“%f”, &x[i]);
printf(“\t y[i”, i); printf (“]=”); scanf(“%f”, &y[i]);
Sx=Sx+x[i]; Sy=Sy+y[i];
Sx2=Sx2+pow(x[i],2); Sy2=Sy2+pow(y[i],2);
Sxy=Sxy+x[i]*y[i]; }
b=(n* Sxy - Sx *Sy)/(n*Sx2-pow(Sx,2));
a=(Sy-b*Sx)/n;
r=(n* Sxy - Sx *Sy)/ pow((n*Sx2-pow(Sx,2))* (n*Sy2-pow(Sy,2)),0.5);
printf (“\n Sx=%f, Sy=%f, Sx2=%f, Sy2=%f, Sxy=%f, a=%f, b=%f, r=%f”,
Sx, Sy, Sx2, Sy2, Sxy, a, b, r);
getch();
}
5) Програма власної розробки, при запуску якої вводимо коефіцієнти регресії перетвореного рівняння до лінійного виду a та b,кількість експериментальних точок n, перетворені значення х та у. Предназначена для розрахунку розрахункових- fx[i] по рівнянню лінійного виду, іх квадратів відхилень p[i] та сума квадратів відхилень z, також вона розраховує дисперсію адекватності Sad2, дисперсії Sb2,Sa2, та суми х, у, х2.
#include <stdio.h>
#include <math.h>
#include <conio.h>
float f (float x,float a,float b)
{
return (a+b*x);
}
void main(void)
{
float a,b,y[15],x[15],p[15],fx[15],
clrscr();
printf ("Введіть коефіцієнти регресії a та b");
printf ("\n a="); scanf ("%f", &a);
printf (" b="); scanf ("%f", &b);
printf ("\n Введіть кількість експериментальних точок \n n="); scanf ("%i", &n);
printf ("Введіть попарно преобразовані значення х та у ");
for (i=0; i<n; i++)
{
printf ("\n x[%i", i); printf("]="); scanf("%f", &x[i]);
printf ("\t y[%i", i); printf("]="); scanf("%f", &y[i]);
fx[i]=f(x[i],a,b); p[i]=pow(y[i]-fx[i],2); z=z+p[i]; Sx=Sx+x[i]; Sy=Sy+y[i];
Sx2=Sx2+pow(x[i],2);
}
Sad2=z/(n-2); Sb2=n*Sad2/(n*Sx2-pow(Sx,2)); Sa2=Sb2*Sx2/n;
printf ("розрахункові значення f(x) і квадрат відхилення \n");
for (i=0;i<n;i++)
{printf ("\n fx[%i]=%f,\t p[%i]=%f", i,fx[i],i,p[i]);}
printf ("\n квадрат суми відхилень z=%f,\n Sad=%f,\n Sx=%f,\n Sy=%f,\n Sx2=%f,\n Sb2=%f,\n Sa2=%f", z,Sad2,Sx,Sy,Sx2,Sb2,Sa2);
getch();
}
Информация о работе Методі математичної обробки експериментальних даних