| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 451 人关注过本帖
标题:求高人指教:自己写的一个程序
只看楼主 加入收藏
feyl
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2007-4-13
收藏
 问题点数:0 回复次数:0 
求高人指教:自己写的一个程序

求高人指教:自己写的一个程序


这个是自己写的关于平均采样的程序,可总运行不出结果来,麻烦高人帮忙看一下,谢谢!!!

function aver_sampling( )
clear
global N m M fai caps_fai_str f_str f K COUNT
N=[-1 4];m=2;M=N(2)-N(1)+m;K=20;COUNT=8;
error_values=zeros(2,COUNT);
fai=inline(fai_str('x'));
caps_fai_maker();
f_maker();
for k=1:1:COUNT
[error_values(1,k) error_values(2,k)]=work(k);
end
error_values
%==============================================================

function caps_fai_maker()
global N m M caps_fai_str
caps_fai_str=cell(1,M);
for i=1:1:M
caps_fai_str{i}=fai_str(['x+' num2str(-N(1)+m-i+1)]);
end

%==============================================================

function f_maker()
global M caps_fai_str f_str f
c=zeros(1,M);
c(1)=5;c(2)=7;
f_str=[num2str(c(1)) '.*(' caps_fai_str{1} ')'];
for i=2:1:M
f_str=[f_str '+' num2str(c(i)) '.*(' caps_fai_str{i} ')'];
end
f=inline(f_str);

%==============================================================

function [delta e_value]=work(k)
global N m M fai caps_fai_str f_str f COUNT K
x=zeros(1,K+1);F=zeros(1,K);B=zeros(K,M);
delta_value=1/8+k.*(1/32);x(K+1)=N(2);
for i=1:1:K
x(i)=N(1)+(i-1).*(N(2)-N(1))/K;
str_u=u_str(['x+' num2str(-(x(i)+x(i+1))/2)],num2str(delta_value));
str_f_u=['(' f_str ').*(' str_u ')'];
f_u=inline(str_f_u);
F(i)=quad(f_u,x(i),x(i+1));
end
for i=1:1:K
for j=1:1:M
str_fai=fai_str(['x+' num2str((-N(1)+m+1-j))]);
str_u=u_str(['x+' num2str(-(x(i)+x(i+1))/2)],num2str(delta_value));
str_fai_u=['(' str_fai ').*(' str_u ')'];
fai_u=inline(str_fai_u);
B(i,j)=quad(fai_u,x(i),x(i+1));
end
end
B;
C=B*inv(B'*B);
A=F*B*inv(B'*B);
f_con_str=[num2str(A(1)) '.*(' caps_fai_str{1} ')'];
for i=2:1:M
f_con_str=[f_con_str '+' num2str(A(i)) '.*(' caps_fai_str{i} ')'];
end
f_con=inline(f_con_str);
error_str=['(' f_str ')-(' f_con_str ')' ];
error_f=inline(error_str);
square_error_str=['(' error_str ').*(' error_str ')'];
square_error_f=inline(square_error_str);
delta=delta_value;
e_value=quad(square_error_f,N(1),N(2));

%==============================================================

function str=u_str(tempx,delta_values)
str=['1./(' delta_values ').*(((' tempx ')>=-(' delta_values ')./2)&((' tempx ')<=(' delta_values ')./2))'];

%==============================================================

function str=fai_str(tempx)
str=['(1/2.*(' tempx ').^2-3.*(' tempx ')+9/2).*((' tempx ')>2&(' tempx...
')<=3)+(-(' tempx ').^2+3.*(' tempx ')-3/2).*((' tempx...
')>1&(' tempx ')<=2)+(1/2.*(' tempx ').^2).*((' tempx ')>=0&('...
tempx ')<=1)'];

%==============================================================

搜索更多相关主题的帖子: 高人 指教 
2007-04-24 16:44
快速回复:求高人指教:自己写的一个程序
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.029017 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved