作业帮 > 综合 > 作业

求matlab高手帮忙编写一个函数拟合程序.估计可以得到一个幂函数或者指数函数.

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/30 18:13:42
求matlab高手帮忙编写一个函数拟合程序.估计可以得到一个幂函数或者指数函数.
求matlab高手帮忙编写一个函数拟合程序.估计可以得到一个幂函数或者指数函数,不太确定,请选择函数类型前,先描点以确定需要构造的函数类型.数据如下:
x=[200 300 400 500 600 700 800 900 1000 1100 1200 1300 1400 1500 1600 1700 1800 1900 2000]
y=[0.1 0.25 0.49 0.65 0.7 0.91 1.15 1.26 1.37 1.46 1.52 1.60 1.65 1.67 1.68 1.68 1.69 1.69 1.71]
最后请给出程序代码,要输入函数式、参数、并绘制图形.
用y=c1*x^2/(x^2+c2^2)拟合

clear all
clc
 
x=[200 300 400 500 600 700 800 900 ...
   1000 1100 1200 1300 1400 1500 ...
   1600 1700 1800 1900 2000];
y=[0.1 0.25 0.49 0.65 0.7 0.91 1.15 ...
   1.26 1.37 1.46 1.52 1.60 1.65 ...
   1.67 1.68 1.68 1.69 1.69 1.71];
 
F=@(c)sum((y-c(1)*x.^2./(x.^2+c(2).^2)).^2);
[coef,fval]=fminsearch(F,[0.1,0.1]);
c1=coef(1)
c2=coef(2)
 
x1=0:1:2200;
y1=coef(1)*x1.^2./(x1.^2+coef(2).^2);

plot(x,y,'ok','Markersize',8)
hold on
plot(x1,y1,'-k')
xlabel('x')
ylabel('y')