MATLAB用solve求解普通二元高次方程

先说问题:

有这两个式子,其中除了u和λ,其他都是已知参数。所以,不必恐慌,看着很复杂,但是这个条件一加,其实就是很简单的二元高次方程组,把2式带到1式,然后用MATLAB自带的solve函数一解就出来了。

我的MATLAB代码如下:

function[u,lamda]=fun()
clear
syms u lamda_1;
syms rho_a rho_0 xi_1 xi_2 xi_3 xi_4 xi_5 xi_6 l_1 l_2 l_3 l_4 l_5 d k_1 k_2 u_H1 u_H2 cos_beta g h
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%输入基本参数
rho_a=0.7; rho_0=0.9;
xi_1=0.5; xi_2=0.5; xi_3=0.5; xi_4=0.5; xi_5=0.5; xi_6=0.5;
l_1=1; l_2=1; l_3=1; l_4=1; l_5=1;
d=0.21;
k_1=0.7; k_2=-0.8  ;
u_H1=1.2; u_H2=1.0;
cos_beta=1;
g=10;
h=1;
k=0.3;
v=3e-5;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%方程1化简系数
a_1=rho_a*(1+xi_1+xi_2+xi_3+xi_4+xi_5+xi_6);
b_1=(l_1+l_2+l_3+l_4+l_5)/d;
c_1=rho_0*(k_1*(u_H1*cos_beta)*(u_H1*cos_beta)-k_2*u_H2*u_H2)+2*(rho_0-rho_a)*g*h;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%解方程
%%最终把方程化成(a_1+b_1*lamda)*u^2=c_1的形式
eq1=(a_1+b_1*0.11*(k/d+68*v/(u*d))^(0.25))*u^2-c_1;
u=double(solve(eq1,u))
%%再将u带回求解lamda
eq2=lamda_1-(0.11*(k/d+68*v/(u*d)).^(0.25));
lamda=double(solve(eq2,lamda_1))

一个小技巧就是用a,b,c 把比较复杂的一坨参数看做一个整体,反正都是已知量,不影响。
然后把2式λ带到1式中,那1式就是关于u的一元高次方程,用solve求解即可;
double的意思是把solve的结果表示成double类型

关于solve函数的扩展与该问题的补充说明

1.首先是对方程的求解

完美的算出了方程的解
现在对上面的代码进行一些说明

1.syms x;是必要的,这将会把x设为符号变量。
2.eq=x^2 +2x+1;eq也会变为一个符号变量用于储存方程
x^ 2+2x+1
2.s=solve(eq,x);中方程的结果由solve函数返回,存储在s里。注意(eq,x)中x是说明eq这个方程中x为变量。
这个看起来没有什么用但是对下面这个方程就有些意思了:
a*x+2=0
如果把a看为变量的话方程的解就是-2/x。
如果把x看为变量的话方程的解就是-2/a。
我们看一下下面的结果:

是不是很有意思?

2.接下来是对方程组的求解

例子如下(和上面差不多就是solve的参数变成了两个方程)

结果及例子如下图:

这代表:x,y各有一解
由于答案存储在s中,所以可以用s.x和s.y调出方程的具体解

3.三元方程组也是一样

4.所以,这题也可以在一个solve函数里面直接把两个方程放一起,然后solve的变量参数分别用u和λ。

