24小时热门版块排行榜    

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

2012200838

新虫 (正式写手)

[求助] sinx要做分母,怎么解决0点数值无穷大的问题

简单说我的模型就是F(θ)=sin*K(θ).0≤θ≤pi.
目的就是求出系数K,K是关于θ的函数,我计划用多项式拟合。但是在拟合前要用F(θ)除以sinθ.
这就面临在θ=0,pi及其附近时,得到无穷大结果的问题,用Matlab计算会出现函数十几个量级的错误。
现在有一个手段,就是在0和pi附近不处理,处理区间设为[0+Δ,pi-Δ].但即便这样,当Δ不同时,得到的曲线中间部分也不一样,很奇怪,得到的曲线结果也不尽人意,根本不能满足需要。比如图中,前后10个数据不要和前后各30个数据不要的图像,中间都不一样。
其实我这个拟合完全可以不要sinθ,但是导师一定要这个形式。
有没有其他更好的办法处理这个问题,怎么能把除的关系转换成乘的关系。
CODE:
Fx=load('Fxx.txt');  %Fxx.txt 在附件中
Fy=load('Fyy.txt');  %Fyy.txt 在附件中

n=length(Fx);
theta=zeros(n,1);
Ft=zeros(n,1);
Kt=zeros(n,1);
Ft_fit=zeros(n,1);

for k=1:n
    theta(k)=pi/n*k;
end
for k=1:n
    Ft(k)=-cos(theta(k))*Fx(k)+sin(theta(k))*Fy(k);
end
% Calculate Kt,Kr
ft=0.1;ap=3;
for k=1+30:n-30
    Kt(k)=Ft(k)/(ap*ft*sin(theta(k)));  
end
E=5;                                              %设定拟合次数
a=polyfit(theta,Kt,E);                            %拟合多项式
Kt_fit=polyval(a,theta);
for k=1+30:n-30
    Ft_fit(k)=ap*ft*sin(theta(k))*Kt_fit(k);      %Ft的拟合表达式
end

% 结果输出
%-------------------------------------------------------------------------%
figure
set(gcf,'color','w')
plot(theta,Fx,'k')           % Fx
hold on
plot(theta,Fy,'b')           % Fy
grid on
legend('Fx,Fy')
%-------------------------------------------------------------------------%
figure
set(gcf,'color','w')
plot(theta,Ft,'r')          % Ft
hold on
grid on
legend('Ft')
%-------------------------------------------------------------------------%
figure
set(gcf,'color','w')
hold on
plot(theta,Ft_fit,'g')      % Ft_fit
grid on
legend('Ft-fit')
% End
   

sinx要做分母,怎么解决0点数值无穷大的问题
前后三十各三十个数据舍弃


sinx要做分母,怎么解决0点数值无穷大的问题-1
前后三十各十个数据舍弃
回复此楼

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : Unnamed_QQ_Screenshot20141128172209.png
  • 2014-11-28 17:22:45, 5.92 K

» 猜你喜欢

生命就是一场旅行,不要错过了路边的风景!
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

2012200838

新虫 (正式写手)

图中题注有误。
第一个是:前后各三十个数据舍弃。
第二个是:前后各十个数据舍弃。

大神,救救我吧!
怎么半天没人鸟。。。。。
哭瞎在厕所。。。。。
sinx要做分母,怎么解决0点数值无穷大的问题-2
Unnamed QQ Screenshot20141128192548.png


sinx要做分母,怎么解决0点数值无穷大的问题-3
Unnamed QQ Screenshot20141128192556.png

生命就是一场旅行,不要错过了路边的风景!
4楼2014-11-28 19:28:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 6 个回答

2012200838

新虫 (正式写手)

上面Ft_fit是Ft的拟合曲线。附件就是这个图。
sinx要做分母,怎么解决0点数值无穷大的问题-4
Ft拟合前图像。

生命就是一场旅行,不要错过了路边的风景!
2楼2014-11-28 17:25:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

2012200838

新虫 (正式写手)

程序所需要的数据文件。

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : Fxx.txt
  • 2014-11-28 17:26:35, 9.83 K
  • 附件 2 : Fyy.txt
  • 2014-11-28 17:26:37, 9.83 K
生命就是一场旅行,不要错过了路边的风景!
3楼2014-11-28 17:27:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

一段木头

铜虫 (小有名气)

做分母时+eps,输入 help eps可以具体看

[ 发自手机版 http://muchong.com/3g ]
读过两年书,尘世中一个迷途小书童。
5楼2015-01-09 00:44:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见