精华内容
下载资源
问答
  • 解方程组的C语言代码

    2019-05-05 21:28:26
    用于解一元二次方程组的c语言程序,可以用来提交作业,可以判别方程根是否存在
  • 列主元消去法解方程组比起全主元,计算过程要简单很多,里面包括matlab代码及其注释说明,还有一个解方程组的例子,希望对大家有帮助。
  • MATLAB解方程组

    千次阅读 多人点赞 2019-01-21 23:13:17
    解单一方程 S=solve(eqn,var) 解等式eqn关于自变量var的解。var省略则自动检测(默认为x)。其中eqn可以是等式,也可以是函数,若为函数,则默认为eqn=...解方程组 Y=solve(eqns,vars) eqns是方程组的符号向量,即[e...

    解单一方程

    S=solve(eqn,var)

    解等式eqn关于自变量var的解。var省略则自动检测(默认为x)。其中eqn可以是等式,也可以是函数,若为函数,则默认为eqn==0的解。

    S=vpasolve(eqn,[a b])

    计算eqn在区间 [ a , b ] [a,b] [a,b]上的解,但是只能是数不能含有符号参数。在这里插入图片描述

    解方程组

    Y=solve(eqns,vars)

    eqns是方程组的符号向量,即 [ e q n 1 , e q n 2 , . . . ] [eqn1,eqn2,...] [eqn1,eqn2,...]。var是未知数向量,Y是所求结果。如果只写一个Y,则返回的Y是结构体,如果将Y写成 [ s o l 1 , s o l 2 , . . . ] [sol1,sol2,...] [sol1,sol2,...]的形式,则每个元素为var中的解。
    在这里插入图片描述
    在这里插入图片描述

    方程组的解带入函数

    当方程组的解是结构体Y时,要计算函数 f f f的值,可以使用语句:
    A = s u b s ( f , Y ) A=subs(f,Y) A=subs(f,Y),即可将方程得到的解带入 f f f
    在这里插入图片描述

    展开全文
  • matlab 解方程组

    万次阅读 多人点赞 2019-09-23 16:52:36
    1、解方程最近有多人问如何用matlab解方程组的问题,其实在matlab中解方程组还是很方便的,例如,对于代数方程组Ax=b(A为系数矩阵,非奇异)的求解,MATLAB中有两种方法:(1)x=inv(A)*b — 采用求逆运算解方程组;...

    1、解方程

    最近有多人问如何用matlab解方程组的问题,其实在matlab中解方程组还是很方便的,例如,对于代数方程组Ax=b(A为系数矩阵,非奇异)的求解,MATLAB中有两种方法:
    (1)x=inv(A)*b — 采用求逆运算解方程组;

      (2)x=A\B — 采用左除运算解方程组

    PS:使用左除的运算效率要比求逆矩阵的效率高很多~

    例:
    x1+2x2=8
    2x1+3x2=13
    >>A=[1,2;2,3];b=[8;13];
    >>x=inv(A)*b
    x =
    2.00
    3.00
      >>x=A\B
    x =
    2.00
    3.00;
    即二元一次方程组的解x1和x2分别是2和3。

    对于同学问到的用matlab解多次的方程组,有符号解法,方法是:先解出符号解,然后用vpa(F,n)求出n位有效数字的数值解.具体步骤如下:
    第一步:定义变量syms x y z ...;
    第二步:求解[x,y,z,...]=solve('eqn1','eqn2',...,'eqnN','var1','var2',...'varN');
    第三步:求出n位有效数字的数值解x=vpa(x,n);y=vpa(y,n);z=vpa(z,n);...。
    如:解二(多)元二(高)次方程组:
    x^2+3*y+1=0
    y^2+4*x+1=0
    解法如下:
    >>syms x y;
    >>[x,y]=solve('x^2+3*y+1=0','y^2+4*x+1=0');
    >>x=vpa(x,4);
    >>y=vpa(y,4);
    结果是:
    x =
    1.635+3.029*i
    1.635-3.029*i
    -.283
    -2.987
    y =
    1.834-3.301*i
    1.834+3.301*i
    -.3600
    -3.307。
    二元二次方程组,共4个实数根;


    还有的同学问,如何用matlab解高次方程组(非符号方程组)?举个例子好吗?
    解答如下:
    基本方法是:solve(s1,s2,…,sn,v1,v2,…,vn),即求表达式s1,s2,…,sn组成的方程组,求解变量分别v1,v2,…,vn。
    具体例子如下:
    x^2 + x*y + y = 3
    x^2 - 4*x + 3 = 0
    解法:
    >> [x,y] = solve('x^2 + x*y + y = 3','x^2 - 4*x + 3 = 0')
    运行结果为
    x =
    1 3
    y =
    1 -3/2

    即x等于1和3;y等于1和-1.5


    >>[x,y] = solve('x^2 + x*y + y = 3','x^2 - 4*x + 3= 0','x','y')
    x =
    1 3
    y =
    1 -3/2
    结果一样,二元二方程都是4个实根。

    通过这三个例子可以看出,用matlab解各类方程组都是可以的,方法也有多种,只是用到解方程组的函数,注意正确书写参数就可以了,非常方便。

    cite from:http://bbs.seu.edu.cn/pc/pccon.php?id=950&nid=14498&tid=0

    2、变参数非线性方程组的求解
    对于求解非线性方程组一般用fsolve命令就可以了,但是对于方程组中某一系数是变化的,该怎么求呢?

    %定义方程组如下,其中k为变量
    function F = myfun(x,k)
    H=0.32;
    Pc0=0.23;W=0.18;
    F=[Pc0+H*(1+1.5*(x(1)/W-1)-0.5*(x(1)/W-1)^3)-x(2);
    x(1)-k*sqrt(x(2))];

    %求解过程
    H=0.32;
    Pc0=0.23;W=0.18;
    x0 = [2*W; Pc0+2*H]; % 取初值
    options = optimset('Display','off');
    k=0:0.01:1; % 变量取值范围[0 1]
    for i=1:1:length(k)
    kk=k(i);
    x = fsolve(@(x) myfun(x,kk), x0, options);%求解非线性方程组
    x1(i)=x(1);
    x2(i)=x(2);
    end
    plot(k,x1,'-b',k,x2,'-r');
    xlabel('k')
    legend('x1','x2')

    cite from:http://forum.simwe.com/archiver/tid-836299.html

    3、非线性方程数值求解

    matlab里solve如何使用,是否有别的函数可以代替它.

    matlab里我解y=9/17*exp(-1/2*t)*17^(1/2)*sin(1/2*17^(1/2)*t)=0这样的方程为什么只得到0这一个解,如何可以的到1/2*17^(1/2)*t=n*(pi)这样一族解??




    在matlab里面solve命令主要是用来求解代数方程(即多项式)的解,但是也不是说其它方程一个也不能解,不过求解非代数方程的能力相当有限,通常只能给出很特殊的实数解。(该问题给出的方程就是典型的超越方程,非代数方程)

    从计算机的编程实现角度讲,如今的任何算法都无法准确的给出任意非代数方程的所有解,但是我们有很多成熟的算法来实现求解在某点附近的解。matlab也不例外,它也只能给出任意非代数方程在某点附近的解,函数有两个:fzero和fsolve,具体用法请用help或doc命令查询吧。如果还是不行,你还可以将问题转化为非线性最优化问题,求解非线性最优化问题的最优解,可以用的命令有:fminbnd, fminsearch, fmincon等等。




    *非线性方程数值求解

    *单变量非线性方程求解

    在MATLAB中提供了一个fzero函数,可以用来求单变量非线性方程的根。该函数的调用格式为:

    z=fzero('fname',x0,tol,trace)

    其中fname是待求根的函数文件名,x0为搜索的起点。一个函数可能有多个根,但fzero函数只给出离x0最近的那个根。tol控制结果的相对精度,缺省时取tol=eps,trace�指定迭代信息是否在运算中显示,为1时显示,为0时不显示,缺省时取trace=0。

    例 求f(x)=x-10x+2=0在x0=0.5附近的根。

    步骤如下:

    (1) 建立函数文件funx.m。

    function fx=funx(x)

    fx=x-10.^x+2;

    (2) 调用fzero函数求根。

    z=fzero('funx',0.5)

    z =

    0.3758



    **非线性方程组的求解

    对于非线性方程组F(X)=0,用fsolve函数求其数值解。fsolve函数的调用格式为:

    X=fsolve('fun',X0,option)

    其中X为返回的解,fun是用于定义需求解的非线性方程组的函数文件名,X0是求根过程的初值,option为最优化工具箱的选项设定。最优化工具箱提供了20多个选项,用户可以使用optimset命令将它们显示出来。如果想改变其中某个选项,则可以调用optimset()函数来完成。例如,Display选项决定函数调用时中间结果的显示方式,其中‘off’为不显示,‘iter’表示每步都显示,‘final’只显示最终结果。 optimset(‘Display’,‘off’)将设定Display选项为‘off’。

    例 求下列非线性方程组在(0.5,0.5) 附近的数值解。

    (1) 建立函数文件myfun.m。

    function q=myfun(p)

    x=p(1);

    y=p(2);

    q(1)=x-0.6*sin(x)-0.3*cos(y);

    q(2)=y-0.6*cos(x)+0.3*sin(y);

    (2) 在给定的初值x0=0.5,y0=0.5下,调用fsolve函数求方程的根。

    x=fsolve('myfun',[0.5,0.5]',optimset('Display','off'))

    x =

    0.6354

    0.3734

    将求得的解代回原方程,可以检验结果是否正确,命令如下:

    q=myfun(x)

    q =

    1.0e-009 *

    0.2375 0.2957

    可见得到了较高精度的结果。

    cite from:http://blog.sina.com.cn/s/blog_56ef652d0100ebew.html

    4、fsolve函数解方程

    [X,FVAL,EXITFLAG,OUTPUT,JACOB]=FSOLVE(FUN,X0,...) returns the
    Jacobian of FUN at X.

    Examples
    FUN can be specified using @:
    x = fsolve(@myfun,[2 3 4],optimset('Display','iter'))

    where myfun is a MATLAB function such as:

    function F = myfun(x)
    F = sin(x);

    FUN can also be an anonymous function:

    x = fsolve(@(x) sin(3*x),[1 4],optimset('Display','off'))

    If FUN is parameterized, you can use anonymous functions to capture the
    problem-dependent parameters. Suppose you want to solve the system of
    nonlinear equations given in the function myfun, which is parameterized
    by its second argument c. Here myfun is an M-file function such as

    function F = myfun(x,c)
    F = [ 2*x(1) - x(2) - exp(c*x(1))
    -x(1) + 2*x(2) - exp(c*x(2))];

    To solve the system of equations for a specific value of c, first assign the
    value to c. Then create a one-argument anonymous function that captures
    that value of c and calls myfun with two arguments. Finally, pass this anonymous
    function to FSOLVE:

    c = -1; % define parameter first
    x = fsolve(@(x) myfun(x,c),[-5;-5])

    转自:http://blog.sina.com.cn/s/blog_7af11b490100t1hk.html

    转载于:https://www.cnblogs.com/bixiongquan/p/3207825.html

    展开全文
  • 用C#最小二乘法拟合任意次曲线,解线性方程组,三元一次方程组,高斯方程解方程参数等,代码中有注释,详细步骤介绍,且未引用第三方库,纯手敲代码,下载后可用VS直接运行
  • jaccobi雅可比迭代解方程组算法,数值分析上机作业,数值计算上机作业
  • Python解方程组

    千次阅读 2019-02-23 22:36:30
    既然可以解方程),就一定可以解微分方程()。 from sympy import * from sympy.abc import a,b,c,x,y aa=solve([x+a],[x]) 得到x的解 > 需要数值解?很简单,在某个数字后面加一个小数点就行了。 &...

    解方程的基本思想是:
    aa = solve([f],[x])
    f是方程,x是变量,这个代码解的是关于x的方程f=0
    既然可以解方程(组),就一定可以解微分方程(组)。
    from sympy import *
    from sympy.abc import a,b,c,x,y
    aa=solve([x+a],[x]) 得到x的解

    > 需要数值解?很简单,在某个数字后面加一个小数点就行了。
    
    > aa = solve([sin(x+y),cos(x-3.*y)],[x,y])
    

    解二次方程

    aa = solve([x**2+a**2],[x])
    

    解三次方程

    aa = solve([x**3+a**3],[x])
    

    解四次方程是比较费劲

    aa = solve([x**3+c*x+1],[x])
    

    解超越方程:

    aa = solve([sin(x)],[x])
    

    解方程组:

    aa = solve([x+y-3,2x+3y-12],[x,y])
    for i in aa:
    
        for j in i:
    
            print(j,"\n")
    

    解超越方程

    aa = solve([sin(x+y),cos(x-3*y)],[x,y])
    for i in aa:
    
        print(i)
    
    展开全文
  • 用python编写的比较简洁的LU分解法解方程组
  • Mathematica 解方程组 自带例程: 这里是具有两个未知量的简单线性方程: Solve[{a x + b y == 1, x - y == 2}, {x, y}] 不需要是线性方程也可以解。 如果输出是空,如下 - In[2]:= Solve[{l1 + lm == k1, l2 + ...

    Mathematica 解方程组 (数字方程组&含表达式的方程组)

    1. 数字方程组

    参考自带例程:
    这里是具有两个未知量的简单线性方程:

    Solve[{a x + b y == 1, x - y == 2}, {x, y}]
    
    • 不是线性方程也可以解。
    • 如果输出是空,如下

    Mathematica 解方程组 输出为空

    - In[2]:= Solve[{l1 + lm == k1, l2 + lm == k2, l1 + (l2 lm/(l2 + lm)) == k3,   l2 + (l1 lm/(l1 + lm)) == k4}, {l1, l2, lm}]
    - Out[2]={}
    
    • 原因是输入的方程数多于所需的方程数,如图中三个未知量给了四个方程。删除一个方程后可以正常求解。

    2. 含表达式的方程组

    解含表达式的方程组,可能最常见的应用是化简方程组,即通过代入求解的方法得到关于某两个表达式之间的关系。以下面这个例子为例:

    在这里插入图片描述
    假设我们的目的整理上述方程组中的表达式,化简求得 I 2 I_2 I2 V e q V_{eq} Veq之间的关系。
    这个问题可以看做两个方程联立,消除 I 1 I_1 I1

    • Eliminate函数:
    Eliminate[
     Veq == (I x1 + r1) i1 - I w M i2 &&   0 == (I x2 + r2) i2 - I w M i1 + req i2, i1]
    

    其中:I 是虚数。即方程组中的 j 。
    刚接触Mathematica的朋友请注意,变量名之间的空格可以代替*号,接近自然语言书写。

    • 运行得到:
    i2 (-I r1 r2 - I r1 req - I M^2 w^2 + r2 x1 + req x1 + r1 x2 +  I x1 x2) == M Veq w
    
    • 使用Solve函数整理参数:
    Solve[i2 (-I r1 r2 - I r1 req - I M^2 w^2 + r2 x1 + req x1 + r1 x2 +   I x1 x2) == M Veq w, i2]
    
    • 运行得到
      在这里插入图片描述
      即求得 I 2 I_2 I2 V e q V_{eq} Veq之间的关系。
    展开全文
  • 六种用Matlab解方程组的方法-equation.rar 这里有六种用Matlab解方程组的方法:直接法、LU分解法、QR分解法、Cholesky分解法、Jacobi迭代法、Gauss-Serdel迭代法。 所含文件: Figure34.jpg
  • 矩阵解方程组

    千次阅读 2020-12-29 13:01:36
    矩阵解方程组 方程组: 3x+2y=7−6x+6y=6 3x +2y = 7 \\ -6x+6y = 6 3x+2y=7−6x+6y=6 用矩阵表示: [32−66]∗[xy]=[76] \begin{bmatrix} 3 & 2 \\ -6 & 6 \\ \end{bmatrix} * \begin{bmatrix} x \\ y \\ \...
  • VB 解方程组 很有意思的程序 VB解方程组,可以解二元一次方程组,三元一次方程组。
  • 线性方程组的C++类库,能够解决大多数线性代数问题,比如矩阵计算,线性方程组的求解等
  • Mathcad Prime教程-solve解方程组

    千次阅读 2021-02-19 22:48:18
      在Mathcad中可以使用solve运算符求解方程组。操作如下: 首先在工具栏中插入solve运算符: 然后在占位符中输入中括号【】,在括号里Shift+Enter可以另起一行,依次输入所有方程: 光标定位到solve后,输入逗号...
  • matlab非线性方程组

    2020-04-28 16:52:17
    matlab非线性方程组 梯度下降 牛顿法 matlab非线性方程组 梯度下降 牛顿法 matlab非线性方程组 梯度下降 牛顿法
  • 一、方程组f (x)含三角函数、指数函数、或其他超越函数时,就是超越方程。二、点迭代的步骤与问题可以通过函数图像来确定函数实根的个数。迭代步骤:方 程 : f (x) = 0构造迭代函数:x = jФ (x) 经过简单变形产生...
  •   数学上,高斯消元法(或译:高斯消去法),是线性代数规划中的一个算法,可用来为线性方程组求解。但其算法十分复杂,不常用于加减消元法,求出矩阵的秩,以及求出可逆方阵的逆矩阵。不过,如果有过百万条等式时...
  • Matlab解方程组solve

    千次阅读 2020-10-17 20:55:11
    定义方程组 eq1=y==3*x+5; eq2=y==4*x+6; 求解方程组 s=solve(eq1,eq2,[x,y]); s.x s.y 注意老版本使用的是 s=solve('eq1','eq2','x','y') 这种表示已经淘汰了. 另外s.x是sym格式, 如果拿到真正的值 double(s....
  • 迭代法解方程组

    千次阅读 2019-04-25 22:11:17
    问题描述: 使用迭代法求解方程组初始值为0,0,0 问题分析: 将方程组的各个未知数分别...迭代法解方程组 输入: 输入题目参数 #include<cstdio> double x=0,y=0,z=0; void fact(double x1,double x2,dou...
  • svd线性方程组

    2018-09-30 01:35:29
    用过svd的方法线性方程组,该处程序是三组方程,然后出结果
  • 利用高斯消去法求解线性方程组,也可以选择使用列主元素法求解线性方程组,可限制运算位数
  • Matlab线性方程组的迭代法-线性方程组的迭代法.rar 线性方程组的迭代法 一起分享 附件内容: Figure6.jpg
  • 解偏微分方程的的matlab 代码 追赶法解方程组
  • 1. 用高斯消元法解方程组: 21.0x1+67.0x2+88.0x3+73.0x4 =141.0 76.0x1+63.0x2 + 7.0x3+20.0x4 =109.0 85.0x2+56.0x3+54.0x4 =218.0 19.3x1+43.0x2+30.2x3+29.4x4 =93.7
  • MATLAB 列主元消去法 解方程组

    千次阅读 2019-09-04 15:13:23
    %把方程组系数矩阵A化为同的上三角矩阵 b=B(1:n,n+1); A=B(1:n,1:n); X(n)=b(n)/A(n,n); for q=n-1:-1:1 X(q)=(b(q)-sum(A(q,q+1:n)*X(q+1:n)))/A(q,q); end %从xn至x1逐个求解上三角方程组 else ...
  • 【matlab】解方程组

    万次阅读 多人点赞 2018-02-01 11:33:55
    在matlab中解方程组是很方便的 例如,对于代数方程组Ax=b(A为系数矩阵,非奇异)的求解,MATLAB中有两种方法: (1)x=inv(A)*b — 采用求逆运算解方程组; (2)x=A\b — 采用左除运算解方程组。 例: x1+2x2=8...
  • 非线性方程组

    2018-11-24 12:57:09
    求解非线性方程组,计算机方式,动态排斥技术。 Solving Nonlinear Equations System With Dynamic Repulsion-Based Evolutionary Algorithms
  • 雅克比迭代法求解线性方程组c++源代码,结合https://blog.csdn.net/weixin_41788456/article/details/102920383文章学习,内附有输出结果。
  • 解方程组的c++代码

    2014-08-04 16:31:07
    解方程组的c++代码

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 80,108
精华内容 32,043
关键字:

解方程组