24小时热门版块排行榜    

查看: 533  |  回复: 3

阿德

金虫 (正式写手)

[求助] 拟合的matlab程序,帮忙看看有什么问题,运行出错已有1人参与

大家帮我看看我的这个matlab程序有什么问题没有?
我是做拟合,I1,Q1为数据点,Ip为关于q的函数
clc
clear all;
syms q fai beita d N det_p det_pu;
Q1=[0.0253
0.026
0.0267
0.0275
0.0286
0.0298
0.0311
0.0326
0.0346
0.0364
0.0395
0.0423
0.0457
0.0472
0.0492
0.052
0.0538
0.0554
0.0571
0.0577
0.0606
0.0633
0.0645
0.0649
0.0658
0.0671
0.0685
0.07
0.0715
];

I1=[0.0275
0.0263
0.025
0.0238
0.0226
0.0215
0.0203
0.019
0.018
0.0169
0.0159
0.0151
0.0152
0.0153
0.0163
0.017
0.018
0.0191
0.0199
0.0201
0.0197
0.019
0.0183
0.0179
0.0171
0.016
0.0148
0.0137
0.0126
];

Ip=ones(1,200);%预先分配空间
q=(0.02:0.001:0.08);
        
deta_c=fai*beita*d;
deta_a=(1-fai)*beita*d;
xc=fai*d;
xa=(1-fai)*d;
Fc=exp(-1i.*xc.*q).*exp(-0.5*deta_c^2.*q.^2);%对fc的傅里叶变换的结果fc=(1/(2*pi*deta_c^2))*exp(-((x-xc)^2/(2*deta_c^2)))
Fa=exp(-1i.*xa.*q).*exp(-0.5*deta_a^2.*q.^2); %对fa进行傅里叶变换的结果fa=(1/(2*pi*deta_a^2))*exp(-((x-xa)^2/(2*deta_a^2)))



   
  R1=(2*det_p^2./(q.^2)).*real(((1-Fc).*(1-Fa))./(1-Fc.*Fa)+(1/N).*Fa.*((1-Fc).^2./(1-Fa.*Fc).^2).*(1-(Fa.*Fc).^N));
  R2=(2*det_p^2)./(q.^2*N).*real((det_pu^2)/(det_p^2).*(1-(Fc.*Fa).^N)-(det_pu/det_p).*((1+Fa).*((1-Fc)./(1-Fc.*Fa).*(1-(Fc.*Fa).^N))));  
   
  Ip=(R1+R2)./(4*pi*q.^2*50000);;


plot(q,Ip,'-r',Q1,I1,':b')
xlim([0 0.1])
ylim([0.01,0.05])
grid
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

阿德

金虫 (正式写手)

没有人么?自己顶下,求帮忙啊
2楼2014-01-06 03:41:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ju5200

木虫 (正式写手)

【答案】应助回帖

感谢参与,应助指数 +1
我把代码运行了一下 问题太多
首先代码写的效率不高
其次syms太多了
最后你要做的图变量还是syms  怎么会画出来呢
调整一下思路 重新写下代码
3楼2014-01-06 16:38:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

阿德

金虫 (正式写手)

引用回帖:
3楼: Originally posted by ju5200 at 2014-01-06 16:38:10
我把代码运行了一下 问题太多
首先代码写的效率不高
其次syms太多了
最后你要做的图变量还是syms  怎么会画出来呢
调整一下思路 重新写下代码

可以将N设为16,det-p设为1,还剩四个参数
我只是想用我的自定义2函数去拟合,是不是用lsqcurvefit?我不太会用啊

[ 发自小木虫客户端 ]
4楼2014-01-07 09:10:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 阿德 的主题更新
信息提示
请填处理意见