- 博客(13)
- 收藏
- 关注
原创 MATLAB 最优化函数之无约束优化函数fminbnd
MATLAB 的优化计算是一种实践性很强的功能,最优化问题就是按照给定指标在某些约束条件下选取最优的解集过程。最优化指的是在一定条件下寻求使目标函数最大或最小的决策。最优化计算在实际中有着广泛的应用。MATLAB 中有专用的优化工具箱(Optimization Toolbox),其包含处理各种最优化问题的函数。利用 MATLAB 的优化工具箱,可以求解线性规划、非线性规划和多目标规划问题。优化工具箱中的最优化函数主要分为:求最小值的函数、等式求解函数和最小二乘函数、实用。
2025-01-29 12:38:55
448
原创 MATLAB 求解线性方程组之迭代法
在实际应用中(例如在运筹学、图论等领域中),往往会出现这样一种情况:系数矩阵阶数很高,但系数矩阵含零元素相对较多,如果用前面的几种分解法去求解的话,非零元素反而增多了,这就有点得不偿失了。迭代法是将求一组解转换为求一个近似解序列的过程,并用最终的近似解来逼近真实解。迭代法需要考虑以下 3 个重要的问题。 迭代的初始值:考虑初始值的选取是否有范围限制,不同的初始值对最终的迭代结果是否有影响 迭代算法:考虑怎样由当前的迭代结果得出下次迭代的初始值;由于不同的算法会带来不。
2025-01-22 22:25:57
641
原创 MATLAB 求解线性方程组之矩阵分解法
在数值运算中,矩阵除了能用来运行一些简单的操作外,解方程组是其更主要的应用。通常用矩阵的变换去解方程组是非常麻烦的,影响速度,也会影响精度,所以在解方程组之前对方程组的系数矩阵进行分解是非常必要的。
2025-01-22 21:23:27
332
原创 MATLAB 求解线性方程组之符号解法和求逆法
关于线性方程组的解法一般分为两类。 直接法:通过矩阵变形、消去直接得到方程的解,这类方法是解低阶稠密矩阵方程组的有效方法。 迭代法:就是用某种极限过程去逐渐逼近方程组精确解的方法,迭代法是解大型稀疏矩阵方程组的重要方法。
2025-01-21 22:29:45
293
原创 Matlab曲线和曲面拟合之非线性拟合—nlinfit 和 lsqcurvefit 函数
根据上述原理,在这里给出一个笔者编写的拟合函数 least_square_fit,用户给定输入数据和基函数句柄,即可求得各基函数对应的系数。% 最小二乘拟合函数。可自由指定基函数。% input:% x: 散点的横坐标值% y: 散点的纵坐标值,与 x 对应。% phifun: 基函数句柄构成的细胞数组% wei: 散点的权系数% output:% co: 各基函数的系数% err: 拟合函数在各数据点处的误差% example:% x = -3:3;
2025-01-20 22:03:58
1125
原创 Matlab曲线和曲面拟合之一元多项式拟合— polyfit函数
此时,如果选用幂函数作为基函数,则由于病态矩阵的问题,往往导致结果出现错误,不得不引入正交多项式以解决这个问题。这是由于幂函数范数的特性引起的,而在插值中,并不需要计算幂函数的范数,只需要代入离散的数据点求和即可,因此不会引起病态矩阵问题。最小二乘拟合可以转化为求解一个线性方程组的最小二乘解的问题,因此,如果数据点的个数 m 恰好等于多项式系数的个数 n+1,则方程恰好有唯一解,且所得曲线恰好通过原始数据点。如果 m < n +1 ,则求解结果不唯一,这样进行的拟合毫无意义,应降低拟合次数 n。
2025-01-17 22:51:10
499
原创 Matlab曲线和曲面拟合之多元线性拟合—lsqlin和regress函数
一、多元线性拟合lsqlinlsqlin 是多元、带约束条件的线性拟合,功能十分强大。它用于解决下式所表示的问题:相当于求解一个超定方程,且对解附加了不等式约束条件 Ax≤b 、等式约束条件 Aeq ⋅x =beq和上下界约束 lb ≤ x ≤ ub。由于最小二乘拟合问题也可以表示为一个超定方程的形式,因此,可以利用优化工具箱的函数 lsqlin 来进行线性拟合。上式中的 x 即所求基函数系数,相应地,上式中的约束也是对基函数系数的约束。其中, C 为自变量构成的矩阵, d 为函数值。
2025-01-17 22:17:16
1086
原创 常微分方程Matlab数值解法-#5高阶微分方程的降阶解法
对于高阶微分方程,常采用将高阶问题简化为一阶方程组的问题。例如:以二阶微分方程初值问题为例:求解常微分方程组时,经常出现数量级别差别大的情形,求解困难大,这类问题称为刚性问题,常采用多步法或单步法求解刚性问题。
2025-01-04 16:39:11
225
原创 常微分方程Matlab数值解法-#4龙格—库塔法ode23,ode45
采用Matlab求解器 solver 中的 ode23 采用二阶、三阶龙格—库塔法;ode45 采用四阶、五阶龙格—库塔法。求解器 solver 中的 ode23 采用二阶、三阶龙格—库塔法;ode45 采用四阶、五阶龙格—库塔法。用两个函数求解得到的结果相同,而 ode23 比 ode45 的运行速度要快.。2)用四阶、五阶龙格—库塔函数求解。1)用二阶、三阶龙格—库塔函数求解。
2025-01-04 13:12:08
319
原创 常微分方程Matlab数值解法-#3龙格—库塔法
尽管改进的欧拉法相对于简单欧拉法较为精确,但是对于很多实际的问题,运用这两种方法仍然得不到足够精确的解。龙格—库塔法( Runge-Kutta)是较之前两种方法计算精度更高的方法。在龙格—库塔法中,四阶龙格—库塔法的局部截断误差约为 o(h^5) ,被广泛应用于解微分方程的初值问题。在 MATLAB 中编程实现四阶龙格—库塔算法的函数为: MyRunge_Kutta。由运算结果可知,龙格—库塔法可得到与真值几乎相同的微分方程数值解。行时间较长,几乎是简单欧拉法的4倍。
2025-01-04 11:38:13
662
原创 常微分方程Matlab数值解法-solve符号解
也就是说可以设定好返回变量的个数来调用 dsolve 函数,或者也可以让求解微分方程的解返回到一个架构数组。函数 dsolve 可以用来计算常微分方程的符号解。表达式 d2y/dt2,因变量就是 D 后面的变量,而默认的自变量是 t。符号变量的名字不能包含字母 D。自变量可以由 t 改变为其他符号变量,作为最后一个输入变量包含在函数 dsolve 中。常微分方程作为微分方程的基本类型之一,在自然界与工程界有很广泛的应用。MATLAB 中提供了求解函数和求解器,可以实现常微分方程的解析求解和数值求解,
2025-01-04 11:24:23
403
原创 常微分方程Matlab数值解法-#2改进欧拉法
改进欧拉解与精确解几乎完全吻合,而简单欧拉解与精确解还有一定的误差。由此可见,改进的欧拉法较之简单欧拉法更为精确。
2024-12-21 23:07:03
433
原创 常微分方程Matlab数值解法-#1欧拉法
常微分方程作为微分方程的基本类型之一,在自然界与工程界有很广泛的应用。很多问题的数学表述都可以归结为常微分方程的定解问题。用欧拉法得到的解和用符号法得到的解之间存在一定的误差,且取的步长越小,欧拉解越接近精确解。
2024-12-21 20:01:47
729
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人