matlab最小二乘法,一元,二元,散点插值函数模板总结

%----------------------------------------------------------
%参数拟合
%非线性最小二乘法拟合
% xdata = [3.6,7.7,9.3,4.1,8.6,2.8,1.3,7.9,10.0,5.4];
% ydata = [16,150.5,260.1,22.5,206.5,9.9,2.7,165.5,325.0,54.5];
% c0=[ 0 0 0];
% f_h=@(c, x) c(1)*x.^2 + c(2)*x.*sin(x) + c(3)*x.^3;
% [c, resnorm, r]=lsqcurvefit(f_h, c0,xdata,ydata);
%fittype曲线拟合
% clear; clc;
% x=[0,0.4,1.2,2,2.8,3.6,4.4,5.2,6,7.2,8,9.2,10.4,11.6,12.4,13.6,14.4,15]';%加转秩
% y=[1,0.85,0.29,-0.27,-0.53,-0.4,-0.12,0.17,0.28,0.15,-0.03,-0.15,-0.07,0.059,0.08,0.032,-0.015,-0.02]';%加转秩
% ft=fittype('a*cos(k*x)*exp(w*x)', 'independent','x');
% fo=fit(x, y, ft);
% xx=0:0.1:20;
% yy=fo(xx);
% plot(x, y, 'r*', xx, yy, 'b-');
%------------------------------------------------------------
%插值拟合
%y=interp1(x0,y0,x,’method’)
%Method 的选项有 ‘nearest’, ‘next’, ‘previous’, ‘linear’,‘spline’,‘pchip’, 和 'cubic'. 
%缺省的机器设置为'linear'.
% x=[0,3,5,7,9,11,12,13,14,15];
%  y=[0,1.2,1.65,2.1,2.15,2.0,1.85,1.65,1.55,1.25];
%  xi=0:0.1:15;
%  yi=interp1(x,y,xi,'spline');
%  yi1=interp1(x,y,xi,'linear');
%  yi2=interp1(x,y,xi,'cubic');
%  plot(x,y,'*',xi,yi,'r-',xi,yi1,'b-',xi,yi2,'g-');
%  legend('节点','三次样条插值','线性插值','立方插值')
 
%二元函数插值
% 1. 网格节点数据插值函数:interp2
% 格式:z=interp2(x0, y0, z0, x, y, ’method’)
% x0,y0,z0:插值节点坐标,要求x0, y0单调;
% x, y是被插值点的横坐标与纵坐标( x, y不能超过x0,y0的范围),z是被插值点的函数值。  
% Method:(1)nearest 最邻近插值
%                  (2)linear  双线性插值
%                  (3)cubic双三次插值
% 默认为双线性插值。 
 
%离散点插值针对坐标点不单调的情况
% 散点数据插值函数:griddata
% 已知n个插值节点(xi, yi, zi), (i=1,2,…,n), 求在点(x,y)处的插值z, 
% matlab提供函数griddata。
% 格式:cz=griddata(x,y,z,cx,cy,’method’)
% 其中x,y,z 均为n 维向量,指明所给数据点(插值节点)的横坐标、纵坐标和竖坐标。 cx, cy是给定被插值点的横坐标和纵坐标,cz为相应点的竖坐标。 
% 若cx,cy是向量,则给定以它们所确定网格点的横坐标和纵坐标,这时要求cx,cy一个为行向量一个为列向量。
% 编程时也可先用meshgrid将cx,cy定义成网格矩阵。

%  clear ,clc
%  x=[129,140,103.5,88,185.5,195,105,157.5,107.5,77,81,162,162,117.5]; 
%  y=[7.5,141.5,23,147,22.5,137.5,85.5,-6.5,-81,3,56.5,-66.5,84,-33.5];
%  z=-[4,8,6,8,6,8,8,9,9,8,8,9,4,9];
%  [x1,y1]=meshgrid(75:5:200,-50:5:150); 
%  z1=griddata(x,y,z,x1,y1,'v4');
%  surf(x1,y1,z1)
%  figure(2)
%  [c,h]=contourf(x1,y1,z1);
%  clabel(c,h)
 

有一部分为测试用例,仅供演示

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值