基于最小二乘法的太阳黑子活动模型参数辨识和预测matlab仿真

本文主要是介绍基于最小二乘法的太阳黑子活动模型参数辨识和预测matlab仿真,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

1.程序功能描述

2.测试软件版本以及运行结果展示

3.核心程序

4.本算法原理

5.完整程序


1.程序功能描述

       基于最小二乘法的太阳黑子活动模型参数辨识和预测matlab仿真。太阳黑子是人们最早发现也是人们最熟悉的一种太阳表面活动。因为太阳内部磁场发生变化,太阳黑子的数量并不是固定的,它会随着时间的变化而上下波动,每隔一定时间会达到一个最高点,这段时间就被称之为一个太阳黑子周期。太阳黑子的活动呈现周期性变化是由施瓦贝首次发现的。沃尔夫 (R.Wolfer)继而推算出11年的周期规律。实际上,太阳黑子的活动不仅呈11年的周期变化,还有海耳在研究太阳黑子磁场分布时发现的22年周期;格莱斯堡等人发现的80年周期以及蒙德极小期等。由于太阳黑子的活动规律极其复杂,时至今日科学家们仍在努力研究其内在的规律和特性。事实上,对太阳黑子活动规律的研究不仅具有理论意义,而且具有直接的应用需求。太阳黑子的活动呈现周期性变化的,沃尔夫(R.Wolfer)根据在过去的288 年(1700年~1987 年)间每年太阳黑子出现的数量和大小的观测数据推算出11 年的周期规律。我们利用Matlab强大的数据处理与仿真功能,对Wolfer数进行功率谱密度分析从而可以得到对太阳黑子活动周期的结论。

2.测试软件版本以及运行结果展示

MATLAB2022a版本运行

3.核心程序

.................................................................................
ind = 0;
kk=300;
for k=1:length(SSN)+Predict_Len; %开始求K if k <= length(SSN)Y_predict3(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); else    %Y_predict3(k) = c(1,end) + c(2,end)*k + c(3,end)*yc(k) + c(4,end)*ys(k) + c(5,end)*yc2(k) + c(6,end)*ys2(k) + c(7,end)*yc3(k) + c(8,end)*ys3(k); c0 = mean(c(1,end-kk-1:end-kk));c1 = mean(c(2,end-kk-1:end-kk));c2 = mean(c(3,end-kk-1:end-kk));c3 = mean(c(4,end-kk-1:end-kk));c4 = mean(c(5,end-kk-1:end-kk));c5 = mean(c(6,end-kk-1:end-kk));c6 = mean(c(7,end-kk-1:end-kk));c7 = mean(c(8,end-kk-1:end-kk));Y_predict3(k) = c0  + c1*k + c2*yc(k) + c3*ys(k) + c4*yc2(k) + c5*ys2(k) + c6*yc3(k) + c7*ys3(k); ind           = ind + 1;Ys(ind)       = Y_predict3(k);end
end
figure;plot(YEAR2,SSN,'r');hold off;
legend('预测SSN','实际SSN');
grid on;%根据预测结果得到下次太阳黑子活动高峰和低峰的时间
%前一次高峰日期为XX           = 59;
[Vmax1,Imax1] = max(Ys);
[Vmax2,Imax2] = max(SSN(length(SSN)-XX:length(SSN)));%3100~3160if Vmax1 > Vmax2II   =  Imax1;MM   =  Vmax1; time = (length(SSN) + II-3019);%原数据的最后一个月份+预测后的最大值 - 前一个高峰日期
elseII   =  Imax2;MM   =  Vmax2; time = (length(SSN) + (XX-II)-3019);%原数据的最后一个月份+预测后的最大值 - 前一个高峰日期
end
Years=time/12;fprintf('下次高峰期日期为:%d',round(2000 + Years));
fprintf('年\n\n');
fprintf('最大值为:%2.2f\n\n\n\n',MM);%计算下一次低谷值
[Vmin,Imin] = min(Ys);
fprintf('下次低峰期日期为:%d',round(2012 + Imin/12));
fprintf('年\n\n');
fprintf('最小值为:%2.2f\n\n',Vmin);
16_013m

4.本算法原理

        在研究太阳黑子活动时,通常会选择一个合适的物理或统计模型来描述其周期性变化规律。例如,可以选择Hale-Stark定律、Schwabe周期或者某种动力学系统模型等。为了确定模型中的未知参数,我们可以利用历史观测数据采用最小二乘法进行参数辨识。

最小二乘法:

        假设我们有一个拟合模型 f(x,θ),其中x 是时间变量,θ=[θ1​,θ2​,...,θn​] 是待估计的模型参数向量。已知一系列太阳黑子活动观测数据yi​ 对应于时间点 xi​ (i=1, 2, ..., m),目标是通过调整参数 θ 来使模型输出与实际观测值之间的误差平方和最小。这个优化问题可以用以下数学公式表示:

参数辨识步骤:

  • 初始化参数:首先为模型参数设定初始值。
  • 构建目标函数:根据上述公式构建误差平方和作为目标函数。
  • 求解最优参数:运用梯度下降法、牛顿法或其他优化算法找到使目标函数极小化的参数值θ^。

模型预测 

一旦通过最小二乘法得到最佳参数估计θ^,就可以使用此参数对未来的太阳黑子活动进行预测:

