24小时热门版块排行榜    

查看: 2450  |  回复: 5
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

星尘2516

木虫 (小有名气)

[求助] Matlab非线性拟合(y=sqrt(1-(x-a).^2))

x=-5:0.01:5;
y=sqrt(1-(x).^2);
plot(x,y,'bo','Markersize',5);
x=x';y=y';

s=fitoptions('Method','NonlinearLeastSquares','StartPoint',[20 0 0.8]);
f=fittype('abs(a0.*(1-(x-a1).^2).^0.5+a2)','options',s);
cfun=fit(x,y,f);
yf=abs(cfun.a0.*(1-(x-cfun.a1).^2).^0.5+cfun.a2);
hold on;
plot(x,yf,'r','LineWidth',2);
以上是我的程序,我打算对y=a*sqrt(1-(x-b).^2)+c,这个类型的函数进行拟合,但是总是不能完成。我用上面的程序拟合高斯、洛伦兹等函数就可以

[ Last edited by 星尘2516 on 2013-5-22 at 22:12 ]
回复此楼

» 收录本帖的淘帖专辑推荐

matlab学习

» 猜你喜欢

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

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

星尘2516

木虫 (小有名气)

引用回帖:
4楼: Originally posted by dingd at 2013-05-23 09:26:39
加个“abs()”试试。

不行的,还是不能拟合
5楼2013-05-24 11:07:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 6 个回答

dingd

铁杆木虫 (职业作家)

【答案】应助回帖

感谢参与,应助指数 +1
是否是公式中“1-(x-b).^2”可能小于0而导致开方出错?
2楼2013-05-23 08:44:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

星尘2516

木虫 (小有名气)

引用回帖:
2楼: Originally posted by dingd at 2013-05-23 08:44:51
是否是公式中“1-(x-b).^2”可能小于0而导致开方出错?

有可能,不知道是不是由于二次根号的存在,我试着用cftool也不行
3楼2013-05-23 09:06:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dingd

铁杆木虫 (职业作家)

【答案】应助回帖

加个“abs()”试试。
4楼2013-05-23 09:26:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见