首页 > 其他分享 >利用matlab求解方程和方程组

利用matlab求解方程和方程组

时间:2024-08-16 19:38:42浏览次数:7  
标签:方程 函数 求解 vpasolve 方程组 solve matlab eqn

本章会介绍如何利用matlab的内置函数求解方程与方程组

目录

一、solve函数求解方程

1.求解单变量方程

solve(eqn, x)
对于单变量方程,在solve函数中的第一个参数需要输入我们用符号变量定义的等式,第二个参数为需要求解的变量。因为即使是单变量方程,里面的字符可能不止一个。

syms x
eqn = (sin(x) == 1);  % eqn = sin(x) == 1;  
answ = solve(eqn, x)

2.求解周期函数的解

因为三角函数是周期函数,如果要得到所有的解,则需要加上条件
返回的第二个参数是一个变量,而第三个参数则是这个变量需要满足的条件,以这个三角函数为例,求出解后的末尾应该要加上2kΠ,我们来看一下结果

syms x
eqn = (sin(x) == 1);
[answ, params, condions] = solve(eqn, x, 'ReturnConditions', true)

下面的结果给出了params的符号为k,而conditions则是k所需要满足的条件,为整数

answ = pi/2 + 2*pi*k
params = k 
condions = in(k, 'integer')

3.求解多变量方程

与单变量一样,由于有多个符号,因此在第二个参数要设置好变量

syms a b c x
eqn = (a*x^2 + b*x + c == 0);
answ1 = solve(eqn, x)  % 将x视为未知数求解 
answ2 = solve(eqn, a) % 将a视为未知数求解

4.求解方程组

solve(eqn,[x1,x2])
求解方程组的形式与求解方程的写法一样,但是这里的eqn为一个向量(行列均可),而第二个参数则是要指定好需要求解的变量

syms u v a
eqn=[2*u+v==a;u-v==1];
solve(eqn,[u,v])

最后返回的ans会是一个结构体,里面储存着u,v的符号解

当然,也可以用一个向量直接储存符号解
[ansu,ansv]=solve(eqn,[u,v])

二、vpasolve函数求解方程

1.solve函数的缺点

solve函数进行求解复杂的函数时,可能会报错,而且在方程存在多个解时,只能返回一个解而且会报错,例如:

syms x
eqn = (sin(x) == x^2 - 1);
solve(eqn, x)

ans = -0.63673265080528201088799090383828
但其实我们画图可以看到,这个函数其实不止一个解(fplot函数可以绘制字符变量表示的图像)

fplot(sin(x), [-2 2])  
hold on
fplot(x^2 - 1, [-2 2]) 


因此,选择用vpasolve函数更好地解决这个问题

2.vpasolve函数的用法

(1)用vpasolve函数指定求范围上的解

syms x
eqn = sin(x) == x^2 - 1;
vpasolve(eqn, x, [0 2])

当变量有多个时,第三个参数应该输入一个矩阵。如:vpasolve([eq1 eq2],[x y],[0 1; 1/2 2])

(2)用vpasolve函数给定搜索的起始点

vpasolve([eq1,...,eqn],[x1,...,xm],X0)

(3)用vpasolve函数进行随机指定范围进行搜索解

由于vpasolve函数一次只能返回一个解,但是方程并不总是有唯一解的,因此我们需要多次运行这个函数进行找解,然后用Uinique函数提取出所有的解,幸运的是,随机寻找这个过程我们只需要调用函数的命令就行了。
random选项调节成true即可
vpasolve(eqn, x, 'random', true)

三、fsolve函数求解方程

fsolve是Matlab优化工具箱中的一个函数,可专门用来求解特别复杂的方程和方程组

1.创建待求函数文件

fsolve是一个优化函数,可以解决复杂的方程问题,他所接受的函数不能仅仅是一个字符变量,需要重新创造函数文件,而函数文件的格式也有要求。
(1)当需要求解方程组时,我们的函数其实就是一个向量,不同方程组用F(i)来表示;同时,需要保证方程的右边全为0,即把所有的数移到一边
(2)当有多个自变量x时,使用向量的调用方法进行调用,例如x(1),x(2)

function F = my_fun(x)
    F(1) = exp(-exp(-(x(1)+x(2)))) - x(2)*(1+x(1)^2);
    F(2) = x(1)*cos(x(2)) + x(2)*sin(x(1)) - 0.5;
end

2.fsolve函数用法

fsolve(@fun,x0)
第一个参数是处在同一文件夹下自己创建的m文件,第二个为初值

x0 = [0,0];  % 初始值
result_x = fsolve(@my_fun,x0)

