数学建模社区-数学中国

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

作者: 建不了的模。    时间: 2015-1-20 13:50
标题: Bernstein基构建函数数据MATLAB代码
%================Bernstein基构建函数数据(二维)==========================
6 X& e8 i8 j- C: Y# s- R/ ?- Z%
5 O- c5 ]1 _; b6 i/ v( f%see also http://www.matlabsky.com( X6 O$ Y+ V) z6 F/ E2 Z7 M
%1 W9 P; x$ u. y3 g7 M2 a
%===得到Bernsein基的次数================& \& U6 v$ M  p4 N
clear;: O8 [3 \: d* P; R1 D8 A  d0 D
X=load('data.txt');6 K* _# i9 ^# s4 P( r
%画出原图形的
0 M6 j- }' t9 x3 w; W$ pplot(X(:,1),X(:,2));0 o' L* m" U3 r: i2 m. m+ k- U* L
title('原始数据');( z* P# n  m0 ~1 F+ ~) `8 {
%数据参数化,将X(:,1)变换为[0,1]间数据,
/ x1 m- I0 S2 CminX=min(X(:,1));$ h1 o  c& g& O6 x# B: G, s& ?
maxX=max(X(:,1));1 V! u$ h0 c- p$ r$ Y6 g
paraX=0;
5 n& A+ ]% a& D1 W4 `/ v/ ^for i=1:length(X)% o$ f% V, @, K! c8 N1 h6 A3 l: o
    paraX(i)=(X(i,1)-minX)/(maxX-minX);
, t7 g- C, v" pend
, ^- T8 n1 N4 ?, Rm=input('请输入Bernsein基的次数m(即m+1阶):');
( x( |, u/ y% d. f# [b=OLS(X,paraX,m);
0 Y5 v' }0 x/ K$ L  zresidu=residual(X,m,paraX,b);  A0 }; b/ B6 f+ _- D
%循环得读取命令
4 s2 j4 w* N% H0 e7 X$ Z3 qwhile 1: A, `  [, i' R$ g7 D7 o* ~
    fprintf(' 1.设置基的阶数并拟合\n 2.图形显示原始数据\n 3.图形显示拟合结果\n ');* c/ L3 @% M- S6 \1 s' u
    fprintf('4.图形显示残差\n 5.图形显示残差比\n 6.图形显示与平均数残差比\n ');
  h$ [9 `- W+ L+ ?) k+ R8 Z9 N    fprintf('7.图形显示一阶导数\n 8.图形显示二阶导数\n ');
: D, Z2 Y7 D1 _, C) {* R    fprintf('9.读取其它数据文件,默认扩展名(.txt),默认文件名(data.txt).\n 输入其它整数退出\n ');! b% ]  v# W; t+ j
    cmd=input('请按照以上提示选择操作:');& `: u6 M2 Y! [; d! L5 m

, W, V! m% k% b( Q: s3 u    switch cmd
* n5 A* t" t4 y1 B- f        case 1
$ W7 _, R  x. D  P" g5 ?; E, H; w6 G! F) v! Z9 Z4 y# b. Y

. `2 i+ }9 N2 k( f, h' c0 o$ G( B4 r* z# R

作者: 宇仲    时间: 2015-1-20 14:28
楼主辛苦了,继续加油啊!
9 I( _  c3 X7 U5 Q, @




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