Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2008-05-01
年龄: 37
帖子: 1
声望力: 0 ![]() |
![]()
我的程序如下:
wcdma = [1000,1626,3300,4000,5000,6100,12700,16000,23400]; wx = [4.75,5,5.75,6,6.16,6.5,7.5,7.92,8.4]; myfun = inline('A(2) / (1 + (A(2) / A(1) -1)* exp(A(3) * t ))','t','A'); A = nlinfit(wx,wcdma,myfun,[ 0 ,0 ,0 ]); a = A(1); b = A(2); c = A(3); 错误为: ??? Error using ==> nlinfit at 114 The inline model function generated the following error: Error using ==> inlineeval at 15 Error in inline expression ==> A(2) / (1 + (A(2) / A(1) -1)* exp(A(3) * t )) ??? Error using ==> mrdivide Matrix dimensions must agree. Error in ==> r6 at 6 A = nlinfit(wx,wcdma,myfun,[ 0 ,0 ,0 ]); 但我不知道错误的原因……求教啊! |
![]() |
![]() |
![]() |
#2 |
初级会员
注册日期: 2008-04-23
年龄: 48
帖子: 10
声望力: 18 ![]() |
![]()
还没有找到正确解
但是提出两点错误: 函数格式错误: 应该写成 myfun = inline('A(2) ./ (1 + (A(2) ./ A(1) -1)* exp(A(3) * t ))','A','t'); 拟核是处置肯定不能为零 否则除数为零了 不知道初值该怎么设 不同的设定结果差别很大 设定已有的大概范围的初值有很大意义 |
![]() |
![]() |
![]() |
#3 |
初级会员
注册日期: 2008-04-23
年龄: 48
帖子: 10
声望力: 18 ![]() |
![]()
[a b c]=solve('1000=b/(1+(b/a-1)*exp(c*4.75))','1626=b/(1+(b/a-1)*exp(c*5.5))','3300=b/(1+(b/a-1)*exp(c*6.6))')
先这样求出大概解为 a=45 b=149732 c=-0.6538 然后以这个为初值进行计算 |
![]() |
![]() |
![]() |
#4 |
高级会员
注册日期: 2007-06-24
年龄: 70
帖子: 188
声望力: 21 ![]() |
![]()
该组数据可用最简单的指数曲线wc=a*exp(b*wx)所描述。
SSwc = 4.6344e+008 [a b]=[52.9142739, .724979725] RSS =1317774.175 RMSe = 2.6355e+005 R^2 = .997157 |
![]() |
![]() |
![]() |
#5 |
初级会员
注册日期: 2008-05-03
年龄: 37
帖子: 11
声望力: 18 ![]() |
![]()
也来学习一下!:lol:
|
![]() |
![]() |
![]() |
|
|
![]() |
||||
主题 | 主题作者 | 版面 | 回复 | 最后发表 |
matlab 中反函数运算。 | zhanggongrui | MATLAB论坛 | 0 | 2008-04-29 00:03 |
BMP图像转换成时间序列 | zlnhappy | MATLAB论坛 | 0 | 2008-04-28 17:53 |
matlab编写板卡驱动 | emirlee | MATLAB论坛 | 2 | 2008-04-18 09:16 |
【求助】如何做FFT变换? | ceeshy | MATLAB论坛 | 1 | 2007-12-21 11:27 |