matlab定函数拟合
时间: 2023-10-22 11:09:20 浏览: 91
根据提供的代码,可以看出这是一个用于拟合的自定义函数 `fids`,它的输入参数为 `Vgs`、`mu` 和 `Vth`,输出参数为 `ids`。其中,`Vgs` 为栅极源极电压,`mu` 为电子迁移率,`Vth` 为阈值电压。该函数的具体实现为:
```
function ids = fids(Vgs,mu,Vth)
Ci = 11.5e-9;
W = 15e-3;
L = 10e-6;
ids = 0.5*mu*Ci*W/L*(Vgs-Vth).^2;
end
```
接下来,使用 `fit` 函数对仿真数据进行拟合。其中,`fittype` 函数用于创建一个拟合类型,`fit` 函数用于进行拟合。具体实现为:
```
x = -30:0.5:30;
y = (0.95+0.1*rand(size(x))).*0.5*15e-3/10e-6*0.1*11.5e-9.*(x-1).^2;
x = x';
y = y';
f=fittype('fids(x,mu,Vth)','independent','x','coefficients',{'mu','Vth'});
[cfun,g,o]=fit(x,y,f,'Lower',[0.01 -2],'Upper',[1 3],'StartPoint',[0.2 0]);
xi=-30:1:30;
yi=cfun(xi);
plot(x,sqrt(y),'ro',xi,sqrt(yi),'b-');
figure
plot(x,y,'ro',xi,yi,'b-');
cfun
coeffvalues(cfun)
confint(cfun)
g.rsquare
```
其中,`x` 和 `y` 分别为仿真数据的自变量和因变量,`f` 为拟合类型,`cfun` 为拟合结果,`g` 为拟合统计信息,`o` 为拟合选项。在拟合过程中,使用了 `Lower`、`Upper` 和 `StartPoint` 参数来限制拟合参数的取值范围和初始值。最后,使用 `plot` 函数将拟合结果可视化。
回答完毕。
阅读全文