数学建模社区-数学中国
标题:
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$ p
plot(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 C
minX=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" p
end
, ^- T8 n1 N4 ?, R
m=input('请输入Bernsein基的次数m(即m+1阶):');
( x( |, u/ y% d. f# [
b=OLS(X,paraX,m);
0 Y5 v' }0 x/ K$ L z
residu=residual(X,m,paraX,b);
A0 }; b/ B6 f+ _- D
%循环得读取命令
4 s2 j4 w* N% H0 e7 X$ Z3 q
while 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