试验测试得到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('样本点','拟合曲线')
matlab用隐函数拟合的程序怎么编写
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.3334...
matlab ezplot 隐函数作图问题
1、Z0,K没有声明变量,应加 syms Z0 K 2、 f=@(K,Z0)equ1;这句是多余的,可以改为 ezplot(equ1);执行结果如下图
使用matlab进行隐函数求解
题主给出的隐函数求解问题,一般可以用solve函数,得到y(x)或x(y)形式的解,实现思路:clc,close all a=1;b=1;syms x y x=solve(y==1\/a*(10*b*x)^0.6*(a+2*y)^0.4,x)绘图 y=0:20:1180;x =eval(x);plot(x,y,'k-')xlabel('x');ylabel(&...
求解关于matlab求解隐函数非线性方程组,并绘制曲线的问题,求具体代码...
用matlab是可以解的。不过你现在的问题好像没有说清楚。前面两个方程跟后面似乎完全无关。我先把它解出来吧:>> syms x y t >> eq1='5+10*cos(5*t)-x*cos(y)=0'>> eq2='10*sin(5*t)-x*sin(y)=0'>> [x y]=solve(eq1,eq2)x = 5*(5+4*cos(5*t))^(1\/2)-5*(5+...
含积分的复杂隐函数用matlab求解或作图
1、已知z=[。。。],x=[。。。];2、自定义函数,内容要包含y隐函数的数值积分方法和z的表达式;3、初定a、b、c的初值 4、nlinfit或lsqcurvefit等拟合函数,求出a、b、c的系数值 5、然后计算其拟合决定系数R²是否接近于1。如R²≈1,则计算结束。6、最后,用plot绘出,z-x的...
matlab隐函数求解
用matlab求隐函数解,一般只能通过循环语句和vpasolve求出x与y的相应值,然后用plot绘出图形。代码:
matlab 自定义隐函数进行非线性拟合
通过拟合,给出的拟合函数有点不靠谱。当a,b为如下值时,其相关系数为R² = 0.6753(拟合精度)。a = 0.0000000000000000000099999999999999994515327145421,b = 0.00000000010000000000000000364321973155
已经一组自变量X 如何用matlab计算隐函数的值并作图
ezplot('sin((x-y)*pi\/180)-0.5*sin(x*pi\/180)*sin(y*pi\/180)=0',[-40,30])(2)在定义域内将x 10等分 求出10个相应的函数值Y i=0;for x=-40:10:30 i=i+1,x s=vpa(solve(sin((x-y)*pi\/180)-0.5*sin(x*pi\/180)*sin(y*pi\/180)));real(s)end i = 1 x...
Matlab 隐函数参数方程组 画图
两个都方程变形下,消除参数t,得到一个方程:x*((x*y+5)*(x-y)+2)-y*(1+y^2)*(x-y)=0,然后用ezplot绘图就可以了。一条命令就可以搞定的,如下:ezplot('x*((x*y+5)*(x-y)+2)-y*(1+y^2)*(x-y)')
matlab 隐函数求解以及绘图
用matlab求解 隐函数以及其绘图。可以这样处理。1、用fsolve函数求解,当x为某值时,对应的y值。2、用if条件语句判断,计算得到的y值是否在0<y<1之间。3、如是,用plot函数绘制x—y的曲线图4、如不是,则将不符合0<y<1范围之内的y值剔除,用plot函数绘制x—y的曲线图5、将y值代入 z=2*y+...