1. 程式人生 > 其它 >【數學建模】基於matlab GUI最小二乘法曲線擬合【含Matlab原始碼 492期】

【數學建模】基於matlab GUI最小二乘法曲線擬合【含Matlab原始碼 492期】

一、簡介

最小化二乘法是一種數學優化技術,是一種最簡單的優化問題。
1 原理


2 方法


3 例項

二、原始碼

clf;
set(gcf,'Unit','normalized','Position',[0.2,0.3,0.60,0.45]);
set(gcf,'Menubar','none','Name','最小二乘法曲線擬合','NumberTitle','off');
axes('Position',[0.05,0.1,0.55,0.85]);
uicontrol(gcf,'Style','text', 'Unit','normalized',...
       'Posi',[0.63,0.875,0.15,0.05],'String',...
       '輸入x向量:','FontSize',11,'Horizontal','center','BackgroundColor',[0.8 0.8 0.8]);
hedit1=uicontrol(gcf,'Style','edit','Unit','normalized',...
'Posi',[0.63,0.8,0.35,0.075],'Max',1);   
uicontrol(gcf,'Style','text', 'Unit','normalized',...
       'Posi',[0.63,0.7,0.15,0.05],'String',...
       '輸入y向量:','FontSize',11,'Horizontal','center','BackgroundColor',[0.8 0.8 0.8]);
hedit2=uicontrol(gcf,'Style','edit','Unit','normalized',...
       'Posi',[0.63,0.625,0.35,0.075],'Max',1);  
uicontrol(gcf,'Style','text', 'Unit','normalized',...
       'Posi',[0.63,0.525,0.15,0.05],'String',...
       '輸入xi向量:','FontSize',11,'Horizontal','center','BackgroundColor',[0.8 0.8 0.8]);
hedit3=uicontrol(gcf,'Style','edit','Unit','normalized',...
       'Posi',[0.63,0.45,0.35,0.075],'Max',1);  
hpush1=uicontrol(gcf,'Style','push','Unit','normalized',...
       'Posi',[0.63,0.3,0.25,0.1],'String',...
       '繪製原始資料曲線','FontSize',11,'Call',...
       'x=str2num(get(hedit1,''String''));y=str2num(get(hedit2,''String''));plot(x,y,'':o'');');
hpush2=uicontrol(gcf,'Style','push','Unit','normalized',...
       'Posi',[0.63,0.175,0.2,0.1],'String',...
       '繪製擬合曲線','FontSize',11,'Call',...
       'hold on;x=str2num(get(hedit1,''String''));y=str2num(get(hedit2,''String''));xi=str2num(get(hedit3,''String''));p=polyfit(x,y,2);yi=polyval(p,xi);plot(xi,yi,''r-*'');hold off');
hpush3=uicontrol(gcf,'Style','push','Unit','normalized',...

三、執行結果

四、備註

版本:2014a
完整程式碼或代寫加1564658423