matlab 复数函数拟合,matlab高手帮忙做个自定义复杂函数拟合,含有复数, - 计算模拟 - 小木虫 - 学术 科研 互动社区...
CODE:function delardata=xlsread('delar.xlsx');xdata=data(:,1);%Imydata=data(:,2);%x0=[100,250,6,0.5];%wp2,gama,T,Soptions= optimset('MaxFunEvals',5000,'Maxiter',1000);lb=[10,20,0,0];%ub=[10000...
CODE:
function delar
data=xlsread('delar.xlsx');
xdata=data(:,1); %Im
ydata=data(:,2); %
x0=[100,250,6,0.5]; %wp2,gama,T,S
options= optimset('MaxFunEvals',5000,'Maxiter',1000);
lb=[10,20,0,0];
%ub=[10000,10000,100,1000];
ub=[];
[x,resnorm]=lsqcurvefit(@myfun,x0,xdata,ydata,lb,ub,options)
y=myfun(x,xdata);
plot(xdata,ydata,'g',xdata,y,'r')
end
function F=myfun(x,xdata) %x=[]
wl=734;
wt=533;
e8=5.5;
C=0.48;
eq1=(wl^2-wt^2)./(wt^2-xdata.^2-1i*x(3)*xdata);
eq2=x(1)./(xdata.^2+1i*xdata*x(2));
epslong=e8*(1+eq1-eq2);
delta=x(1)*x(2)*((wt^2-xdata.^2).^2+(xdata*x(3)).^2) + xdata.^2*x(3)*(wl^2-wt^2).*(xdata.^2+x(2)^2);
eq3=2*C*wt^2* (x(1)*x(2)*(wt^2-xdata.^2) - xdata.^2*x(3).*(xdata.^2+x(2)^2-x(1))) ./delta;
eq4=C^2*(wt^4./delta) .*(x(1)*(x(2)*(wl^2-wt^2)+x(3)*(x(1)-2*xdata.^2)) +xdata.^2*x(3).*(xdata.^2+x(2)^2)) ./(wl^2-wt^2);
A=1+eq3+eq4;
F=x(4)*A.*imag(-1./epslong);
end
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐

所有评论(0)