Диссертация (1149808), страница 11
Текст из файла (страница 11)
12, Iss. 6, 2013, pp. 727735.[111] Zhanlav,T.,Mijiddorj,approximation properties.R. Appl. Math. Comput. 216, 2010, pp. 2215-2219.[112] Zhanlav, T., Mijiddorj, R.propertiesThe local integro cubic splines and theirIntegro quintic splines and their approximation Appl. Math. Comput. 231, 2014, pp. 536-543.[113] Zhanlav, T., Mijiddorj, R.:On local integro quartic splinesComput. 269, 2015, pp.
301-307.100 Appl. Math.ÏðèëîæåíèåÏðîãðàììà äëÿ ìîäåëèðîâàíèÿ íåïðåðûâíîãî ïðèáëèæåíèÿ ñ èñïîëüçîâàíèåì èíòåðïîëÿöèèrestart;with(LinearAlgebra):with(plots):with(StringTools):### Çàäàíèå èíòåðâàëà,###### êîîðäèíàòû "y" ñðåçà ôóíêöèè äëÿ 2-ìåðíîé èëëþñòðàöèè, ###### êîëè÷åñòâà óçëîâ èíòåðîëÿöèè.###X0:=-1:XN:=1:Y_CUT := 0.08:NNN:=10:getXj:=unapply(X0+h__j * i, i):f0 := -x*y^2+(1/10)*sin(7*y-5*x):f1 := 1/((1+(x-.5)^2)*(1+(y-.5)^2)):f2 := 1/((1+(x-.5)^2)*(1+(y-.5)^2))-(1/20)*sin(17*x*y^2)+(1/50)*cos(30*x^2):f3 := 1/((25 * x^2+1)*(25 * y^2+1)):f4 := 1/((1+((1/1)*x-0.5)^2)*(1+((1/1)*y-0.5)^2)):### Âûáîð àïïðîêñèìèðóåìîé ôóíêöèè ###f_selected:=f3:x_opts := x = X0 ..
XN:y_opts := y = X0 .. XN:xy_opts := x = X0 .. XN, y = X0 .. XN:U := unapply(f_selected, x, y):plot3d(U(x, y), xy_opts):X[j] := h__j*j+X0:X[j-1] := X[j]-h__j:X[j+1] := X[j]+h__j:101X[j+2] := X[j+1]+h__j:X[j+3] := X[j+2]+h__j:X[j+4] := X[j+3]+h__j:X[j+5] := X[j+4]+h__j:Y[k] := h__k*k+X0:Y[k+1] := Y[k]+h__k:Y[k-1] := Y[k]-h__k:### Áàçèñíûå ñïëàéíû ###W1j := unapply(-t1^2+t1*t2-t2^2+1, t1,t2):W2j := unapply((1/2)*t1^2-t1*t2+(1/2)*t2^2+(1/2)*t1-(1/2)*t2, t1,t2):W3j := unapply(-t2*(t1-t2), t1,t2):W4j := unapply((1/2)*t2*(2*t1-t2+1), t1,t2):W5j := unapply((1/2)*t1^2-(1/2)*t2^2-(1/2)*t1+(1/2)*t2, t1,t2):W6j := unapply((1/2)*t2*(t2-1), t1,t2):### Ìîäåëèðîâàíèå àïïðîêñèìàöèè ###h := (XN-X0)/N:# [0..1]XXX := (x-X0)/(XN-X0):# Ix = index: x = x0 + index * h + t * hIx := unapply(floor(XXX*N), x):# Tx = t: x = x_i + t * hTx := unapply((x-X0)/h-Ix(x), x):h__k := h:h__j := h:ix := Ix(x):iy := Ix(y):t1 := Tx(x):t2 := Tx(y):u := unapply(U(X[j], Y[k]), j, k):102### Ôîðìóëà äëÿ èñõîäíîãî ïðèáëèæåíèÿ ###UU := unapply(u(ix, iy)*W1j(t1, t2)+u(ix+1, iy)*W2j(t1, t2)+u(ix, iy+1)*W3j(t1, t2)+u(ix+1, iy+1)*W4j(t1, t2)+u(ix-1, iy)*W5j(t1, t2)+u(ix-1, iy-1)*W6j(t1, t2), x, y):### Ìîäåëèðîâàíèå íåïðåðûâíîãî ïðèáëèæåíèÿ ###h:h1:=h/4:Ix(x):N:=NNN:nearcond := proc (x)if (Tx(x+h1) < 1/2) then true else false fi end:Jx:=unapply(Ix(x+h1),x):Xj:=unapply(X0+Jx(x)*h,x):P0:=Xj(x)-3*h1:P1:=Xj(x)-h1:P2:=Xj(x)+h1:P3:=Xj(x)+3*h1:w0:=((x-P1)*(x-P2)*(x-P3))/((P0-P1)*(P0-P2)*(P0-P3)):w1:=((x-P0)*(x-P2)*(x-P3))/((P1-P0)*(P1-P2)*(P1-P3)):w2:=((x-P0)*(x-P1)*(x-P3))/((P2-P0)*(P2-P1)*(P2-P3)):w3:=((x-P0)*(x-P1)*(x-P2))/((P3-P0)*(P3-P1)*(P3-P2)):nearUy:=unapply(w0*UU(P0,y)+w1*UU(P1,y)+w2*UU(P2,y)+w3*UU(P3,y),x,y):ap1:=proc (x) if nearcond(x) then nearUy(x,Y_CUT) else 0 fi end:ap2:=proc (x) if nearcond(x) then 0 else UU(x, Y_CUT) fi end:103### Ôîðìóëà äëÿ íåïðåðûâíîãî ïðèáëèæåíèÿ ###approx := proc (x) if nearcond(x) then nearUy(x,Y_CUT)else UU(x, Y_CUT) fi end:clamp_x := unapply(min(max(x, X0), XN), x):cont_params:= color = red, linestyle = dot:cont_params_0:= color = red, linestyle = dot,legend = "Èíòåðïîëÿöèÿ ðàçðûâíûõ ÷àñòåé":orig_params:=color = navy:orig_params_0 := color = navy,legend = "×àñòè èñõîäíîãî ïðèáëèæåíèÿ":c_p := proc (i) if (icont_params_0 fi; endo_p := proc (i) if (iorig_params_0 fi; end> 1) then cont_params elseproc:> 1) then orig_params elseproc:continuous_plot := proc (i)plot(nearUy(x, Y_CUT), x = clamp_x(getXj(i)-h1) ..clamp_x(getXj(i)+h1), c_p(i))end proc:original_plot := proc (i)plot(UU(x, Y_CUT), x = clamp_x(getXj(i)+h1) ..clamp_x(getXj(i+1)-h1),o_p(i))end proc:plot_array := []:for i from 0 to N do plot_array :=[op(plot_array), continuous_plot(i), original_plot(i)]end do:104fontS:=[TIMES, BOLD, 12]:fontL:=[TIMES, BOLD, 26]:display_options :=thickness = 2,titlefont = fontL,axesfont = fontS,legendstyle = [font = fontS],labelfont = fontS,captionfont=fontS:original_plot :=plot(UU(x, Y_CUT), x = X0 ..
XN, discont = true):plotsetup(default):### Ãðàôèê èñõîäíîãî ïðèáëèæåíèÿ ###d_orig:=display(original_plot, display_options):### Ãðàôèê íåïðåðûâíîãî ïðèáëèæåíèÿ ###d_cont:=display(plot_array, display_options):### Íàõîæäåíèå ìàêñèìóìà ïîãðåøíîñòåé èñõîäíîé è ###### íåïðåðûâíîé àïïðîêñèìàöèé###error_func:=unapply(abs(nearUy(x,Y_CUT)-U(x,Y_CUT)),x):error_func_u :=unapply(abs(UU(x,Y_CUT)-U(x,Y_CUT)),x):with(Optimization):Maximize(error_func(x), x_opts);Maximize(error_func_u(x), x_opts);### Ãðàôèê ïîãðåøíîñòè èñõîäíîãî ïðèáëèæåíèÿ ###error_plot :=plot([error_func(x)], x_opts,discont=true, display_options):105### Ãðàôèê ïîãðåøíîñòè íåïðåðûâíîãî ïðèáëèæåíèÿ ###error_plot_u := plot([error_func_u(x)],x_opts,discont=true, display_options):### Âûâîä âñåõ ïîëó÷åííûõ ãðàôèêîâ ###d_orig;d_cont;error_plot;error_plot_u;106.















