matlab_常用绘图方法_离散数据拟合曲线

1.画图
在这里插入图片描述
示例代码:

clc;clear all;
x=-20:0.01:20;
y=x.^3+2*x.^2-3*x+4;

x1=0:0.01:2*pi;
y1=cos(2.*x1);

t=0:0.01:2*pi;
x3=(1+sin(t)-2.*cos(4.*t)).*cos(t);
y3=(1+sin(t)-2.*cos(4.*t)).*sin(t);

x2=-20:0.01:20;
y2=sin(x)+sin(2*x);

figure('position',[80,80,700,700])
subplot(2,2,1);
plot(x,y,'b');
xlabel('x');
ylabel('y');
title('图一');
legend('y=x.^3+2*x.^2-3*x+4');
grid on;

subplot(2,2,2);
polar(x1,y1,'b');
xlabel('x1');
ylabel('y1');
title('图二');
legend('y1=cos(2*x)');
grid on;

subplot(2,2,3);
plot(x3,y3,'r')
xlabel('x3');
ylabel('y3');
title('图三');
legend('y3=(1+sin(t)-2*cos(4*t))*sint');
grid on;

subplot(2,2,4)
plot(x2,y2,'LineWidth',2);
xlabel('x2');
ylabel('y2');
title('图四');
legend('y2=sin(x)+sin(2*x)');
grid on;

在这里插入图片描述
2.matlab迭代法
在这里插入图片描述

function f = test4(a)
x = a;
f = (x+a./x)./2; 
while abs(f-x) > 0.00001
    x=f;
    f = (x+a./x)./2;
end

简单的求和函数

function f=sumTest(i,j)
f=0;
for temp=i:j
    f=f+temp;
end

二、matlab散点数据变平滑

clc,clear,close all
x = [50,100,200,500,1000,2000,5000,10000,20000]
y = [2.64,2.21,1.38,0.564,0.263,0.396,1.07,1.98,3.14]
xx = 50:0.01:20000; % 插值,因为x的散点数据为[50,20000]在此区间内让数据间隔变小
yy = interp1(x,y,xx,'spline');%interp1函数:一维数据插值函数
plot(x,y,'o',xx,yy,'linewidth',1)
% matlab 中插值时分为 cubic 和 spline ,存在插值方式的不同,一般spline的插值方式性能较好,但计算时长较大
xlabel('频率/Hz','fontsize',15)
ylabel('电压/mv','fontsize',20)
title('幅频特性曲线','fontsize',15)

代码分析:

xx = 50:0.01:20000; 这句代码是关键,运用了插值法,在[50,20000]这个区间内,每隔0.01便补充一个点。插入的点越多,绘制的曲线越圆滑。

plot(x,y,‘o’,xx,yy,‘linewidth’,1) 既绘制散点,也绘制圆滑曲线。‘linewidth’,1指的是曲线线条宽度是1。
在这里插入图片描述
三、matlab的polyfit和polyval函数
1)语法:

 p=polyfit(x,y,n):最小二乘法计算拟合多项式系数。x,y为拟合数据向量,要求维度相同,n为拟合多项式次数。返回p向量保存多项式系数,由最高次向最低次排列。

 y=polyval(p,x):计算多项式的函数值。返回在x处多项式的值,p为多项式系数,元素按多项式降幂排序。
clc,clear
% 我国人口数量
year = [1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 ...
        2001 2002 2003 2004 2005 2006 2007 2008 2009 2010];
num = [114333 115823 117171 118517 119850 121121 122389 123626 ... 
       124761 125786 126743 127627 128453 129227 129988 130756 ...
       131448 132129 132802 133450 134091 ];
 
% 我国人口数量增长图
figure(1)
plot(year,num,'+r');
title('我国人口数量增长图')      
xlabel('年份')
ylabel('人口(万)')
grid on                              % 使用网格线
set(gca,'GridLineStyle',':','GridColor','k','GridAlpha',1); % 把网格线变成虚线

p2 = polyfit(year,num,2);
p4 = polyfit(year,num,4);
p6 = polyfit(year,num,6);
y2=polyval(p2,year);
y4=polyval(p4,year);
y6=polyval(p6,year);
figure(2)
plot(year,num,'r+',year,y2,'*',year,y4,'-',year,y6,'o')
legend('人口增长曲线','2阶拟合','4阶拟合','6阶拟合')

