|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Контрольные задания. Функция f(x) задана таблично , где n - номер вашего варианта
Задание №1
Функция f(x) задана таблично , где n - номер вашего варианта. 1) аппроксимировать ее многочленами второй и третьей степени. 2) на одном чертеже построить точечный график заданной функции и графики аппроксимирующих функций 3) найти S 4) сравнить результаты и выбрать лучшее приближение в смысле минимума среднеквадратического отклонения. 5) Сделать проверку, используя функцию fit. > restart; > n:=30:R:=matrix([[x,1,2,3,4,5,6,7,8],[y, 3-0.1*n,3.5+0.1*n,3.9+0.1*n,4.6+0.2*n,10.5+0.3*n,21.3+0.5*n,38.7+0.5*n,59.7+n]]); > s[4]:=sum(R[1,i]^4,i=2..9)/8;s[3]:=sum(R[1,i]^3,i=2..9)/8;s[2]:=sum(R[1,i]^2,i=2..9)/8;s[1]:=sum(R[1,i]^1,i=2..9)/8;s[0]:=sum(R[1,i]^0,i=2..9)/8; > t[2]:=sum(R[1,i]^2*R[2,i],i=2..9)/8;t[1]:=sum(R[1,i]^1*R[2,i],i=2..9)/8;t[0]:=sum(R[1,i]^0*R[2,i],i=2..9)/8; > solve({s[0]*a[0]+s[1]*a[1]+s[2]*a[2]=t[0],s[1]*a[0]+s[2]*a[1]+s[3]*a[2]=t[1],s[2]*a[0]+s[3]*a[1]+s[4]*a[2]=t[2]},{a[2],a[1],a[0]}); > a[2]:=2.428571429;a[1]:=-10.41666667;a[0]:=12.84642857; > F:=unapply(a[2]*x^2+a[1]*x+a[0],x); > with(plots):f:=plot([[1,1.7],[2,4.8],[3,5.2],[4,7.2],[5,14.4],[6,27.8],[7,45.2],[8,72.7]],x=1..8,style=point,symbol=circle,color=black):T:=plot(a[2]*x^2+a[1]*x+a[0],x=1..10,color=cyan): Warning, the name changecoords has been redefined
> S:=sqrt(sum((R[2,i]-F(i-1))^2,i=2..9)); > with(stats): > fit[leastsquare[[x,y],y=a[2]*x^2+a[1]*x+a[0]]]([[ 1, 2, 3, 4,5,6,7,8], [ 1.7, 4.8, 5.2, 7.2,14.4,27.8,45.2,72.7]]); > s[5]:=sum(R[1,i]^5,i=2..9)/8;s[6]:=sum(R[1,i]^6,i=2..9)/8; > t[3]:=sum(R[1,i]^3*R[2,i],i=2..9)/8; > solve({s[0]*b[0]+s[1]*b[1]+s[2]*b[2]+s[3]*b[3]=t[0],s[1]*b[0]+s[2]*b[1]+s[3]*b[2]+b[3]*s[4]=t[1],s[2]*b[0]+s[3]*b[1]+s[4]*b[2]+b[3]*s[5]=t[2],s[3]*b[0]+s[4]*b[1]+s[5]*b[2]+s[6]*b[3]=t[3]},{b[3],b[2],b[1],b[0]}); > b[3]:=.4025252525;b[2]:=-3.005519481;b[1]:=10.31338384;b[0]:=-7.078571429: > F:=unapply(b[3]*x^3+b[2]*x^2+b[1]*x+b[0],x); > Q:=plot(b[3]*x^3+b[2]*x^2+b[1]*x+b[0],x=1..10,color=magenta): display([T,f,Q]); > S:=sqrt(sum((R[2,i]-F(i-1))^2,i=2..9)); > fit[leastsquare[[x,y],y=b[3]*x^3+b[2]*x^2+b[1]*x+b[0]]]([[ 1,2,3,4,5,6,7,8],[1.7,4.8,5.2,7.2,14.4,27.8,45.2,72.7]]);
Задание №2
Функцию f(x) заданную таблично , где и , причем - номер вашего варианта, аппроксимировать по МНК 1) прямой 2) степенной функцией (смотри замечание) 3) на одном чертеже построить точечный график заданной функции и графики аппроксимирующих функций 4) найти S 5) сравнить результаты и выбрать лучшее приближение в смысле минимума среднеквадратического отклонения. > restart; > n:=30: > k:=0.01*n: > m:=0.05*n: > R:=matrix([[x,1.1+k,1.7+k,2.4+k,3.0+k,3.7+k,4.5+k,5.1+k,5.8+k],[y,0.3+m,0.6+m,1.1+m,1.7+m,2.3+m,3.0+m,3.8+m,4.6+m]]); > s[2]:=sum(R[1,i]^2,i=2..9)/8;s[1]:=sum(R[1,i]^1,i=2..9)/8;s[0]:=sum(R[1,i]^0,i=2..9)/8; > t[1]:=sum(R[1,i]^1*R[2,i],i=2..9)/8;t[0]:=sum(R[1,i]^0*R[2,i],i=2..9)/8; > solve({s[0]*a[0]+s[1]*a[1]=t[0],s[1]*a[0]+s[2]*a[1]=t[1]},{a[1],a[0]}); > a[0]:=-.2524074914:a[1]:=.9219104400:F1:=unapply(a[1]*x+a[0],x); > r:=matrix([[ln(x),ln(1.40),ln(2.00),ln(2.70),ln(3.30),ln(4.00),ln(4.80),ln(5.40),ln(6.10)],[ln(y),ln(1.80),ln(2.10),ln(2.60),ln(3.20),ln(3.80),ln(4.50),ln(5.30),ln(6.10)]]); > s[2]:=sum(r[1,i]^2,i=2..9)/8;s[1]:=sum(r[1,i]^1,i=2..9)/8;s[0]:=sum(r[1,i]^0,i=2..9)/8; > t[1]:=sum(r[1,i]^1*r[2,i],i=2..9)/8;t[0]:=sum(r[1,i]^0*r[2,i],i=2..9)/8; > solve({s[0]*b[0]+s[1]*b[1]=t[0],s[1]*b[0]+s[2]*b[1]=t[1]},{b[1],b[0]}); > b[1]:=.8479688984:b[0]:=.1958326037: > k:=b[1]; > A:=solve(ln(A)=b[0],A); > F2:=unapply(A*x^k,x); > with(plots):f:=plot([[1.4,1.8],[2,2.1],[2.7,2.6],[3.3,3.2],[4,3.8],[4.8,4.5],[5.4,5.3],[6.1,6.1]],x=1..6.5,style=point,symbol=circle,color=black):T:=plot(.9219104400*x-.2524074914,x=1..6.5,color=cyan):M:=plot(A*x^k,x=1..6.5,color=red): display([T,M,f]); > S:=sqrt(sum((R[2,i]-F1(i-1))^2,i=2..9)); > S:=sqrt(sum((R[2,i]-F2(i-1))^2,i=2..9));
Лучшее приближение в смысле минимума среднеквадратического отклонения дает многочлен первой степени.
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.008 сек.) |