MATLAB 程式设计进阶篇曲线拟合与回归分析课件.ppt

MATLAB 程式设计进阶篇曲线拟合与回归分析课件.ppt

  1. 1、本文档共48页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 欲求出 的最小值,我們可使用 fminsearch 指令 範例10-9: nonlinearFit01.m 使用fminsearch的範例(2/3) load data.txt theta0 = [0 0 0 0]; tic theta = fminsearch(@errorMeasure1, theta0, [], data); fprintf(計算時間 = %g\n, toc); x = data(:, 1); y = data(:, 2); y2 = theta(1)*exp(theta(3)*x)+theta(2)*exp(theta(4)*x); plot(x, y, ro, x, y2, b-); legend(Sample data, Regression curve); fprintf(誤差平方和 = %d\n, sum((y-y2).^2)); 上圖的曲線為 fminsearch 指令產生的迴歸曲線。 fminsearch 指令是一個使用 Simplex 下坡式搜尋法(Downhill Simplex Search)的最佳化方法,用來找出 errorMeasure1 的極小值,並傳回 theta 的最佳值。 使用fminsearch的範例(3/3) 計算時間 = 0.03 誤差平方和 = 5.337871e-001 改良方向 上述方法把所有參數全部視為非線性參數。混成法將線性與非線性參數分開,各用不同的方法來處理。 上例數學模型為 、 線性參數:最小平方法,即「左除」或「\」 λ1、λ2 非線性參數: Simplex 下坡式搜尋(即 fminsearch) 混成法的優點 最小平方法能夠在非線性參數固定的情況下,一次找到最好的線性參數的值,因為搜尋空間的維度由4降為2,最佳化會更有效率 上述範例的改良 使用上述混成(Hybrid)的方法,函式 errorMeasure1 須改寫成 errorMeasure2 範例10-10: errorMeasure2.m lambda 是非線性參數向量, data 仍是觀察到的資料點,a 是利用最小平方法算出的最佳線性參數向量,傳回的 squareError 仍是總平方誤差 混成法範例(1/3) function squaredError = errorMeasure2(lambda, data) x = data(:,1); y = data(:,2); A = [exp(lambda(1)*x) exp(lambda(2)*x)]; a = A\y; y2 = a(1)*exp(lambda(1)*x)+a(2)*exp(lambda(2)*x); squaredError = sum((y-y2).^2); 欲用此混成法求出誤差平方和的最小值 範例10-11: nonlinearFit02.m 混成法範例(2/3) load data.txt lambda0 = [0 0]; tic lambda = fminsearch(@errorMeasure2, lambda0, [], data); fprintf(計算時間 = %g\n, toc); x = data(:, 1); y = data(:, 2); A = [exp(lambda(1)*x) exp(lambda(2)*x)]; a = A\y; y2 = A*a; plot(x, y, ro, x, y2, b-); legend(Sample data, Regression curve); fprintf(誤差平方和 = %d\n, sum((y-y2).^2)); 此種混成法可以產生較低的誤差平方和,同時所需的計算時間也比較短。 混成法範例(3/3) 計算時間 = 0.02 誤差平方和 = 1.477226e-001 我們亦可利用變形法(Transformation),將一數學模型轉換成只包含線性參數的模型。 假設一模型為: 取自然對數,可得: ln(a) 及 b 成為線性參數,我們即可用「最小平方法」找出其最佳值 範例10-12: transformFit01.m 變形法 load data2.txt x = data2(:, 1); % 已知資料點的 x 座標 y = data2(:, 2); % 已知資料點的 y 座標 A = [ones(size(x)) x]; a = 4.3282 b =-1.8235 誤差平方和 = 8.744185e-001 變形法範例(1/2) theta

文档评论(0)

shenlan2 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档