matlab隐函数拟合,matlab用隐函数拟合的程序肿么编写

把数据给出来,我有办法。

等式右侧可以看成双自变量x(1)=x,x(2)=y,这样就成了多变量拟合了。

【补充】初始值不好确定,但方法就是这样的:

clc; clear

A=[...

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];

format short g

x=A(:,1);y=A(:,2);

X=[x,y];

%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=a(1),Rs=a(2),n1=a(3),I2=a(4),n2=a(5),Rsh=a(6),IL=a(7)

fun=inline('a(1)*exp((x(:,1)-x(:,2)*a(2))/0.026/a(3))+a(4)*exp((x(:,1)-x(:,2)*a(2))/0.026/a(5))+(x(:,1)-x(:,2)*a(2))/a(6)-a(1)-a(4)+a(7)','a','x')

a=nlinfit(X,y,fun,[ 1 1 1 1 1 1 1])

%{

figure(1)

plot(x,y)

figure(2)

semilogy(x,y)

figure(3)

loglog(x,y)

%}

取消

评论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值