朋友有一个指定公式拟合找我,我参考相关资料后代码如下,竟然时而可以执行,时而不可以执行,怪之,以记录。
环境为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)