Solve Multivariate Equations and Assign Outputs to Variables
解多重方程组并且赋值给输出变量

解如下系统方程:
{ 2 u 2 + v 2 = 0 u − v = 1 \left\{\begin{aligned} &2u^2 + v^2 = 0 \\ &u - v = 1 \end{aligned}\right. {​2u2+v2=0u−v=1​

超过一个变量时,制定变量的顺序定义了求解器 solver 返回结果的顺序。

syms u v
eqns = [2*u^2 + v^2 == 0, u - v == 1];
vars = [v u];
[solv, solu] = solve(eqns,vars)

结果为:

solv =- (2^(1/2)*1i)/3 - 2/3(2^(1/2)*1i)/3 - 2/3solu =1/3 - (2^(1/2)*1i)/3(2^(1/2)*1i)/3 + 1/3

Ref: solve-MathWorks

再求解一下我自己当时遇到的问题

求解以下三元三次微分方程组:
{ ( a t f + b ) 2 = 2 ( a t f + 2 b ) t f − 2 = 0 a t f 3 + 3 b t f 2 − 6 t f − 60 = 0 \left\{\begin{aligned} &(a t_f + b)^2 = 2 \\ &(a t_f + 2 b) t_f - 2 = 0 \\ &a t_f^3 + 3 b t_f^2 - 6 t_f - 60 = 0 \\ \end{aligned}\right. ⎩⎪⎨⎪⎧​​(atf​+b)2=2(atf​+2b)tf​−2=0atf3​+3btf2​−6tf​−60=0​

syms a b tf
eqns = [(a*tf+b)^2==2, (a*tf+2*b)*tf-2==0, a*tf^3+3*b*tf^2-6*tf-60==0];
vars = [a b tf];
[a b tf] = solve(eqns, vars)

结果为:

a =root(z^4 - 2*z^2 - 120*z - 1800, z, 1)^2/900 - root(z^4 - 2*z^2 - 120*z - 1800, z, 1)/15 - 1/450root(z^4 - 2*z^2 - 120*z - 1800, z, 2)^2/900 - root(z^4 - 2*z^2 - 120*z - 1800, z, 2)/15 - 1/450root(z^4 - 2*z^2 - 120*z - 1800, z, 3)^2/900 - root(z^4 - 2*z^2 - 120*z - 1800, z, 3)/15 - 1/450root(z^4 - 2*z^2 - 120*z - 1800, z, 4)^2/900 - root(z^4 - 2*z^2 - 120*z - 1800, z, 4)/15 - 1/450b =root(z^4 - 2*z^2 - 120*z - 1800, z, 1)^2/30 - 1/15root(z^4 - 2*z^2 - 120*z - 1800, z, 2)^2/30 - 1/15root(z^4 - 2*z^2 - 120*z - 1800, z, 3)^2/30 - 1/15root(z^4 - 2*z^2 - 120*z - 1800, z, 4)^2/30 - 1/15tf =root(z^4 - 2*z^2 - 120*z - 1800, z, 1)root(z^4 - 2*z^2 - 120*z - 1800, z, 2)root(z^4 - 2*z^2 - 120*z - 1800, z, 3)root(z^4 - 2*z^2 - 120*z - 1800, z, 4)

结果出现了上述情况,可直接使用 double() 解决,参考这篇文章matlab解方程出现root,如何获得数值解:,因此有以下解决办法

>> double(a)ans =0.4254 + 0.0000i-0.0011 + 0.4418i-0.0011 - 0.4418i-0.4276 + 0.0000i>> double(b)ans =1.0720 + 0.0000i-1.4475 + 0.3052i-1.4475 - 0.3052i1.6897 + 0.0000i>> double(tf)ans =-5.8447 + 0.0000i-0.7071 - 6.4751i-0.7071 + 6.4751i7.2589 + 0.0000i

考虑到 t f t_f tf​ 变量代表时间的末端时刻值,因此不能有负值和虚部,因此
t f = 7.2589 b = 1.6897 a = − 0.4276 \begin{aligned} t_f &= 7.2589 \\ b &= 1.6897 \\ a &= -0.4276 \\ \end{aligned} tf​ba​=7.2589=1.6897=−0.4276​


求解含有未知变量的方程组

如系统含有三个未知量 u , v , x u, v, x u,v,x,方程组的形式为
{ u + v + x = 0 u − v = 1 \left\{\begin{aligned} &u + v + x = 0 \\ &u - v = 1 \end{aligned}\right. {​u+v+x=0u−v=1​

求解 u u u 和 v v v 的表达式

程序如下

syms u v x real
eqns = [u + v + x == 0, u - v == 1];
vars = [v u];
[solv, solu] = solve(eqns,vars)

结果为:

solv =- x/2 - 1/2solu =1/2 - x/2

v = − x 2 − 1 2 u = 1 2 − x 2 \begin{aligned} v &= -\frac{x}{2} - \frac{1}{2} \\ u &= \frac{1}{2} - \frac{x}{2} \\ \end{aligned} vu​=−2x​−21​=21​−2x​​

【Matlab】解多元方程 以三元方程为例 使用 solve 函数相关推荐

  1. Matlab解五次以上方程,大侠帮忙,matlab解方程组 (5个方程,5个未知数)

    共回答了17个问题采纳率:82.4% A=solve('1/lambda_s+1/lambda_i-1/1064','n_p/1064-n_s/lambda_s-n_i/lambda_i-1/3150 ...

  2. matlab 二次不等式约束,请教高手如何用matlab解多元二次不等式的解,有三个未知数x1,x2,x3,约束条件如下:...

    共回答了15个问题采纳率:86.7% 楼上正解无错 再给一种不同的形式 function zd0323 format long%改变格式,使更精确输出结果 %% 目标函数 function y=fun ...

  3. 如何用matlab解异或方程,Matlab-6:解非线性方程组newton迭代法

    函数文件: function x=newton_Iterative_method(f,n,Initial) x0=Initial; tol=1e-11; x1=x0-Jacobian(f,n,x0)\ ...

  4. matlab中solve解方程,怎么用Matlab解方程?

    Matlab是一款功能强大的数学软件,我们常常会使用它来解决一些数学难题,但是有时候我们刚装上这个软件的时候,就有一些问题不懂得怎么处理,比如说怎么用Matlab解方程,为了帮助大家解决这个问题,小编 ...

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

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

  6. matlab解方程实例

    %matlab解三元方程 clc clear syms a0 a1 a2 eq1 = 1/(a0+50*a1+a2)+1/(a0+55*a1+a2)+1/(a0+60*a1)-35.7 eq2 = 5 ...

  7. Matlab符号数学(Symbolic Math with MATLAB)MATLAB解方程

    创建符号变量 用符号而不是数值表示数字. 存储数字符号 % 你可以把一个数存储为数值格式,就像我们经常做的那样 x = 3; % 你也可以把这个数存储为符号格式,使用sym()函数 xsym = sy ...

  8. MATLAB学习笔记(七)——MATLAB解方程与函数极值

    (一)线性方程组求解 包含n个未知数,由n个方程构成的线性方程组为: 其矩阵表示形式为: 其中 一.直接求解法 1.左除法 x=A\b; 如果A是奇异的,或者接近奇异的.MATLAB会发出警告信息的. ...

  9. 一种MATLAB中解复杂方程(高次、指数、无解析解)的方法,可以在实现论文中公式时使用,solve函数。

    前几天我在实现一篇论文时,对于一个公式其他参数都已知的情况下,要得到剩下得那个未知的变量,由于方程的形式很复杂,用常规方法很难处理,故在实现时使用了MATLAB中solve函数,现在把方法呈现在这里, ...

最新文章

  1. linux部署tomcat启动后无法访问,linux中启动tomcat后浏览器无法访问的解决方法
  2. linux /home recovering journal,linux报错:/dev/sdb2:recovering journal
  3. 搭建及训练py-R-FCN遇到的问题
  4. 一顿骚操作!我将 SQL 耗时从 30248.271s 优化到 0.001s
  5. 【好程序员笔记分享】——UIView与CALayer详解
  6. 天马微电子的mes工程师_上海天马微电子MES工程师职位(部门:制造中心/自动化部)怎么样?...
  7. python小甲鱼爬虫妹子_【Python学习日记】B站小甲鱼:爬虫
  8. AIO,BIO,NIO:同步阻塞式IO,同步非阻塞IO,异步非阻塞IO
  9. apscheduler Trigger
  10. Istio服务网格路由入门
  11. 64位电脑 装32位oracle,64位Windows可以安装32位的Oracle吗
  12. 视频教程-纯风老师AI平面设计视频教程-其他
  13. 吞吐量测试(RFC2544)超详细步骤_使用思博伦spirent testcenter_双极未来
  14. mac charles4.0.2免费破解版安装
  15. 列联表分析——独立性检验(卡方检验)
  16. 项目管理10大知识领域和47个过程的思维导图
  17. 解决DeepL翻译器翻译出来的文档是只读模式,不能编辑
  18. 一名合格的数据分析师,需要满足哪些条件
  19. VLC编译错误难解 3 fatal error: features.h: 没有那个文件或目录
  20. 数据结构实验——哈夫曼编码

热门文章

  1. 【转】 ldo工作原理和参数
  2. axios请求拦截器的配置
  3. IBM v7000存储鬼盘删除方法
  4. 解决某手短视频抓包工具抓不到问题
  5. 监督学习和无监督学习区别
  6. MCP3421使用详解
  7. Android小例子--实现微信界面
  8. word排版技巧:如何让选择题多个选项快速对齐
  9. 某办公房间空调环境下的温度场、速度场和PMV的SolidWorks模拟分析
  10. beamer设置指定页背景