声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2395|回复: 2

[综合讨论] 如何用matlab进行复数拟合?

[复制链接]
发表于 2009-10-5 22:59 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
公式中部分参数也为复数,应变量为复数,请问如何利用matlab拟合
回复
分享到:

使用道具 举报

发表于 2009-10-6 00:03 | 显示全部楼层

回复 楼主 pjh 的帖子

可否具体些?
发表于 2012-8-31 18:29 | 显示全部楼层
我也遇到了这个问题,结果出来的拟合参数是复数,我把程序写下,ChaChing帮我看下吧
  1. y1=SM;
  2. w=fr;
  3. x1=[];
  4. initialCondition1=[1;1;1;1;1;1];
  5. [x1,resnorm1,residual1]=lsqcurvefit(@FD,initialCondition1,w,y1);
  6. vpa(x1,7);
  7. options=optimset('lsqcurvefit');
  8. options.MaxFunEvals = 10000000000000;
  9. lb=[0 0 0 0 0 0];
  10. ub=[0.1 5000 400 10000 10000 10000]
  11. [x11,resnorm11,residual11]=lsqcurvefit(@FD,initialCondition1,w,y1,lb,ub,options);
  12. vpa(resnorm11,9);
  13. vpa(x11,7);
  14. y11=real(FD(real(x11),w));
  15. loglog(w,y1,'*');hold on;
  16. loglog(w,y11,'-');
复制代码
用到的方程
  1. function output = FD( x,fr )
  2. %UNTITLED Summary of this function goes here
  3. %   Detailed explanation goes here
  4. output=x(1)+x(2)./(1+x(5).*(fr*i./x(3)).^(-x(6))+(fr*i./x(3)).^(-x(4)));

  5. end
复制代码
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-1 17:15 , Processed in 0.056776 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表