.
精选文档.
追赶法
function x=tridiagsolver(a,b)
[n,n]=size(a);
for i=1:n
if i==1
l(i)=a(i,i);
y(i)=b(i)/l(i);
else
l(i)=a(i,i)-a(i,i-1)*u(i-1);
y(i)=(b(i)-y(i-1)*a(i,i-1))/l(i);
end
if i<n
u(i)=a(i,i+1)/l(i);
end
end
x(n)=y(n);
for j=n-1:-1:1
x(j)=y(j)-u(j)*x(j+1);
end
拉格朗日
function yh=lagrange(x,y,xh)
n=length(x);
m=length(xh);
yh=zeros(1,m);
c1=ones(n-1,1);
c2=ones(1,m);
for i=1:n
xp=x([1:i-1 i+1:n]);
yh=yh+y(i)*prod((c1*xh-xp'*c2)./(x(i)-xp'*c2));
end
线性
x=[x1,x2] y=[] xh=[xh]
抛物线
X=[x1,x2,x3] y=[y1,y2,y3] xh=[xh]
牛顿差商(输入x,y为列向量)
function [p,q]=chashang(x,y)
n=length(x);
p(:,1)=x;
p(:,2)=y;
for j=3:n+1
p(1:n+2-j,j)=diff(p(1:n+3-j,j-1))./(x(j-1:n)-x(1:n+2-j));
end
q=p(1,2:n+1)';
三次样条
x=[0 1 2 3];
y=[ 0 -1];
pp=csape(x,y,'complete')
[breaks,coefs,npolys,ncoefs,dim]=unmkpp(pp)
.
精选文档.
最小二乘
x=[ ]';
y=[ - - - - 1]';
A=[log(x) cos(x) exp(x)];
Z=A\y;
a0=Z(1)
a1=Z(2)
a2=Z(3)
x=[0 ];
y=[ ];
p=polyfit(x,y,2)
a2=p(1)
a1=p(2)
a0=p(3)
复合中点
function I=fmid(fun,a,b,n)
h=(b-a)/n;
x=linspace(a+h/2,b-h/2,n);
y=feval(fun,x);
I=
数值分析各种代码 来自淘豆网m.daumloan.com转载请标明出处.