数学建模社区-数学中国
标题:
Bernstein基构建函数数据MATLAB代码
[打印本页]
作者:
建不了的模。
时间:
2015-1-20 13:50
标题:
Bernstein基构建函数数据MATLAB代码
%================Bernstein基构建函数数据(二维)==========================
6 k4 p4 ]' O& d( ^9 ~8 E
%
7 P. ?3 [; h/ j( h" `9 n* @" q4 x( D6 m
%see also
http://www.matlabsky.com
# s. j9 `, X$ _/ \' z. L* M
%
% g) F- `0 Z& |5 H+ m/ q
%===得到Bernsein基的次数================
" y, G; \: e) z* `
clear;
# h& Z4 V. m* ]) l# Q! a/ o
X=load('data.txt');
8 G) W- T6 d6 E. P4 Y! ]/ U. M
%画出原图形的
) J1 s: U/ U4 @3 n- S' }$ a* K( \
plot(X(:,1),X(:,2));
" T: ~6 n- a# [
title('原始数据');
: `; y! K2 z0 U9 D( _; v9 M
%数据参数化,将X(:,1)变换为[0,1]间数据,
1 S- L- K# H r5 V6 N
minX=min(X(:,1));
3 c! ^5 j6 m7 u( b! `; _9 o
maxX=max(X(:,1));
3 _" W6 J& N7 \
paraX=0;
; D7 c& w$ l4 v2 u# Y
for i=1:length(X)
) u' R/ F, ?' a: l* @
paraX(i)=(X(i,1)-minX)/(maxX-minX);
2 J% C4 p/ G! N% I5 _1 c$ w3 q5 ~$ I
end
3 n6 p) W4 q' n; E. f+ T
m=input('请输入Bernsein基的次数m(即m+1阶):');
( E$ {1 _8 {6 z* N! M; }
b=OLS(X,paraX,m);
7 K4 P3 V" }/ M1 R% ]
residu=residual(X,m,paraX,b);
: Q9 K6 e' P. \, P# U
%循环得读取命令
- ~' V9 @' q; V" b! h7 w% ]7 e
while 1
`1 _2 P4 s* ^8 W
fprintf(' 1.设置基的阶数并拟合\n 2.图形显示原始数据\n 3.图形显示拟合结果\n ');
0 r4 M8 B1 j8 S
fprintf('4.图形显示残差\n 5.图形显示残差比\n 6.图形显示与平均数残差比\n ');
+ u, [6 P5 N9 l9 Y! ^
fprintf('7.图形显示一阶导数\n 8.图形显示二阶导数\n ');
) h% @4 c( G9 t6 y
fprintf('9.读取其它数据文件,默认扩展名(.txt),默认文件名(data.txt).\n 输入其它整数退出\n ');
# {9 }: y5 I: c+ q7 O
cmd=input('请按照以上提示选择操作:');
3 }+ L2 ]. N0 y1 R; V5 b% K
+ Z" e, Q' M8 C3 u
switch cmd
3 _ J: H) H! K* m; m6 S; n) j8 e
case 1
) h1 N0 C w, p/ @. A
2 c h% J! ^3 k1 {$ r" ^) Q
6 N7 W, G9 M! m- D$ a6 c
# W3 V( n9 v6 I( _* ]
作者:
宇仲
时间:
2015-1-20 14:28
楼主辛苦了,继续加油啊!
' L3 P% I( U U( W7 c# t
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5