函数逼近(Function Approximation)
(2014-06-11 23:13:59)
标签:
it财经matlab函数逼近代码functionapproximatio |
分类: Matlab |
1. 用切比雪夫多项式逼近已知函数(Chebyshev)
function f = Chebyshev(y,k,x0)
syms t;
T(1:k+1) = t;
T(1) = 1;
T(2) = t;
c(1:k+1) = 0.0;
c(1)=int(subs(y,findsym(sym(y)),sym('t'))*T(1)/sqrt(1-t^2),t,-1,1)/pi;
c(2)=2*int(subs(y,findsym(sym(y)),sym('t'))*T(2)/sqrt(1-t^2),t,-1,1)/pi;
f = c(1)+c(2)*t;
for i=3:k+1
end
2. 用勒让德多项式逼近已知函数(Legendre)
function f = Legendre(y,k,x0)
syms t;
P(1:k+1) = t;
P(1) = 1;
P(2) = t;
c(1:k+1) = 0.0;
c(1)=int(subs(y,findsym(sym(y)),sym('t'))*P(1),t,-1,1)/2;
c(2)=int(subs(y,findsym(sym(y)),sym('t'))*P(2),t,-1,1)/2;
f = c(1)+c(2)*t;
for i=3:k+1
end
3. 用帕德形式的有理分式逼近已知函数(Pade)
function f = Pade(y,n,x0)
syms t;
A = zeros(n,n);
q = zeros(n,1);
p = zeros(n+1,1);
b = zeros(n,1);
yy = 0;
a(1:2*n) = 0.0;
for(i=1:2*n)
end;
for(i=1:n)
end;
q = A\b;
p(1) = subs(sym(y),findsym(sym(y)),0.0);
for(i=1:n)
end
f_1 = 0;
f_2 = 1;
for(i=1:n+1)
end
for(i=1:n)
end
if(nargin == 3)
else
end
4. 用列梅兹算法确定函数的最佳一致逼近多项式(lmz)
function [coff,err]= lmz(func,m,a,b,eps)
if(nargin == 4)
end
syms v;
maxv = 0.0;
max_x =
a;
for k=0:m
end
for
end
A = zeros(m+2,m+2);
for i=1:m+2
end
c
=A\transpose(fx);
u =
c(m+2);
tol =
1;
while(tol>eps)

加载中…