fslove - Matlab求解多元多次方程组

简介: 之前看到网上的一些资料良莠不齐,各种转载之类的,根本无法解决实际问题,所以我打算把自己的学到的总结一下,以实例出发讲解fsolve。
示例如下:
{2x1−x2=eax1−x1+2x2=eax2\begin{cases} 2x_1 - x_2 = e^{ax_1} \\ -x_1 + 2x_2 = e^{ax_2} \\ \end{cases} {2x1​−x2​=eax1​−x1​+2x2​=eax2​​
具体的求解过程在后面 点击跳转

1. fsolve的基本使用

调用格式一:

X = fslove(FUN,X0)

功能:给定初值X0,求解方程组的解,X就是返回的解

调用格式二:

X = fsolve(FUN,X0,OPTIONS)

功能:同上,并解决默认参数优化为options指定值

调用格式三:

[X,FVAL] = fslove(FUN,X0,…)

功能:返回X处目标函数值

调用格式四:

[X,FVAL,EXITFLAG] = fslove(FUN,X0,…)

功能:返回EXITFLAG的值,用来描述计算退出的条件,其中EXITFLAG取值和相应的含义如下表。(主要作为判断条件来使用)

EXITFLAG 含义
1 函数fslove收敛于解X处
2 X的变化小于限制
3 残差变化小于限制
4 重要搜索方向小于限制
0 达到最大迭代次数或者评价标准
-1 算法由输出函数终止
-2 算法无法收敛到解的点
-3 信赖域半径太小
-4 线搜索在当前不能充分减少残差

调用格式五:

[X,FVAL,EXITFLAG,OUTPUT] = fslove(FUN,X0,…)

功能:包含OUTPUT的输出

调用格式六:

[X,FVAL,EXITFLAG,OUTPUT,JACOB] = fslove(FUN,X0,…)

功能:返回雅各比矩阵

2.方程求解

(1) 编制函数文件fun.m

编写函数主要用来书写函数的表达式。

function f = fun(x,a,b,c)  % b c可以是随意的参数
f1 = 2*x(1)-x(2)-exp(a*x(1));
f2 = -x(1)+2*x(2)-exp(a*x(2));
f = [f1;f2];% 也可以写成下面的方式
% f = [2*x(1)-x(2)-exp(a*x(1));-x(1)+2*x(2)-exp(a*x(2))];

(2) 给定函数的参数值和初值(解在周围寻找)

调用求解函数 fslove

>> a = -1;
>> x0 = [-5,-4];
>> [x,FVAL,EXITFLAG,OUTPUT,JACOB] = fsolve(@(x)fun(x,a,1,1),x0);

@(x)fun(x,a,1,1)调用fun函数,函数的参数是a,1,1,求解x的值
执行后调用x返回,也就是X的解。

x =

  0.5671   0.5671

调用FVAL显示在目标解的函数值,可以看出,FVAL越小越接近真实解。

FVAL =

  1.0e-09 *

  -0.4242
  -0.3753

调用EXITFLAG 结合上面的表格可以知道,函数FSOLVE收敛于解X处。

EXITFLAG =

  1

fslove - Matlab求解多元多次方程组相关推荐

  1. 牛顿法matlab多元方程,fslove - Matlab求解多元多次方程组

    fslove - Matlab求解多元多次方程组 简介: 之前看到网上的一些资料良莠不齐,各种转载之类的,根本无法解决实际问题,所以我打算把自己的学到的总结一下,以实例出发讲解fsolve. 示例如下 ...

  2. python求解多元多次方程组或非线性方程组

    背景:如何使用python求解多元多次方程组或者非线性方程组. 原创内容,转载注明出处!请勿用于商业用途! (上篇用python拟合2019nCov感染人数的文章被不少博主转载了,发的比较早,不少博主 ...

  3. 使用 matlab 求解多元非线性方程组

    前言: 有朋友问我如何使用 matlab 求解方程组,他查不到,且不太会写代码,我查了一下,总结了个模板. 假设要解一个三元方程组如下: {x2+sin⁡y−z=100x−y+z=5xz+cos⁡y= ...

  4. matlab求解方程和多元函数方程组

    核心函数solve 一般形式 S=solve(eqns,vars,Name,Value) ,其中: eqns是需要求解的方程组: vars是需要求解的变量: Name-Value对用于指定求解的属性( ...

  5. matlab怎么求解多元非线性方程组,MATLAB求解多元非线性方程组

    我想求解一个非常复杂的方程组,原理很简单,就是解三个方程求出三个未知数a.b.c,但每一个方程都包含exp.log.sqrt函数,不知道能否用MATLAB求出解来,我试着写了程序,但是运行不出来,我第 ...

  6. Matlab求解多元高次方程组

    求解方程: 其中,已知量为: x_TE_1=1.23; y_TE_1=3.3232;  z_TE_1=0.9876; h_T=0; R_E=6378137; R_P=6356752; x_ES=1; ...

  7. 【Matlab】求解多元一次方程组

    符号运算: syms a b c d e p m[a,b,c,d,e,p,m]=solve('a+b+c+d+e=0','b+2*c+3*d+4*e-1-p-m=0', 'b+4*c+9*d+16*e ...

  8. c++编程求解二元二次方程组_c++ 牛顿迭代法求解多元多次方程组

    //经典牛顿迭代法C++实现 #include #include #define N 3 // 非线性方程组中方程个数.未知量个数 #define Epsilon 0.000000001 // 差向量 ...

  9. python解多元多次方程组_Python求解多重或非线性方程,python,多元,多次,方程组,线性方程组...

    背景: 如何使用python求解多元多次方程组或者非线性方程组. 原创内容,转载注明出处!请勿用于商业用途! (上篇用python拟合2019nCov感染人数的文章被不少博主转载了,发的比较早,不少博 ...

最新文章

  1. Linux下进程间通信——管道
  2. python中for循环语句格式_Python基础-10循环语句
  3. Python 中最黑魔法、最难懂的概念
  4. Jquery获取服务器端控件ID的方法
  5. [机器学习-概念] 什么是欧式距离、标准化欧式距离、马氏距离、余弦距离
  6. 备份图解 ---mysql 博客
  7. swift 拖动按钮_Swift 简单控件示例:滑块(UISlider)
  8. PLECS的热模型无法导入的解决办法
  9. 算法分析与设计实验报告二——贪心算法实验
  10. java读取局域网种大华摄像机信息
  11. 抓包工具charles下载安装(破解版)
  12. ios定位权限plist_[译] iOS 请求定位权限
  13. 阿里云网站域名备案流程全过程(图文讲解)
  14. 密码学的发展(第二篇:恩尼格码机)
  15. html设为首页功能
  16. 使用eclipse创建一个web登录界面项目
  17. linux下磁盘情况查询命令
  18. 组合博弈 -- 三大基本博弈
  19. pythonxpath判断元素是否存在_Python Lxml(objectify):检查标签是否存在
  20. 玄学曲线——GPU呈现模式分析

热门文章

  1. Android 蓝牙(有线)耳机监听的问题
  2. 用c++写一个简单的图书管理系统
  3. codecombat计算机科学三,Codecombat 游戏攻略——JavaScript编辑语言——关卡(计算机科学四)Ⅰ...
  4. 启发式搜索算法解决数独问题sudoku,附python实现
  5. 迭代的快速排序(Iterative Quick Sort)
  6. csdn中c币、积分 获取方法
  7. Canel-简介使用
  8. Translate Tab for mac(专业翻译软件)
  9. 微信小程序+php+swoole极速实现群聊
  10. MatLab2012b/MatLab2013b分类器大全(svm,knn,随机森林等)