数值分析习题3/多项式的曲线拟合

计算方法 专栏收录该内容
5 篇文章 0 订阅

3 次、4 次、指数多项式的曲线拟合

在这里插入图片描述
在这里插入图片描述

3 次多项式的曲线拟合程序

x=[0.0 0.1 0.2 0.3 0.5 0.8 1.0];
y=[1.0 0.41 0.50 0.61 0.91 2.02 2.46];
%初始化变量
m=length(x); %取 m 为数组长度
n=4; %取 n-1 为多项式次数
Y=0; syms t; YY=0;
A=zeros(n,n); %法方程组的 A 数组
b=zeros(n,1); %法方程组的 b 向量
y1=zeros(1,m); %拟合函数对应抽样点的函数值
%%%******************写入法方程组的 A 矩阵和 b 向量****************************
for i=1:1:n
 for j=1:1:m
 A(1,i)=A(1,i)+x(j)^(i-1);
 A(2,i)=A(2,i)+x(j)^(i);
 A(3,i)=A(3,i)+x(j)^(i+1);
 A(4,i)=A(4,i)+x(j)^(i+2);
 b( i,1)=b(i,1)+x(j)^(i-1)*y(j);
 end
end
%%***************************求 C 并输出已 C 向量为系数的多项式****************
format short;
C=A\b %求多项式系数 C 向量
P=[1 t t^2 t^3]*C(:,1); %输出多项式公式
P=vpa(collect(P),4)
%作图
X=0:0.05:1; %取 X 为作图抽样点
for k=1:1:n
 Y=Y.*X+C(5-k,1); %取 Y 为作图的 X 对应函数值
end
plot(x,y,”ob”,X,Y)
xlabel(“x”),ylabel(“y”);
title(“三次多项式拟合曲线”);
grid on;
%%*****************************计算偏差平方和******************************
 %取抽样点对应函数值
x1=[0.0 0.1 0.2 0.3 0.5 0.8 1.0];
 for ii=1:1:m
for kk=1:1:n
 YY=YY.*x1(ii)+C(5-kk,1);end
 y1(1,ii)=YY;
 YY=0;
 end
 y1
%输出偏差平方和 zz
format long;
z=(y1-y).^2; %取 z 为偏差平方数组
zz=sum(z)

在这里插入图片描述

4 次多项式的曲线拟合程序

x=[0.0 0.1 0.2 0.3 0.5 0.8 1.0];
y=[1.0 0.41 0.50 0.61 0.91 2.02 2.46];
%初始化变量
m=length(x); %取 m 为数组长度
n=5; %取 n-1 为多项式次数
Y=0; syms t; YY=0;
A=zeros(n,n); %法方程组的 A 数组
b=zeros(n,1); %法方程组的 b 向量
y1=zeros(1,m); %拟合函数对应抽样点的函数值
%%%******************写入法方程组的 A 矩阵和 b 向量****************************
for i=1:1:n
 for j=1:1:m
 A(1,i)=A(1,i)+x(j)^(i-1);
 A(2,i)=A(2,i)+x(j)^(i);
 A(3,i)=A(3,i)+x(j)^(i+1);
 A(4,i)=A(4,i)+x(j)^(i+2);
 A(5,i)=A(5,i)+x(j)^(i+3);
b(i,1)=b(i,1)+x(j)^(i-1)*y(j);
 end
end
%%***************************求 C 并输出已 C 向量为系数的多项式****************
format short;
C=A\b %求多项式系数 C 向量
P=[1 t t^2 t^3 t^4]*C(:,1); %输出多项式公式
P=vpa(collect(P),4)
%作图
X=0:0.05:1; %取 X 为作图抽样点
for k=1:1:n
 Y=Y.*X+C(6-k,1); %取 Y 为作图的 X 对应函数值
end
plot(x,y,”ob”,X,Y)xlabel(“x”),ylabel(“y”);
title(“四次多项式拟合曲线”);
grid on;
%%*****************************计算偏差平方和******************************
 %取抽样点对应函数值
x1=[0.0 0.1 0.2 0.3 0.5 0.8 1.0];
 for ii=1:1:m
 for kk=1:1:n
 YY=YY.*x1(ii)+C(6-kk,1);
 end
 y1(1,ii)=YY;
 YY=0;
 end
 y1
%输出偏差平方和 zz
 format long;
 z=(y1-y).^2; %取 z 为偏差平方数组
zz=sum(z) 

在这里插入图片描述

指数函数多项式的曲线拟合

可以选取函数类

在这里插入图片描述

其相应的法方程组为
在这里插入图片描述

x=[0.0 0.1 0.2 0.3 0.5 0.8 1.0];
y=[1.0 0.41 0.50 0.61 0.91 2.02 2.46];
syms t;
format short;
A=zeros(5,5);
b=zeros(5,1);
a12=exp(x);
a22=exp(2*x);
a24=exp(3*x);
a44=exp(4*x);
a13=exp(-1*x);
a33=exp(-2*x);
a35=exp(-3*x);
a55=exp(-3*x);
%%%******************写入法方程组的 A 矩阵和 b 向量****************************
A(1,1)=7; A(1,2)=sum(a12); A(1,3)=sum(a13);
A(1,4)=sum(a22); A(1,5)=sum(a33);
A(2,1)=sum(a12); A(2,2)=sum(a22); A(2,3)=7;
A(2,4)=sum(a24); A(2,5)=sum(a13);
A(3,1)=sum(a13); A(3,2)=7; A(3,3)=sum(a33);
A(3,4)=sum(a12); A(3,5)=sum(a35);
A(4,1)=sum(a22); A(4,2)=sum(a24); A(4,3)=sum(a12);
A(4,4)=sum(a44); A(4,5)=7;
A(5,1)=sum(a33); A(5,2)=sum(a13); A(5,3)=sum(a35);A(5,4)=7; A(5,5)=sum(a55);
b(1,1)=sum(y); b(2,1)=a12*y’; b(3,1)=a13*y’;
b(4,1)=a22*y’; b(5,1)=a33*y’;
%%***************************求 C 并输出已 C 向量为系数的多项式****************
C=A\b %求多项式系数 C 向量
P=[1 exp(t) exp(-t) exp(2*t) exp(-2*t) ]*C(:,1); %输出多项式公式
P=vpa(collect(P),4)
%作图
X=0:0.05:1; %取 X 为作图抽样点
Y=1*C(1,1)+exp(X)*C(2,1)+exp(-X)*C(3,1)+exp(2*X)*C(4,1)+exp(-2*X)*C(5,1);
plot(x,y,”ob”,X,Y)
%%*****************************计算偏差平方和******************************
 %取抽样点对应函数值
x1=[0.0 0.1 0.2 0.3 0.5 0.8 1.0];
for ii=1:1:7
y 1(ii)=1.*C(1,1)+exp(x1(ii))*C(2,1)+exp(-x1(ii))*C(3,1)+exp(2*x1(ii))*C(4,1)+exp(-2*x1(ii))*C(5,1);
 end
 y1
%输出偏差平方和 zz
 format long;
 z=(y1-y).^2; %取 z 为偏差平方数组
zz=sum(z)

在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 0
    评论
  • 22
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

参与评论 您还未登录,请先 登录 后发表或查看评论
©️2022 CSDN 皮肤主题:1024 设计师:我叫白小胖 返回首页

打赏作者

怙乐不悛

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值