zwz_good 发表于 2008-11-29 23:23

求助 指数函数的拟合

我是初学者,如何拟合y=(1/a)^x + b??对于高手应该不难吧。

ch_j1985 发表于 2008-11-29 23:51

回复 楼主 zwz_good 的帖子

参考此帖:
http://forum.vibunion.com/forum/vi ... hlight=%C4%E2%BA%CF
LZ还可以使用论坛搜索

zwz_good 发表于 2008-11-30 00:15

谢谢楼上的,我再看看

zwz_good 发表于 2008-11-30 00:20

烦请ch_j1985 给我写一点呀,搜索到的都是自然指数,可我是要求的不是自然指数,还是搞不懂,麻烦你了。

科技在线 发表于 2008-11-30 07:38

1stOpt命令,你自己help一下

friendchj 发表于 2008-11-30 11:02

自己结合help写的一个程序:
% fitmyfun.m
clc
clear
xdata=(0:0.1:1)';
ydata=(0.6).^xdata+2;
% Creat own fun
f=fittype('a.^x+b');
% fit
cfun=fit(xdata,ydata,f,'Startpoint',)
运行结果:
cfun =

   General model:
       cfun(x) = a.^x+b
   Coefficients (with 95% confidence bounds):
       a =         0.6(0.6, 0.6)
       b =         2(2, 2)

zwz_good 发表于 2008-11-30 16:55

感谢几位朋友的帮忙,我再看看,谢谢。

zwz_good 发表于 2008-12-4 14:04

我现在需要具体拟合的公式为[(1/a) ^ (k1*x) + (1/b) ^ (k2 * y) + c] * xy = z
我根据friendchj朋友提供的帮助我写了
f=fittype('(a.^(k1.*x)+b.^(k2.*y)+c).*x.*y','coefficients',{'a','b','c','k1','k2'},'independent',{'x','y'})
出错
??? Error using ==> fittype.fittype at 333
Independent variable xy does not appear in the equation expression.

zwz_good 发表于 2008-12-4 14:05

其实就是怎样定义多个自变量的问题。

zwz_good 发表于 2008-12-5 08:43

请各位高手不惜赐教,谢谢了。

zwz_good 发表于 2008-12-5 08:53

以下是数据
X                   Y                     Z
1        1        0.0450
1        4        0.0600
1        8        0.0960
1        12        0.1080
8        1        0.0720
8        4        0.2400
8        8        0.3840
8        12        0.4320
50        1        0.1275
50        4        0.4500
50        8        0.7200
50        12        0.9450
100        1        0.1575
100        4        0.5880
100        8        1.1400
100        12        1.6200
200        1        0.2640
200        4        1.0320
200        8        2.0400
200        12        3.0240
500        1        0.6000
500        4        2.3700
500        8        4.6800
500        12        6.8400
800        1        0.9000
800        4        3.6000
800        8        7.2000
800        12        10.0800

zwz_good 发表于 2008-12-5 10:05

我要求出五个系数'a','b','c','k1','k2'

zwz_good 发表于 2008-12-5 11:39

现在整理问题如下:
需要拟合的公式如下
[(1/a) ^ (k1*x) + (1/b) ^ (k2 * y) + c] * xy = z
原始数据为
以下是数据
X                   Y                     Z
1      1      0.0450
1      4      0.0600
1      8      0.0960
1      12      0.1080
8      1      0.0720
8      4      0.2400
8      8      0.3840
8      12      0.4320
50      1      0.1275
50      4      0.4500
50      8      0.7200
50      12      0.9450
100      1      0.1575
100      4      0.5880
100      8      1.1400
100      12      1.6200
200      1      0.2640
200      4      1.0320
200      8      2.0400
200      12      3.0240
500      1      0.6000
500      4      2.3700
500      8      4.6800
500      12      6.8400
800      1      0.9000
800      4      3.6000
800      8      7.2000
800      12      10.0800

要求出五个系数'a','b','c','k1','k2'

zwz_good 发表于 2008-12-5 11:40

x y 是自变量
z是因变量

科技在线 发表于 2008-12-5 12:30

例子
电流(设为X)
0.490667 0.955333 1.544 1.940667 2.48 3.026667 3.966667 4.453333 5.073333 6.033333 7.04
电压(设为Y)
253.3333 381 450 503.6667 532 520 489 481.3333 459 438.3333 422
用V=A(1)*exp(A(2)*I)+A(3)*exp(A(4)*I)模型
clear;
X=
Y=
myfun=inline('A(1)*exp(A(2)*x)+A(3)*exp(A(4)*x)','A','x')
A = nlinfit(X,Y,myfun,)
I=min(X):0.1:max(X);
V=A(1)*exp(A(2)*I)+A(3)*exp(A(4)*I);
plot(X,Y,'o',I,V)

结果:
A =

668.9571 -0.0688 -656.7991 -1.0321
页: [1] 2
查看完整版本: 求助 指数函数的拟合