MATLAB代做  | MATLAB代寫  | MATLAB有償編程
首 頁
當前位置:MATLAB代做|MATLAB代寫|MATLAB有償編程matlab源碼算法設計
太陽黑子數據模擬分析程序源碼        [↓跳到下載地址]
官方主頁:源碼共享網站:www.kggbzb.tw

聯系方式:客服QQ:1747812398 買代碼源碼軟件站,歡迎咨詢

運行環境:Win9X/2000/XP/2003/

源碼語言:簡體中文

源碼類型:源碼程序 - 算法設計

推薦星級:

更新時間:2018-04-29 19:24:21

源碼簡介

clc; clear; close all; warning off; load Sunspot.txt %YEAR MON SSN DEV %畫出導入的活動數據 YEAR = Sunspot(:,1); MON = Sunspot(:,2); SSN = Sunspot(:,3); %sun spot number DEV = Sunspot(:,4); %標準偏差表 figure; subplot(211);plot(SSN,'b.'); title('SSN'); subplot(212);plot(DEV,'b.'); title('DEV'); addpath 'funcs\' %步驟1,Identify a reasonable frequency, f. %步驟1,Identify a reasonable frequency, f. %步驟1,Identify a reasonable frequency, f. %由于早期的數據不精確,可以選擇后期的數據作為計算頻率的數據 K = 20;%前22年數據去除 Start = 12*K+1; mainPeriod = func_cycle_cal(SSN(Start:end)); disp('太陽黑子的活動周期為(單位年):'); mainPeriod %步驟2,Compute X1 = cos(2πft) and X2 = sin(2πft). %步驟2,Compute X1 = cos(2πft) and X2 = sin(2πft). %步驟2,Compute X1 = cos(2πft) and X2 = sin(2πft). t = 1/(12):1/(12):length(SSN)/(12); yc = cos(2*pi*t/mainPeriod); ys = sin(2*pi*t/mainPeriod); figure; subplot(211); plot(yc,'r');hold on plot(ys,'b');hold off legend('X1','X2'); subplot(212); plot(yc,'r--');hold on plot(ys,'k--');hold on plot(SSN/max(SSN),'b.');hold off legend('X1','X2','SSN'); %步驟3,Fit the linearized cyclic model with least squares using Matlab. %步驟3,Fit the linearized cyclic model with least squares using Matlab. %步驟3,Fit the linearized cyclic model with least squares using Matlab. %Nt = β0 + β1X1 + β2X2 + error. %最小二乘辨識 c0 = [1 1 1]';%直接給出被辨識參數的初始值,即一個充分小的實向量 p0 = 10^6*eye(3,3); %直接給出初始狀態P0,即一個充分大的實數單位矩陣 for k=1:length(SSN); %開始求K h1 =[1,yc(k),ys(k)]'; x = h1'*p0*h1 + 99; x1 = inv(x); %開始求K(k) k1 = p0*h1*x1; %求出K的值 d1 = SSN(k)-h1'*c0; c1 = c0+k1*d1; %求被辨識參數c e1 = c1-c0; %求參數當前值與上一次的值的差值 e2 = e1./c0; %求參數的相對變化 e(:,k) = e2; %把當前相對變化的列向量加入誤差矩陣的最后一列 c0 = c1; %新獲得的參數作為下一次遞推的舊參數 c(:,k) = c1; %把辨識參數c 列向量加入辨識參數矩陣的最后一列 p1 = p0-k1*k1'*[h1'*p0*h1+1]; %求出 p(k)的值 p0 = p1; %給下次用 end %估計得到的太陽黑子活動曲線 for k=1:length(SSN); %開始求K Y_predict(k) = c(1,k) + c(2,k)*yc(k) + c(3,k)*ys(k); end figure; plot(Y_predict,'b','LineWidth',2);hold on; plot(SSN,'r');hold off; legend('預測SSN','實際SSN'); %步驟4: Interpret the ?tted model parameters in terms of amplitude,frequency, and phase shift of the cyclic model. %步驟4: Interpret the ?tted model parameters in terms of amplitude,frequency, and phase shift of the cyclic model. %步驟4: Interpret the ?tted model parameters in terms of amplitude,frequency, and phase shift of the cyclic model. %根據預測結果計算 %ut = Bcos(2*pi*f*t+o); t = 1/(12):1/(12):length(SSN)/(12); for k = 1:length(SSN); beta0(k) = c(1,k); beta1(k) = c(2,k); beta2(k) = c(3,k); BETA(k) = sqrt(beta1(k)^2 + beta2(k)^2); fai(k) = atan(-beta2(k)); %ut = Bcos(2*pi*f*t+o); %t = 1/(12):1/(12):length(SSN)/(12); %yc = cos(2*pi*t/mainPeriod); ut(k) = BETA(k)*cos(2*pi*t(k)/mainPeriod+fai(k)) + beta0(k); end figure; plot(ut(40:end),'b','LineWidth',2); hold on; plot(SSN(40:end),'r'); hold off; legend('Bcos(2*pi*f*t+o)','實際SSN'); %步驟5: Use residual plots to validate/evaluate the model. %步驟5: Use residual plots to validate/evaluate the model. %步驟5: Use residual plots to validate/evaluate the model. %計算誤差 Err = Y_predict' - SSN; figure; plot(Err,'.'); xlabel('Year'); ylabel('Nt - Ut'); %步驟6: Consider how the model might be improved. %步驟6: Consider how the model might be improved. %步驟6: Consider how the model might be improved. %模型的改進 %注意,從上面的分析結果可知,預測模型的誤差較大,做如下的改進,使其誤差較小 %最小二乘辨識 clear h1 x x1 k1 d1 c1 e1 e2 e c0 c p1 p0 c0 = [1 1 1 1 1 1 1 1]';%直接給出被辨識參數的初始值,即一個充分小的實向量 p0 = 10^6*eye(8,8); %直接給出初始狀態P0,即一個充分大的實數單位矩陣 t = 1/(12):1/(12):length(SSN)/(12); yc2 = cos(2*pi*t/(2*mainPeriod)); ys2 = sin(2*pi*t/(2*mainPeriod)); yc3 = cos(2*pi*t/(3*mainPeriod)); ys3 = sin(2*pi*t/(3*mainPeriod)); for k=1:length(SSN); %開始求K h1 =[1,k,yc(k),ys(k),yc2(k),ys2(k),yc3(k),ys3(k)]'; x = h1'*p0*h1 + 99; x1 = inv(x); %開始求K(k) k1 = p0*h1*x1; %求出K的值 d1 = SSN(k)-h1'*c0; c1 = c0+k1*d1; %求被辨識參數c e1 = c1-c0; %求參數當前值與上一次的值的差值 e2 = e1./c0; %求參數的相對變化 e(:,k) = e2; %把當前相對變化的列向量加入誤差矩陣的最后一列 c0 = c1; %新獲得的參數作為下一次遞推的舊參數 c(:,k) = c1; %把辨識參數c 列向量加入辨識參數矩陣的最后一列 p1 = p0-k1*k1'*[h1'*p0*h1+1]; %求出 p(k)的值 p0 = p1; %給下次用 end %估計得到的太陽黑子活動曲線 for k=1:length(SSN); %開始求K Y_predict2(k) = c(1,k) + c(2,k)*k + c(3,k)*yc(k) + c(4,k)*ys(k) + c(5,k)*yc2(k) + c(6,k)*ys2(k) + c(7,k)*yc3(k) + c(8,k)*ys3(k); end figure; plot(Y_predict2,'b','LineWidth',2);hold on; plot(SSN,'r');hold off; legend('預測SSN','實際SSN');
提 示:本站所有源碼只提供瀏覽,需要定制的朋友可以聯系在線客服!
注意:價格根據項目的難易程度來定價格業務咨詢

