数学建模社区-数学中国

标题: Bernstein基构建函数数据MATLAB代码 [打印本页]

作者: 建不了的模。    时间: 2015-1-20 13:50
标题: Bernstein基构建函数数据MATLAB代码
%================Bernstein基构建函数数据(二维)==========================
" R3 `) J, d) G3 F  }# E& ?  x$ o9 Y%( |  N- k" M6 M9 N: [' N
%see also http://www.matlabsky.com
4 Q) n5 P% H7 Z. E. T6 b3 n0 m%
# v/ ?6 d2 |) E$ T5 Y3 r4 j( c%===得到Bernsein基的次数================
3 N5 u  E9 k7 U5 m" Nclear;
, r, T/ l4 |4 H! T8 ]/ aX=load('data.txt');
0 |6 I! @9 W% T1 M: [2 |; F%画出原图形的
8 C5 H) O4 Q' x9 M# Jplot(X(:,1),X(:,2));
, o% J$ H1 ~* H' n) ^title('原始数据');
0 M: V1 T' c# D%数据参数化,将X(:,1)变换为[0,1]间数据,! `* ~: `! X+ r3 O+ }/ Q7 }
minX=min(X(:,1));( p. P. x$ g) H8 R" y
maxX=max(X(:,1));
, S2 Z5 ~  b2 z7 \4 ^paraX=0;, r4 C. P" u. W7 C( C: M; t
for i=1:length(X)% l$ j3 @7 D. D5 E4 M- E
    paraX(i)=(X(i,1)-minX)/(maxX-minX);: j" f+ g: q2 {
end
  `" q# ^+ h  n! n! S8 E; lm=input('请输入Bernsein基的次数m(即m+1阶):');# o/ t/ g/ L. V
b=OLS(X,paraX,m);& }7 G: L$ p" T
residu=residual(X,m,paraX,b);1 K* U% i9 C4 c2 ?* ]' T
%循环得读取命令2 A0 {2 h: K- y; c7 ~5 `! y; O
while 1
3 u! Y) i- v/ [6 T    fprintf(' 1.设置基的阶数并拟合\n 2.图形显示原始数据\n 3.图形显示拟合结果\n ');  b; r2 X- o. C# B
    fprintf('4.图形显示残差\n 5.图形显示残差比\n 6.图形显示与平均数残差比\n ');2 l" a0 z' T! U% x: Y; [" L1 E
    fprintf('7.图形显示一阶导数\n 8.图形显示二阶导数\n ');
, V. R/ S4 U  G" q+ q    fprintf('9.读取其它数据文件,默认扩展名(.txt),默认文件名(data.txt).\n 输入其它整数退出\n ');
: C, h1 b1 t; H/ S8 C8 F3 ~    cmd=input('请按照以上提示选择操作:');
* y1 Z+ h# J. r+ }7 Q4 F5 S
7 A/ O- u: F  f. A4 V    switch cmd+ M7 D  \. U1 z9 k# H* h
        case 1
7 [( P( m# v1 f3 _0 K  u* a1 T( H& P" q; }& G6 p; j! l' w
+ B; c) H4 ]+ Q* B3 r7 X$ I# W8 d' c

' p$ l5 }% F# {; k
作者: 宇仲    时间: 2015-1-20 14:28
楼主辛苦了,继续加油啊!
% F' y2 r  \2 M- D- ]




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5