拟合示意图:
在这里插入图片描述

  • 1
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 闭合曲线拟合是指在给定一组离散坐标的情况下,通过数学方法来找到一个最佳的闭合曲线,使得该曲线能够尽可能地通过这些离散。 在MATLAB中,拟合闭合曲线通常可以使用多项式拟合方法来实现。首先,我们需要将离散的坐标表示为向量形式,例如X和Y分别代表横坐标和纵坐标的向量。 接下来,使用MATLAB的polyfit函数可以进行多项式拟合。该函数接受输入参数为X、Y和拟合多项式的次数n。例如,使用polyfit(X, Y, n)可以得到一个多项式系数向量,表示了n次多项式的各个系数。 然后,我们可以通过polyval函数来计算出拟合曲线上每个的函数值。该函数接受输入参数为上一步得到的多项式系数向量和横坐标值,例如polyval(coefficients, X)可以得到对应于X的拟合曲线上的纵坐标值。 最后,我们可以使用plot函数来绘制拟合曲线。将X作为横坐标,使用上一步得到的拟合曲线对应的纵坐标作为纵坐标,即可得到一个闭合曲线的拟合结果。 总之,使用MATLAB进行闭合曲线拟合的一般步骤为:将离散的坐标表示为向量,使用polyfit函数进行多项式拟合,然后使用polyval函数计算出拟合曲线上的的函数值,最后使用plot函数绘制出闭合曲线的拟合结果。 ### 回答2: 闭合曲线拟合是指将一组离散数据拟合成一个闭合的曲线形状。在Matlab中,可以通过使用曲线拟合函数来实现闭合曲线拟合。 首先,我们需要将原始的离散数据导入到Matlab中。可以使用csvread函数或者直接将数据赋值给一个向量。 接下来,可以使用polyfit函数来进行多项式拟合。多项式拟合可以根据数据的分布情况拟合出一个曲线。通过指定多项式的阶数,可以得到不同拟合程度的曲线。 在进行多项式拟合之后,我们可以使用polyval函数来计算得到的拟合曲线上的的数值。通过指定横坐标的范围,可以得到整个曲线上的的数值。 为了实现闭合曲线拟合,我们可以在原始数据的末尾加入与起始相同的,从而使得曲线闭合。具体方法是将起始复制并添加到数据的末尾。 最后,可以使用plot函数将拟合曲线和原始数据一起绘制在图上,以便对比和观察拟合效果。可以使用不同的线型和颜色来区分原始数据拟合曲线。 总结起来,Matlab提供了多种拟合函数和绘图函数,可以实现闭合曲线拟合。通过选择合适的函数和参数,可以得到满足需求的闭合曲线拟合结果。 ### 回答3: 在MATLAB中,可以使用闭合曲线拟合的多种方法,其中一种常用方法是使用多项式拟合。 首先,需要将闭合曲线的坐标数据导入MATLAB,并按照顺序存储于两个不同的向量中,分别表示曲线的x坐标和y坐标。 接下来,使用polyfit函数进行多项式拟合。该函数的输入参数包括曲线坐标数据以及欲拟合的多项式阶数。例如,使用三次多项式进行拟合,则输入参数为两个坐标向量和阶数3。函数会返回拟合产生的多项式系数,存储在一个向量中。 然后,使用polyval函数根据拟合的多项式系数和x坐标值,计算出对应的拟合曲线上的y坐标值。可以使用linspace函数先生成一系列等间隔的x坐标值,再通过polyval函数来计算对应的y坐标值。 最后,使用plot函数将原始曲线的坐标拟合曲线的坐标绘制在同一张图上。可以使用不同的颜色或线型来区分二者,以明显展示拟合效果。 除了多项式拟合MATLAB还提供了其他拟合方法,如样条插值、加权最小二乘拟合等。根据实际情况,可以选择适合的拟合方法来得到最佳的拟合结果。 总而言之,使用MATLAB进行闭合曲线的拟合可以通过导入坐标数据、使用多项式拟合函数polyfit和polyval来实现。这样可以得到一条拟合曲线,以更好地分析和展示曲线的特征。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值