指定函数拟合出现问题

朋友有一个指定公式拟合找我,我参考相关资料后代码如下,竟然时而可以执行,时而不可以执行,怪之,以记录。

环境为matlabR2019a;电脑系统win10家庭中文版。

clear;clc;close all;
k = -1.05;
c = 0.072780204;
a2 = 2.73E-05;
a3 = -5.05E-07;
a4 = 1.13E-09;
a5 = 0.00E+00;
a6 = 0.00E+00;
a7 = 0.00E+00;
a8 = 0.00E+00;
x = linspace(-10, 10, 1000);
y = c*x.^2/(1+sqrt(1-(1+k)*c^2*x.^2)) + a2*x.^4+ a3*x.^6+ a4*x.^8+ a5*x.^10+ a6*x.^12+ a7*x.^14+ a8* x.^16;
plot(x,y);
myfittype = fittype('c*r^2/(1+sqrt(1-(1+k)*c^2*r^2)) + a2*r^4+ a3*r^6+ a4*r^8+ a5*r^10+ a6*r^12+ a7*r^14+ a8* r^16',...
    'dependent', {'y'},'independent',{'r'},'coefficients',{'c','k','a2','a3','a4','a5','a6','a7','a8'});
myfit = fit(x',y',myfittype); %显示拟合函数
plot(myfit,x,y)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: MATLAB中可以利用polyfit函数来进行粗糙度拟合。polyfit函数是用于拟合多项式曲线到一组数据点的函数。具体步骤如下: 1. 首先,将待拟合的数据点以矩阵的形式输入到MATLAB中。 2. 使用polyfit函数进行拟合。该函数的基本语法为:p = polyfit(x, y, n),其中x和y分别为数据点的x坐标和y坐标,n为拟合多项式的次数。 3. 拟合后得到的p为一个包含拟合多项式的系数的向量。可以通过polyval函数拟合多项式应用到其他的x值上,从而得到对应的y值。该函数的基本语法为:y_fit = polyval(p, x),其中p为拟合多项式的系数向量,x为待求的x值,y_fit为对应的拟合y值。 4. 可以通过绘图函数plot将原始数据和拟合曲线绘制在同一图像上,以便观察拟合效果。 需要注意的是,拟合精度和拟合结果的准确性取决于数据点的分布和拟合多项式的次数。当数据点较少或分布不均匀时,拟合结果可能存在误差,需要进行适当的处理。 ### 回答2: 在使用MATLAB进行粗糙度拟合时,可以使用不同的函数和方法进行处理。其中,最常用的方法是使用多项式拟合函数拟合粗糙度曲线。可以通过以下步骤来完成: 首先,将粗糙度数据导入MATLAB中,可以使用load或readtable命令将数据从文件中读取到MATLAB的变量中。 然后,可以使用polyfit函数进行多项式拟合。该函数需要输入x和y值,并指定多项式的次数。多项式次数的选择需要根据实际数据和曲线形状来确定。一般来说,多项式次数越高,拟合的精度越高,但同时也可能引入过拟合问题拟合完成后,可以使用polyval函数来计算拟合曲线上的y值,以获得对粗糙度曲线的拟合结果。 另外,还可以使用平滑函数对粗糙度数据进行平滑处理。MATLAB中常用的平滑函数有smoothdata、smooth和sgolayfilt等。这些函数可以对粗糙度曲线进行平滑处理,以减少数据中的噪声或周期性变化。平滑处理后的数据可以更好地展示粗糙度的趋势和特征。 最后,可以使用plot函数将原始数据和拟合曲线可视化展示出来,以便于在MATLAB中进行结果的观察和分析。 总之,在MATLAB中进行粗糙度拟合需要考虑数据的特点,并选择合适的函数和方法来完成处理。这样可以得到对粗糙度曲线的拟合结果,并更好地了解和分析数据的分布和特征。 ### 回答3: MATLAB中可以使用polyfit函数对数据进行粗糙度拟合,该函数用于多项式拟合。具体操作如下: 1. 准备好待拟合的数据,通常是由一组横坐标和纵坐标构成的向量。 2. 设定拟合的多项式阶数,根据数据的复杂程度选择合适的阶数。通常,拟合阶数越高,越能完美拟合数据,但也容易出现拟合的情况。 3. 使用polyfit函数进行拟合。该函数的使用形式为:[p, S, mu] = polyfit(x, y, n),其中x和y分别为横坐标和纵坐标的向量,n为拟合的多项式阶数。函数的输出包括拟合系数p、拟合信息结构体S和归一系数mu。 4. 得到拟合结果后,可以使用polyval函数对新的横坐标进行预测。该函数的使用形式为:y_fit = polyval(p, x_fit),其中p为拟合得到的系数向量,x_fit为待预测的横坐标向量。 5. 可以使用plot函数将原始数据点和拟合曲线进行可视化展示,以便观察拟合程度。 总的来说,MATLAB的polyfit函数可以通过多项式拟合实现对数据的粗糙度拟合。通过选择合适的拟合阶数,可以得到与原始数据相对较为接近的拟合曲线,用于分析数据的变化趋势和表征数据的粗糙度。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值