matlab用隐函数拟合的程序怎么编写
来源:学生作业帮 编辑:百度作业网作业帮 分类:综合作业 时间:2024/05/14 17:45:28
matlab用隐函数拟合的程序怎么编写
试验测试得到x,y数据.
现在想通过用matlab用隐函数y=I1*exp((x-y*Rs)/0.026/n1)+I2*exp((x-y*Rs)/0.026/n2)+(x-y*Rs)/Rsh-I1-I2+IL对数据进行拟合.得到参量I1、I2、IL、Rs、Rsh、n1、n2的数值.
急
自变量x从0到1,每0.05取一个点.
对应的y值如下:
0,4.84827E-9
0.05,7.20861E-9
0.1,9.486E-9
0.15,1.33346E-8
0.2,1.85467E-8
0.25,2.54804E-8
0.3,3.57885E-8
0.35,4.94846E-8
0.4,6.86021E-8
0.45,9.34068E-8
0.5,1.36416E-7
0.55,2.18504E-7
0.6,4.51033E-7
0.65,1.2785E-6
0.7,4.57114E-6
0.75,1.70904E-5
0.8,5.62476E-5
0.85,1.45646E-4
0.9,2.93975E-4
0.95,4.91251E-4
1,7.21464E-4
y轴用的是指数坐标.
试验测试得到x,y数据.
现在想通过用matlab用隐函数y=I1*exp((x-y*Rs)/0.026/n1)+I2*exp((x-y*Rs)/0.026/n2)+(x-y*Rs)/Rsh-I1-I2+IL对数据进行拟合.得到参量I1、I2、IL、Rs、Rsh、n1、n2的数值.
急
自变量x从0到1,每0.05取一个点.
对应的y值如下:
0,4.84827E-9
0.05,7.20861E-9
0.1,9.486E-9
0.15,1.33346E-8
0.2,1.85467E-8
0.25,2.54804E-8
0.3,3.57885E-8
0.35,4.94846E-8
0.4,6.86021E-8
0.45,9.34068E-8
0.5,1.36416E-7
0.55,2.18504E-7
0.6,4.51033E-7
0.65,1.2785E-6
0.7,4.57114E-6
0.75,1.70904E-5
0.8,5.62476E-5
0.85,1.45646E-4
0.9,2.93975E-4
0.95,4.91251E-4
1,7.21464E-4
y轴用的是指数坐标.
clear;clc
F=@(p,x)p(1)*exp((x(:,1)-x(:,2)*p(4))/0.026/p(6))+p(2)*exp((x(:,1)-x(:,2)*p(4))/0.026/p(7))+(x(:,1)-x(:,2)*p(4))/p(5)-p(1)-p(2)+p(3)-x(:,2);
x=[0,4.84827E-9
0.05,7.20861E-9
0.1,9.486E-9
0.15,1.33346E-8
0.2,1.85467E-8
0.25,2.54804E-8
0.3,3.57885E-8
0.35,4.94846E-8
0.4,6.86021E-8
0.45,9.34068E-8
0.5,1.36416E-7
0.55,2.18504E-7
0.6,4.51033E-7
0.65,1.2785E-6
0.7,4.57114E-6
0.75,1.70904E-5
0.8,5.62476E-5
0.85,1.45646E-4
0.9,2.93975E-4
0.95,4.91251E-4
1,7.21464E-4 ];
p0=[3 5 4 10 9 10 4];%%因为你这个函数很变态,初值选择不好得不到好结果,这个初值不错
warning off
p=nlinfit(x,zeros(size(x,1),1),F,p0);
disp('I1、I2、IL、Rs、Rsh、n1、n2分别为:');
disp(num2str(p));
plot(x(:,1),x(:,2),'ro');hold on;
ezplot(@(x,y)F(p,[x,y]),[0,1,-1e-3,1e-3]);
title('曲线拟合');legend('样本点','拟合曲线')
F=@(p,x)p(1)*exp((x(:,1)-x(:,2)*p(4))/0.026/p(6))+p(2)*exp((x(:,1)-x(:,2)*p(4))/0.026/p(7))+(x(:,1)-x(:,2)*p(4))/p(5)-p(1)-p(2)+p(3)-x(:,2);
x=[0,4.84827E-9
0.05,7.20861E-9
0.1,9.486E-9
0.15,1.33346E-8
0.2,1.85467E-8
0.25,2.54804E-8
0.3,3.57885E-8
0.35,4.94846E-8
0.4,6.86021E-8
0.45,9.34068E-8
0.5,1.36416E-7
0.55,2.18504E-7
0.6,4.51033E-7
0.65,1.2785E-6
0.7,4.57114E-6
0.75,1.70904E-5
0.8,5.62476E-5
0.85,1.45646E-4
0.9,2.93975E-4
0.95,4.91251E-4
1,7.21464E-4 ];
p0=[3 5 4 10 9 10 4];%%因为你这个函数很变态,初值选择不好得不到好结果,这个初值不错
warning off
p=nlinfit(x,zeros(size(x,1),1),F,p0);
disp('I1、I2、IL、Rs、Rsh、n1、n2分别为:');
disp(num2str(p));
plot(x(:,1),x(:,2),'ro');hold on;
ezplot(@(x,y)F(p,[x,y]),[0,1,-1e-3,1e-3]);
title('曲线拟合');legend('样本点','拟合曲线')
matlab用隐函数拟合的程序怎么编写
请matlab高手根据给出的数据编写一个拟合二元函数的程序
matlab用多项式函数拟合曲线,且使这个函数要过一定点(x0,y0),matlab中有现成的函数,还是需要编写程序,请
MATLAB拟合类似反比例函数的程序.
怎么用MATLAB拟合函数的系数
matlab函数作图在问下 曲线 上有以下点,请编写用曲线拟合求出其关系式的matlab程序,并画图分析拟合效果.x 5
编写MATLAB程序实现多项式拟合
matlab非线性数据拟合程序编写
用Matlab写拟合曲线的程序
曲线 上有以下点,请编写用曲线拟合求出其关系式的MATLAB程序,并画图分析拟合效果.
用matlab编写程序:生成一组[1,3]之间的均匀随机数,采用最小二乘法进行5次多项式拟合
怎么用matlab拟合函数,最好是三元的多项式