MATLAB中勒让德多项式程序
2015-11-25 15:31
1386 查看
function p = legendre(t,n)
%求勒让德多项式的函数
%计算勒让德多项式中的x^2-1
f = ( t * t - 1)^n;
%对f多项式进行n阶求导
y = diff( f , n);
%求n得阶乘
str = prod(1 : n);
%勒让德多项式的一般表示式
l = (1 / (2^n * str))*y;
%对求出的勒让德多项式进行合并同类项
p = collect(l);
end
%利用勒让德多项式求解函数逼近的脚本
%初始化定义区间[a,b]
a = 0;
b = 1;
%定义符号变量x
syms x ;
%定义多项式中的n
n = 4;
h=1;
%定义多项式中的中间变量t
t =(2 * x - b - a)/(b - a );
%以为MATLAB中定义的collect函数不适用于0,所以要把当n = 0 是单独写出来。
p = 1
%从1开始依次打印出区间[a,b]上的正交多项式
data=[];
for i = 1 : 1 :n
%p/(2^i)因为此时t=2*x-1在进行求导的过程中由p函数对t求导转变为对x的求导,t=2*x-1两边同时求导dt=2*dx
%所以在最后根据求导的次数要进行相应的除以2^i
p = legendre(t,i)/(2^i);
s = p*p;
h=int(s,0,1);
d=h*p;
data = [data;d];
end
m=sum(data);
vpa(m)
%求勒让德多项式的函数
%计算勒让德多项式中的x^2-1
f = ( t * t - 1)^n;
%对f多项式进行n阶求导
y = diff( f , n);
%求n得阶乘
str = prod(1 : n);
%勒让德多项式的一般表示式
l = (1 / (2^n * str))*y;
%对求出的勒让德多项式进行合并同类项
p = collect(l);
end
%利用勒让德多项式求解函数逼近的脚本
%初始化定义区间[a,b]
a = 0;
b = 1;
%定义符号变量x
syms x ;
%定义多项式中的n
n = 4;
h=1;
%定义多项式中的中间变量t
t =(2 * x - b - a)/(b - a );
%以为MATLAB中定义的collect函数不适用于0,所以要把当n = 0 是单独写出来。
p = 1
%从1开始依次打印出区间[a,b]上的正交多项式
data=[];
for i = 1 : 1 :n
%p/(2^i)因为此时t=2*x-1在进行求导的过程中由p函数对t求导转变为对x的求导,t=2*x-1两边同时求导dt=2*dx
%所以在最后根据求导的次数要进行相应的除以2^i
p = legendre(t,i)/(2^i);
s = p*p;
h=int(s,0,1);
d=h*p;
data = [data;d];
end
m=sum(data);
vpa(m)
相关文章推荐
- 支持向量机的smo算法(MATLAB code)
- 【Matlab开发】函数bsxfun的使用
- VLFeat和Piotr’s Image & Video Matlab Toolbox
- matlab图像处理为什么要归一化和如何归一化
- Windows下使用MATLAB的MCC命令生成C/C++程序
- Matlab和C程序的备忘2
- 精神污染图制作(matlab代码)
- matlab 破解教程密钥
- Matlab 实现矩阵的满秩分解(最大秩分解)
- 每天一点matlab——图像二值化,人为设定阈值
- matlab批处理读取图像文件和批写图像文件
- 常见MATLAB小技巧
- 绘制y=sin(x)/x的图形
- 用MATLAB进行SVM分类
- matlab quadprog函数 二次规划的matlab解法
- matlab load
- matlab save 命令
- libsvm之(一)安装与测试(matlab)
- Matlab调用C的时候的一个小备注
- 支撑向量机 SVM 学习笔记(Matlab代码)