太陽黑子數據模擬分析程序源碼 --下載地址

注意:為避免不必要的誤會,本站項目里的源碼只公開部分需要的聯系在線客服

本站長期招聘程序代寫高手,歡迎加入華南地區matlab團隊

想創業卻沒有經驗的人

無論你是否有過網上開店的經驗,都可以隨時聯系在線客服,建立自己獨立的網站
想開網店卻不知道如何入手

淘寶創業成本低而且風險小,如果想開淘寶店的朋友可以聯系在線客服。
想兼職創業,卻不擅長交際與服務的人

在家創業月入5000元。網站程序+百套群發工具+網賺資料+域名+空間+本站終身代理資格,這樣你網賺的條件全具備了。每天3小時管理、推廣、收錢。
缺乏能快速贏利型產品的人

導入多種最新流行營銷軟件+網賺教程,讓入駐者輕松加盟、復制有效成交技巧、快速賺錢。

源碼評論評論內容只代表網友觀點,與本站立場無關!

   評論摘要(共 0 條,得分 0 分,平均 0 分) 查看完整評論

瀏覽說明

* 本站所有源碼全部公開,隨時隨地瀏覽!
* MATLAB軟件如用于商業用途,請購買正版!
* 如果您發現下載鏈接錯誤,請點擊報告錯誤謝謝!
* 站內提供的所有軟件包含破解及注冊碼均是由網上搜集,若侵犯了你的版權利益,敬請來信通知我們!
Copyright © 2008-2014 www.kggbzb.tw. All Rights Reserved.
頁面執行時間:218.75000 毫秒
安微25选5开奖号