数学建模笔记1

matlab学习demo

插值

一维插值

y1=interp1(x,y,x1,'method') %注意要加引号
参数
‘linear’ 线性插值
‘spline’ 三次样条插值
‘cubic’ 立方插值
缺省 线性插值

x要为单调的,x1为要插值的位置

高维插值

N维插值函数interpN(),其中N可以为2,3,…
如N=2时

zi=interp2(x,y,z,xi,yi,'method')

此时xi,yi是矩阵
要求xi,yi是单调的网格,默认是线性插值

y=5:10:85; x=1:12;
z=[2.4, 1.6, 2.4, 3.2, 1.0, 0.5, 0.4, 0.2, 0.5, 0.8, 2.4, 3.6;……, 0.3,
0, 0, 0.3, 0, 0, 0.1, 0.2, 0.3, 0, 0.1, 0.3]
[xi,yi]=meshgrid(1:0.1:12,5:85); %生成网格
zi=interp2(x, y, z, xi, yi,);  
mesh(xi, yi, zi)
xlabel(‘月份’)
ylabel(‘纬度’)
zlabel(‘气旋’)
axis([0 12 0 90 0 50])
title(‘南半球气旋可视化图形’)

画图

plot(x,y,'o',x2,y2) %参数x2,y2为用曲线连接点 
%将x,y在途中用'o'符号画出来
hold on %利用该命令继续画
plot(x2,y2)

拟合

线性拟合

多项式函数拟合:

a=polyfit(xdata,ydata,n)

其中n表示多项式的最高阶数,xdata,ydata为将要拟合的数据,它是用数组的方式输入.输出参数a为拟合多项式$y=a_1x^n+…+a_nx+a_{n+1} $的系数$a=$ [ $a_1,…,a_n,a_{n+1}$ ],特别注意下标
多项式在x处的值y可用 y=polyval(a,x) 计算.

非线性拟合

命令:lsqcurvefit、lsqnonlin
(1)lsqcurvefit:
c = lsqcurvefit ( ′fun′, x0, xdata, ydata)
其中‘fun’为拟合函数的M - 函数文件名, x0为初始向量, 也即拟合解是靠迭代求解得到的,初始值的选取好坏直接影响最终的求解。xdata, ydata为参与曲线拟合的实验数据。函数返回值c为非线性函数‘fun’的拟合系数。