MATLAB用solve求解普通二元高次方程相关推荐

  1. matlab使用solve求解二元二次方程组

    网上有些代码存在问题,这里只做了原理上的更正.也希望能各位码农能完全.准确地提供代码. 求解二元二次方程组代码: clc clear close all syms x y; f_1 = sym(x^2 ...

  2. Matlab 使用solve求解方程,出现未知数z和root

    在使用Matlab求非线性方程的解析解时,遇到的奇怪的问题,给出的解中出现未知数z,同时还含有root,也是看得一头雾水 求解的方程为 x ( t ) = c 1 + ( c x 0 − 1 ) e ...

  3. MATLAB实现分支定界法求解整数规划

    利用MATLAB实现分支定界法求解整数规划 classdef Model < matlab.mixin.CopyablepropertiesintconlbubsolverAineqbineqA ...

  4. Matlab 隐函数方程求解最小二乘法拟合一阶线性拟合二阶拟合传感器实验

       九层妖塔 起于垒土 Matlab 最小二乘法拟合一阶线性拟合&传感器实验 一.代码 二.数据处理结果 三.Notes 一.代码 %电容传感器位移实验数据 最小二乘法一阶线性拟合 x = ...

  5. Matlab之代数方程求解:方程组求根

    Matlab之代数方程求解:方程组求根 目录 方程组求根 1.solve( )求方程组的解 2.求解指数方程和对数函数方程 方程组求根 1.solve( )求方程组的解 (1)如求 eq1 = 'w ...

  6. matlab用符号函数求解方程,Matlab符号代数方程求解函数的改进及其应用

    第 27卷第 7期 计算机应用与软件 Vol127 No. 7 2010年 7月 ComputerApplications and Software Jul. 2010 Matlab符号代数方程求解函 ...

  7. 共轭梯度法matlab实验报告,用matlab实现共轭梯度法求解实例.doc

    用matlab实现共轭梯度法求解实例.doc 用MATLAB 实现共轭梯度法求解实例 康福 201103710031 1.无约束优化方法 1.1 无约束优化方法的必要性 一般机械优化设计问题,都是在一 ...

  8. matlab两个多项式相除,C++和MATLAB混合编程求解多项式系数(矩阵相除)

    摘要:MATLAB对于矩阵处理是非常高效的,而C++对于矩阵操作是非常麻烦的,因而可以采用C++与MATLAB混合编程求解矩阵问题. 主要思路就是,在MATLAB中编写函数脚本并使用C++编译为dll ...

  9. matlab龙格库塔法求通解,基于matlab及龙格库塔法求解布拉修斯方程.doc

    基于matlab及龙格库塔法求解布拉修斯方程 Runge-Kutta法求解布拉修斯解 摘要 薄剪切层方程主要有三种解法,即相似解,非相似条件下对偏微分方程组的数值解和近似解.布拉修斯解是布拉修斯于19 ...

  10. Matlab随笔之求解线性方程

    原文:Matlab随笔之求解线性方程 理论知识补充: %矩阵除分为矩阵右除和矩阵左除. %矩阵右除的运算符号为"/",设A,B为两个矩阵,则"A/B"是指方程X ...

最新文章

  1. Java中System.getProperty()的参数
  2. get_headers()请求https报错解决思路
  3. 《剑指offer》二叉树镜像
  4. 第一行代码学习笔记第三章——UI开发的点点滴滴
  5. mysql count 排序_SQL进阶排序和窗口函数
  6. MySQL报错 Packet for query is too large,server向mysql发送的数据包大小超过mysql限制
  7. ssh (安全外壳协议)Secure Shell 百度百科
  8. echarts echarts.js:440 Uncaught TypeError: Cannot read properties of null (reading ‘toFixed‘)
  9. 【3005】拦截导弹问题(noip1999)
  10. 冒泡排序c++_学习笔记-详解冒泡排序
  11. Xshell6下载安装
  12. iOS百度地图路径规划功能(对官网文档的理解)
  13. Vue elementUI中的Breadcrumb面包屑
  14. 万恶的ie8 hack问题
  15. no theme named ‘sphinx_rtd_theme‘ found (missing theme.conf?)
  16. 复习删除数组中的重复元素
  17. visual studio编译报错“常量中有换行符”等字符串中的错误
  18. JavaScript 自执行函数(闭包)
  19. 【学渣无能狂怒】今天也是为了学习落泪的一天--每天一遍Java再见
  20. C语言求素数两种方法

热门文章

  1. coco2d-x 或者 creator 实现物体点击后的果冻效果
  2. 外包干了三年,废了。
  3. 全网首发Modown主题8.31开心版
  4. Java:Stream三部曲(三):Stream流处理器
  5. 电商用户行为分析-大数据
  6. java.util.Date中的loe_有趣的widget-日期和时间
  7. 微软各产品的生命周期
  8. Pytorch——报错解决:匈牙利匹配
  9. 企业财务管理中的数据分析应用
  10. 2021-01-09