求函数 y=cosx 及函数y=cosh x 在区间[-1,1] 的4阶chebyshev级数以及4次多项式最佳平方逼近, 其中积分近似计算可以使用matlab命令quad及相关命令
1条回答 默认 最新
- joel_1993 2021-10-18 19:41关注
你好,代码供参考
四阶切比雪夫% 切比雪夫级数逼近 T0 = @(x) 1*ones(size(x));%切比雪夫多项式 T1 = @(x) x; T2 = @(x) 2*x.^2 - 1; T3 = @(x) 4*x.^3 - 3*x; T4 = @(x) 8*x.^4 - 8*x.^2 + 1; T = {T0, T1, T2, T3, T4}; A = zeros(5,5); B1 = zeros(5,1); B2 = zeros(5,1); f1 = @(x)cos(x); f2 = @(x)cosh(x); for i = 1:1:5 B1(i,1) = integral(@(x)T{i}(x).*f1(x), -1, 1);%积分获取右端项 B2(i,1) = integral(@(x)T{i}(x).*f2(x), -1, 1);%积分获取右端项 for j = 1:1:5 A(i,j) = integral(@(x)T{i}(x).*T{j}(x), -1, 1);%积分获取系数矩阵 end end c1 = A\B1; c2 = A\B2; y1 = @(x) c1(1)*T{1}(x) + c1(2)*T{2}(x) + c1(3)*T{3}(x) + c1(4)*T{4}(x) + c1(5)*T{5}(x); y2 = @(x) c2(1)*T{1}(x) + c2(2)*T{2}(x) + c2(3)*T{3}(x) + c2(4)*T{4}(x) + c2(5)*T{5}(x); x = linspace(-1,1,100); ycos = cos(x); ycosh = cosh(x); ycos_fit = y1(x); ycosh_fit = y2(x); plot(x,ycos,'r-', x, ycosh, 'b-'); hold on; plot(x,ycos_fit,'-.', x, ycosh_fit, 'g--'); legend('cos(x)','cosh(x)','cos(x)四阶切比雪夫逼近','cosh(x)四阶切比雪夫逼近')
效果
四次多项式逼近
% 四次多项式 T0 = @(x) 1*ones(size(x));%基函数 T1 = @(x) x; T2 = @(x) x.^2; T3 = @(x) x.^3; T4 = @(x) x.^4; T = {T0, T1, T2, T3, T4}; A = zeros(5,5); B1 = zeros(5,1); B2 = zeros(5,1); f1 = @(x)cos(x); f2 = @(x)cosh(x); for i = 1:1:5 B1(i,1) = integral(@(x)T{i}(x).*f1(x), -1, 1);%积分获取右端项 B2(i,1) = integral(@(x)T{i}(x).*f2(x), -1, 1);%积分获取右端项 for j = 1:1:5 A(i,j) = integral(@(x)T{i}(x).*T{j}(x), -1, 1);%积分获取系数矩阵 end end c1 = A\B1; c2 = A\B2; y1 = @(x) c1(1)*T{1}(x) + c1(2)*T{2}(x) + c1(3)*T{3}(x) + c1(4)*T{4}(x) + c1(5)*T{5}(x); y2 = @(x) c2(1)*T{1}(x) + c2(2)*T{2}(x) + c2(3)*T{3}(x) + c2(4)*T{4}(x) + c2(5)*T{5}(x); x = linspace(-1,1,100); ycos = cos(x); ycosh = cosh(x); ycos_fit = y1(x); ycosh_fit = y2(x); plot(x,ycos,'r-', x, ycosh, 'b-'); hold on; plot(x,ycos_fit,'-.', x, ycosh_fit, 'g--'); legend('cos(x)','cosh(x)','cos(x)四次多项式逼近','cosh(x)四次多项式逼近')
逼近效果:
可见两者在四阶的时候,都和原函数十分贴合
有帮助还望答主点个右上角采纳支持一下,答题不易,十分感谢本回答被题主选为最佳回答 , 对您是否有帮助呢?解决评论 打赏 举报无用 1
悬赏问题
- ¥15 对于这个复杂问题的解释说明
- ¥50 三种调度算法报错 采用的你的方案
- ¥15 关于#python#的问题,请各位专家解答!
- ¥200 询问:python实现大地主题正反算的程序设计,有偿
- ¥15 smptlib使用465端口发送邮件失败
- ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
- ¥15 对于squad数据集的基于bert模型的微调
- ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
- ¥20 steam下载游戏占用内存
- ¥15 CST保存项目时失败