标签:方程,函数,求解,vpasolve,方程组,solve,matlab,eqn
From: https://www.cnblogs.com/dlmuwxw/p/18363399

相关文章

  • 基于三帧差算法的运动目标检测系统FPGA实现,包含testbench和MATLAB辅助验证程序
    目录1.算法运行效果图预览2.算法运行软件版本3.部分程序4.算法理论概述5.算法完整程序工程1.算法运行效果图预览(完整程序运行后无水印)将FPGA的仿真结果导入到MATLAB中,分别得到MATLAB的结果和FPGA的结果:2.算法运行软件版本vivado2019.2matlab2022a3.部分程序......
  • 蚁群求TSP问题 MATLAB程序
    蚁群算法被广泛应用于解决旅行商问题(TravelingSalesmanProblem,简称TSP)。TSP是一个经典的组合优化问题,目标是找到一条最短的路径,使得旅行商可以经过所有城市恰好一次,最后回到出发城市。下面是蚁群算法处理TSP问题的步骤:初始化:生成一群蚂蚁,并随机分配每只蚂蚁的初始位置......
  • 7次多项式对若干个点进行拟合,并生成图像|MATLAB实现
    文章目录拟合运行结果完整代码拟合MATLAB对数据进行拟合的意义是通过数学模型和统计方法对实际数据进行分析和预测。拟合可以帮助我们理解数据背后的规律和趋势,从而做出科学决策。拟合的意义揭示数据的规律预测未来趋势数据修正和异常检测数据分析......
  • 混合策略改进的蜣螂算法(IDBO)优化长短期记忆神经网络原理及matlab代码
    目录0引言1数学模型2模型对比3matlab代码3.1改进的主代码3.2IDBO-LSTM4视频讲解0引言针对DBO算法全局探索能力不足、易陷入局部最优以及收敛精度不理想等问题,多为学者提出了混合多策略改进的蜣螂优化算法(IDBO)。主要混合策略改进首先是采用混沌映射结合随机反......
  • 混合策略改进的蜣螂算法(IDBO)优化支持向量机原理及matlab代码
    目录0引言1数学模型2模型对比3matlab代码3.1改进的主代码3.2IDBO-SVM4视频讲解0引言针对DBO算法全局探索能力不足、易陷入局部最优以及收敛精度不理想等问题,多为学者提出了混合多策略改进的蜣螂优化算法(IDBO)。主要混合策略改进首先是采用混沌映射结合随机反向......
  • MATLAB人体行为检测系统
    MATLAB人体行为检测系统是利用MATLAB编程语言和相关工具实现的一种系统,用于对人体行为进行实时监测和识别。该系统的主要功能包括人体姿态估计、行为识别和行为分析。人体姿态估计是指通过分析人体图像或视频,获取人体的关节位置和姿势信息。这一过程通常涉及到计算机视觉和图......
  • MATLAB运动目标跟踪系统
    MATLAB提供了一些函数和工具箱,可以用于运动目标的跟踪和检测。以下是一些常用的方法:前景提取:使用图像处理方法,如基于帧差法、基于背景建模等,提取视频中的前景目标。可以使用MATLAB的图像处理工具箱中的函数,如imabsdiff()和vision.ForegroundDetector()。特征提取和匹配:使用......
  • 回归预测|基于HGS-CNN-LSTM-Attention的数据回归预测Matlab程序 多特征输入单输出 含
    回归预测|基于HGS-CNN-LSTM-Attention的数据回归预测Matlab程序多特征输入单输出含基础模型文章目录前言回归预测|基于HGS-CNN-LSTM-Attention的数据回归预测Matlab程序多特征输入单输出含基础模型一、HGS-CNN-LSTM-Attention模型1.模型组件概述1.1.海鸥优化算......
  • matlab对不定积分和定积分的计算
    在高等数学中,对这两种积分的计算是一种常见的考题,而matlab有内置的函数能够直接帮助我们解决这个计算问题目录一、matlab求解不定积分1.int函数求解不定积分2.int函数求解不定积分的常见问题二、matlab求解定积分1.求具体数值的定积分2.求具体带参数的定积分3.求瑕积分三、求数值......
  • matlab求解多目标规划问题
    多目标规划是多目标决策的重要内容之一,在进行多目标决策时,当希望每个目标都尽可能的大(或尽可能的小)时,就形成了一个多目标规划问题。目录一、模型介绍1.标准模型2.求解思路二、常见问题1.统一最值目标2.统一量纲3.确定权重三、经典例题1.模型建立2.确定目标函数3.代码求解四......