Untitled
unknown
plain_text
2 years ago
1.6 kB
6
Indexable
clear; clc; n = 8; xw = [-1.1, -0.83, -0.57, -0.28, -0.02, 0.16, 0.47, 0.95, 1.23]; m = 2; // m = 0, 1, 2, 33 lp = 125; function y = f(x); y = exp(sin(x)); endfunction; for i=0:n; yw(i+1) = f(xw(i+1)); end; for j=0:(2*m); suma = 0; for i=0:n; suma = suma + (xw(i+1))^j; end; g(j+1) = suma; end; for j=0:m; suma = 0; for i=0:n; suma = suma + yw(i+1) * (xw(i+1))^j; end; r(j+1) = suma; end; select m case 0 then for i=0:n; a(1) = r(1)/g(1); end; case 1 then l1=-g(3)*r(1) + g(2)*r(2); l2=g(2)*r(1) + g(1)*r(2); d=g(2)*g(2)-g(1)*g(3); a(1)=l1/d; a(2)=l2/d; case 2 then l1 = g(4)*g(4)*r(1) - g(3)*g(5)*r(1) + g(2)*g(5)*r(2) + g(3)*g(3)*r(3) - g(4)*(g(3)*r(2)+g(2)*r(3)); l2 = g(2)*g(5)*r(1) + g(3)*g(3)*r(2) - g(3)*(g(3)*r(1) + g(2)*r(3)) + g(1)*(-g(5)*r(2) + g(4)*r(3)); l3 = g(3)*g(3)+r(1) - g(2)*g(4)*r(1) + g(1)*g(4)*r(2) + g(2)*g(2)*g(3) - g(3)*(g(2)*r(2) + g(1)*r(3)); d=(g(3)^3) + g(1)*g(4)*g(4) + g(2)*g(2)*g(5) - g(3)*(2*g(2)*g(4) + g(1)*g(5)); a(1)=l1/d; a(2)=l2/d; a(3)=l3/d; else disp("Nieprawidłowa wartość parametru m"); end; function y=F(x, m, a); y = 0; for j=0:m; y= y+a(j+1) * x^j; end; endfunction; if m==0 || m==1 || m==2 then xt = linspace(xw(1)-0.1,xw(n+1)+0.1,lp)'; for i=1:lp; Ft(i) = F(xt(i),m,a); end; plot(xt, Ft); plot(xw,yw,".k"); end;
Editor is loading...
Leave a Comment