应用实例 以一个简单的线性模型为例(虽然太阳黑子活动通常具有非线性特征):

        这里的参数向量θ=[θ0​,θ1​],分别代表截距和斜率。采用最小二乘法就是要找出使得下式最小的 θ0​ 和θ1​:

        在实际应用中,针对太阳黑子活动这类复杂的自然现象,可能需要选择更高级别的非线性模型,并结合其他科学理论和观测数据进行分析。同时,对于复杂模型,可能会涉及更多优化方法和技术,如正则化最小二乘法以防止过拟合等问题。

5.完整程序

VVV

这篇关于基于最小二乘法的太阳黑子活动模型参数辨识和预测matlab仿真的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/818634

相关文章

一份LLM资源清单围观技术大佬的日常;手把手教你在美国搭建「百万卡」AI数据中心;为啥大模型做不好简单的数学计算? | ShowMeAI日报

👀日报&周刊合集 | 🎡ShowMeAI官网 | 🧡 点赞关注评论拜托啦! 1. 为啥大模型做不好简单的数学计算?从大模型高考数学成绩不及格说起 司南评测体系 OpenCompass 选取 7 个大模型 (6 个开源模型+ GPT-4o),组织参与了 2024 年高考「新课标I卷」的语文、数学、英语考试,然后由经验丰富的判卷老师评判得分。 结果如上图所

大语言模型(LLMs)能够进行推理和规划吗?

大语言模型(LLMs),基本上是经过强化训练的 n-gram 模型,它们在网络规模的语言语料库(实际上,可以说是我们文明的知识库)上进行了训练,展现出了一种超乎预期的语言行为,引发了我们的广泛关注。从训练和操作的角度来看,LLMs 可以被认为是一种巨大的、非真实的记忆库,相当于为我们所有人提供了一个外部的系统 1(见图 1)。然而,它们表面上的多功能性让许多研究者好奇,这些模型是否也能在通常需要系

ABAP怎么把传入的参数刷新到内表里面呢?

1.在执行相关的功能操作之前,优先执行这一段代码,把输入的数据更新入内表里面 DATA: lo_guid TYPE REF TO cl_gui_alv_grid.CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'IMPORTINGe_grid = lo_guid.CALL METHOD lo_guid->check_changed_data.CALL M

时序预测 | MATLAB实现LSTM时间序列未来多步预测-递归预测

时序预测 | MATLAB实现LSTM时间序列未来多步预测-递归预测 目录 时序预测 | MATLAB实现LSTM时间序列未来多步预测-递归预测基本介绍程序设计参考资料 基本介绍 MATLAB实现LSTM时间序列未来多步预测-递归预测。LSTM是一种含有LSTM区块(blocks)或其他的一种类神经网络,文献或其他资料中LSTM区块可能被描述成智能网络单元,因为

人工和AI大语言模型成本对比 ai语音模型

这里既有AI,又有生活大道理,无数渺小的思考填满了一生。 上一专题搭建了一套GMM-HMM系统,来识别连续0123456789的英文语音。 但若不是仅针对数字,而是所有普通词汇,可能达到十几万个词,解码过程将非常复杂,识别结果组合太多,识别结果不会理想。因此只有声学模型是完全不够的,需要引入语言模型来约束识别结果。让“今天天气很好”的概率高于“今天天汽很好”的概率,得到声学模型概率高,又符合表达

智能客服到个人助理,国内AI大模型如何改变我们的生活?

引言 随着人工智能(AI)技术的高速发展,AI大模型越来越多地出现在我们的日常生活和工作中。国内的AI大模型在过去几年里取得了显著的进展,不少独创的技术点和实际应用令人瞩目。 那么,国内的AI大模型有哪些独创的技术点?它们在实际应用中又有哪些出色表现呢?此外,普通人又该如何利用这些大模型提升工作和生活的质量和效率呢?本文将为你一一解析。 一、国内AI大模型的独创技术点 多模态学习 多

OpenCompass:大模型测评工具

大模型相关目录 大模型,包括部署微调prompt/Agent应用开发、知识库增强、数据库增强、知识图谱增强、自然语言处理、多模态等大模型应用开发内容 从0起步,扬帆起航。 大模型应用向开发路径:AI代理工作流大模型应用开发实用开源项目汇总大模型问答项目问答性能评估方法大模型数据侧总结大模型token等基本概念及参数和内存的关系大模型应用开发-华为大模型生态规划从零开始的LLaMA-Factor

模型压缩综述

https://www.cnblogs.com/shixiangwan/p/9015010.html

Java面试八股之JVM参数-XX:+UseCompressedOops的作用

JVM参数-XX:+UseCompressedOops的作用 JVM参数-XX:+UseCompressedOops的作用是启用对象指针压缩(Ordinary Object Pointers compression)。这一特性主要应用于64位的Java虚拟机中,目的是为了减少内存使用。在传统的64位系统中,对象引用(即指针)通常占用8字节(64位),而大部分应用程序实际上并不需要如此大的地址空间

LeetCode--155 最小栈

题目 设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。push(x) -- 将元素 x 推入栈中。pop() -- 删除栈顶的元素。top() -- 获取栈顶元素。getMin() -- 检索栈中的最小元素。 示例 MinStack minStack = new MinStack();minStack.push(-2);minStack.push