matlab如何给分式加限制条件,数据拟合加限定条件

在MATLAB中使用lsqcurvefit对阻抗模型进行数据拟合时,遇到拟合结果a(1)~a(6)为复数而非正实数的问题。博主分享了拟合公式及代码,并询问如何在拟合过程中加入限制条件确保a(1)~a(6)为正实数。
摘要由CSDN通过智能技术生成

本帖最后由 dabinlee 于 2018-1-8 22:41 编辑

本人用lsqcurvefit对阻抗模型进行数据拟合,拟合公式Z=a(1)+(2000.*pi.*xdata).*a(2).*1i+(((((((a(5).^(-1))+(((2000.*pi.*xdata).*a(6).*1i).^(-1))).^(-1))+(2000.*pi.*xdata).*a(4).*1i).^(-1))+(a(3).^(-1))).^(-1)),其中xdata为自变量,Z为因变量。a(1)~a(6)应均为正实数,但拟合出来的结果a(1)~a(6)都为复数。恳请问一下如何加限制条件?或者事先定义a(1)~a(6)为正实数?十分感谢!

代码如下

%输入选定频率值xdata/kHz

xdata=[0.02 1 2 3 4 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100];

wL=[0.021296228

0.825987526

1.635136116

2.428765239

3.201157196

3.947096943

7.27215855

10.04304322

12.51484828

14.85659141

17.14744073

19.41818386

21.67950221

23.93705066

26.18831591

28.43047055

30.66445705

32.89310284

35.10666899

37.31269531

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值