Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function [ ] = chmethodslagranga (a,b,n)
- syms x;
- %F(x)=3*x-cos(x)-1;
- ezplot('3*x-cos(x)-1'),hold on
- axis([0 5 -0.1 0.1])
- xx=linspace(a,b,n+1);
- yy=zeros(1,n+1);
- res=0;
- x1=xx(1);
- x2=xx(1);
- for i=1:n+1
- yy(i)=3*xx(i)-cos(xx(i))-1;
- end
- y1=lagrange (xx,yy,n,xx(1));
- y2=y1;
- for l=1:n+1
- res=lagrange(xx,yy,n,xx(l));
- s=3*xx(l)-cos(xx(l))-1;
- x2=xx(l);
- y2=res;
- % рисую график полинома
- plot([x1,x2],[y1,y2],'g');
- disp([s res s-res xx(l)]);
- x1=x2;
- y1=y2;
- end
- ry1=3*1-cos(1)-1-lagrange(xx,yy,n,1);
- ry2=ry1;
- rx1=1;
- rx2=1;
- for i=1:0.001:10
- res=lagrange(xx,yy,n,i);
- s=3*i-cos(i)-1;
- rx2=i;
- ry2=s-res;
- if ry1~=ry2
- % рисую график разницы
- plot([rx1,rx2],[ry1,ry2],'r');
- rx1=rx2;
- ry1=ry2;
- end
- end
- end
- function [res] =lagrange (xx,yy,n,t)
- res=0;
- for i=1:n+1
- pn=1;
- for j=1:n+1
- if i~=j
- pn=pn*(t-xx(j))/(xx(i)-xx(j));
- end
- end
- res=res+pn*yy(i);
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement