精华内容
下载资源
问答
  • matlab求解非线性方程组,
    2021-04-20 04:11:16

    共回答了17个问题采纳率:76.5%

    matlab源程序为:

    S=solve('x1-(7+x2^2+4*x3)/12=0','x2-(11-x1^2+x3)/10=0','x3-(8-x2^3)/10=0')

    disp(S.x1)

    disp(S.x2)

    disp(S.x3)

    S =

    x1:[6x1 sym]

    x2:[6x1 sym]

    x3:[6x1 sym]

    .90553960985591352219643092016224

    4.7108198630581133928941167091861-7.9450374515536219172121852424559*i

    -5.2695158922292528617657194964984+3.8713841417380648226893682867298*i

    9.2118524484863654155467746544621

    -5.2695158922292528617657194964984-3.8713841417380648226893682867298*i

    4.7108198630581133928941167091861+7.9450374515536219172121852424559*i

    1.0852191683700305323160050352309

    5.9371258424045108656830408249121+3.9341420043515601411303925003274*i

    -1.1927328487972209635047755512223+5.5738872132188748196832209089117*i

    -5.5740051555846103366725355826107

    -1.1927328487972209635047755512223-5.5738872132188748196832209089117*i

    5.9371258424045108656830408249121-3.9341420043515601411303925003274*i

    .67219366871830539734777606306666

    7.4394620996382997437406777575615-35.513860435523229429047897408397*i

    -10.147145922416523554997256893972+14.938231612562670240880881978453*i

    18.118173976838142225165382209754

    -10.147145922416523554997256893972-14.938231612562670240880881978453*i

    7.4394620996382997437406777575615+35.513860435523229429047897408397*i

    1年前

    2

    更多相关内容
  • matlab解非线性方程组

    2020-04-28 16:52:17
    matlab解非线性方程组 梯度下降 牛顿法 matlab解非线性方程组 梯度下降 牛顿法 matlab解非线性方程组 梯度下降 牛顿法
  • MATLAB求解非线性方程组 fsolve源程序代码
  • 使用牛顿方法解非线性方程组 雅可比 迭代 jacobi matlab代码
  • matlab编程 求解非线性方程方程组的多种方法
  • mulStablePoint 用不动点迭代法求非线性方程组的一个根 mulNewton 用牛顿法法求非线性方程组的一个根 mulDiscNewton 用离散牛顿法法求非线性方程组的一个根 ...mulDamp 用阻尼最小二乘法求非线性方程组的一组
  • matlab求解非线性方程组代码,用不动点迭代法,用牛顿法法,离散牛顿法法,牛顿-雅可比迭代法,牛顿-SOR迭代法,牛顿下山法,两点割线法,拟牛顿法等方法求非线性方程组的一个根。
  • matlab 解非线性方程组 (牛顿法 弦割法 布罗登法)
  • MATLAB求解非线性方程组 fsolve源程序代码
  • matlab编程 求解非线性方程方程组的多种方法
  • Wegstein法注意事项 应注意如果x1和x2两点选择不当则连线的斜率等于1与直线y=x无交点从而迭代无法进行这就是Wegstein法应当避免的陷井引入一个量C Wegstein法注意事项 令q1-C 当q0时Wegstein法退化为简单的不动点...
  • 文章目录MATLAB求解非线性方程组(牛顿拉夫逊方法)Equation.m 函数牛顿拉夫逊方法迭代求解 MATLAB求解非线性方程组(牛顿拉夫逊方法) Equation.m 函数 这个函数用来写非线性方程组,注意整理成标准形式 function ...

    MATLAB求解非线性方程组(牛顿拉夫逊方法)

    Equation.m 函数

    这个函数用来写非线性方程组,注意整理成标准形式

    function [f,variable]=Equation(~) 
    %定义非线性方程组,方程组右端项为0  
    syms x1 x2  x3 x4 %x5 x6 x7 x8 x9 x10 x11 x12
    f1=x1+x1*x2+x3-8*x4-8;
    f2=x3+x2+x1*x3+x4*x1+x4;
    f3=x1*x1+x3*x4-5+x3+x4;
    f4=x2+x4+x3*x4;
    %f5=x6*x5*x4;
    %f6=
    
    %f=[f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 ];
    f=[f1 f2 f3 f4];
    variable=[x1 x2 x3 x4];
    end
    

    牛顿拉夫逊方法迭代求解

    clear
    [f,variable]=Equation()
    
    N=5;%迭代次数
    [row,size]=size(variable);
    x0=zeros(size,1); %初值
    for i =1:N
    %     delta_y=zeros(size,1)-double(subs(Equation(),...
    %     {'x1' 'x2' 'x3' 'x4' 'x5' 'x6' 'x7' 'x8' 'x9' 'x10' 'x11' 'x12'},...
    %     {x0(1) x0(2) x0(3) x0(4) x0(5) x0(6) x0(7) x0(8) x0(9) x0(10) x0(11) x0(12)})); 
    %     J=double(subs(jacobian(f,variable);...
    %       {'x1' 'x2' 'x3' 'x4' 'x5' 'x6' 'x7' 'x8' 'x9' 'x10' 'x11' 'x12'},...
    %     {x0(1) x0(2) x0(3) x0(4) x0(5) x0(6) x0(7) x0(8) x0(9) x0(10) x0(11) x0(12)}));  
        delta_y=zeros(size,1)-double(subs(Equation(), ...
        {'x1' 'x2' 'x3' 'x4' }, ...
        {x0(1) x0(2) x0(3) x0(4)}))'; 
        J=double(subs(jacobian(f,variable), ...
          {'x1' 'x2' 'x3' 'x4' }, ...
        {x0(1) x0(2) x0(3) x0(4)}));
        delta_x=J\delta_y
        x0=x0+delta_x;
        
        if(norm(delta_y,"inf")<0.5)%判定收敛
            disp(i);
            disp(x0);
            break;
        end
    end
    

    本例运行结果输出:

    [x1 + x3 - 8*x4 + x1*x2 - 8, x2 + x3 + x4 + x1*x3 + x1*x4, x1^2 + x3 + x4 + x3*x4 - 5, x2 + x4 + x3*x4]
    [x1, x2, x3, x4]
    delta_x = 4×1    
        48
        -5
         0
         5
    
    delta_x = 4×1    
      -23.9728
        2.5888
       -0.0210
       -2.4835
    
    delta_x = 4×1    
      -11.9224
        1.5449
       -0.2289
       -1.0432
    
    delta_x = 4×1    
       -4.9237
       10.1295
      -12.8115
       11.3410
    
    delta_x = 4×1    
       -1.9197
        1.8696
        5.1976
       -6.3692
    
    delta_x = 4×1    
       -0.7955
       -2.1395
        2.5462
       -2.7440
    
    delta_x = 4×1    
       -0.3771
       -1.5859
        1.1497
       -0.9999
    
    delta_x = 4×1    
       -0.1128
       -0.4665
        0.3133
       -0.2430
    
    delta_x = 4×1    
       -0.0095
       -0.0376
        0.0249
       -0.0184
    
         9
        3.9665
        6.9032
       -3.8297
        2.4397
    
    展开全文
  • Matlab 解非线性方程组

    万次阅读 2020-06-07 15:39:24
    Matlab 算是一个比较好的计算工具了,偶尔可以用用,现解方程组如下: syms a b c f1 = a*exp(0)-c f2 = a*exp(481*b)-c-2107/16 f3 = a*exp(962*b)-c-2107 [a b c] = solve([f1 f2 f3]) 之后输出: a = 2107/...

    Matlab 算是一个比较好的计算工具了,偶尔可以用用,现解方程组如下:
    在这里插入图片描述

    syms a b c
    f1 = a*exp(0)-c
    f2 = a*exp(481*b)-c-2107/16
    f3 = a*exp(962*b)-c-2107
    [a b c] = solve([f1 f2 f3])
    

    之后输出:

    a =
    2107/(exp(2log(15)) - 1)
    b =
    log(15)/481
    c =
    2107/(exp(2
    log(15)) - 1)

    ok 啦!

    展开全文
  • 实验四 用 MATLAB 求解非线性优化问题 一实验目的 了解 Matlab 的优化工具箱利用 Matlab 求解非线性优化问题 二相关知识 非线性优化包括相当丰富的内容 们这里就 Matlab 提供的一些函数来介 绍相关函数的用法及其所...
  • 一个简单的Matlab程序,主要通过二分法求解非线性问题,每行代码都做了详细的说明。适合初学者使用。
  • MATLAB求解非线性方程组的五种方法

    千次阅读 多人点赞 2021-02-01 17:10:41
    MATLAB求解非线性方程组的五种方法 求解线性方程分为两种方法–二分法和迭代法 常见的方法一共有5种 二分法 迭代法 牛顿法 割线法 拟牛顿法 Halley法 使用条件 二分法需要知道两个自变量,分别是一个根的两侧 牛顿法...

    MATLAB求解非线性方程组的五种方法

    求解线性方程分为两种方法–二分法和迭代法
    常见的方法一共有5种
    二分法
    迭代法
    牛顿法
    割线法
    拟牛顿法
    Halley法

    使用条件
    二分法需要知道两个自变量,分别是一个根的两侧

    牛顿法迭代法是最常用的方法,收敛性信赖于初值,取不同的初值可以的方程不同的根,函数用的是一阶导数,输入的是一个猜想的可能的值

    割线法给定两个初值再带入计算,比如要在2附近求一个根,那就可以假设这个范围是(1.9,2)
    拟牛顿法这个比较方便,用时最好可以找到一个好的初始值
    Halley法需要知道函数值以及它的一阶求导、二阶求导

    这里我就从计算代码的角度来讲解,在下面也会按照上面这个顺序给出代码,遇到方程组直接带入已知条件就可以得到答案。

    二分法

    基本函数是这样子的:y = dichotomy(fun,a,b,tol);二分法的算法要输入四个变量,fun,a,b,tol:函数,一个根的左右点,tol=1.0e-6

    function y = fun(x)
    y = x^3 - 5 * x + 4.272;
    

    上面这个就是定义的fun,每次的输入的方程不同,第一条不动,直接改第二行就可以的。比如这里我们要计算的方程y = x^3 - 5 * x + 4.272;
    我们是可以通过简单计算得到一个根的两侧分别是1和1.3

    那在窗口指令指令中输入x=dichotomy(’fun‘,1,1.3,1.0e-6)就可以得到结果

    function y = dichotomy(fun,a,b,tol)
    if nargin < 4
        tol = 1.0e-5;
    end
    n = 1;
    if feval(fun,a)*feval(fun,b)<0
        c = (a+b)/2;
        while (abs(b-c)>tol) && (abs(feval(fun,c))>tol)
            if (feval(fun,c)*feval(fun,a)>0)
                a = c;
                c = (a+b)/2;
            elseif (feval(fun,c)*feval(fun,a)<0)
                b = c;
                c = (a+b)/2;
            else
                y = c;
                tol = 100;
            end
            n = n + 1;
        end
        y = c;
    elseif feval(fun,a)==0
        y = a;
    elseif feval(fun,b)==0
        y = b;
    else
        disp('there may not be a root in the interval');
    end
    n
    
    function y = fun(x)
    y = x^3 - 5 * x + 4.272;
    

    牛顿法
    还是用刚才那道题,y = x^3 - 5 * x + 4.272,一阶导是y = 3 * x^2 - 5;

    function y = dfun(x)
    y = 3 * x^2 - 5;
    

    下面的是具体的算法,根据x = newton(x0,tol),我们只需要输入一个我们猜想的值就可以。但是有一定的误差

    function x = newton(x0,tol)
    if nargin < 2
        tol = 1.0e-5;
    end
    x = x0 - fun(x0)/dfun(x0);
    n = 1; 
    while (norm(x-x0)>tol) && (n<1000)
        x0 = x;
        x = x0 - fun(x0)/dfun(x0);
        n = n + 1; 
    end
    n
    

    割线法

    这里我们用割线法求y = x^3 - 5 * x + 4.272在方程x=2的根,输入上要用两个初始值,比如说现在来计算就可以输入x=secant(2,1.9,10e-6)

    function x = secant(x0,x1,tol)
    if nargin < 3
        tol = 1.0e-5;
    end
    x = x0 - fun(x0) * (x0 - x1) / (fun(x0) - fun(x1));
    n = 1;
    while (abs(x0-x1) > tol) && (n <= 1000)
        x1 = x0;
        x0 = x;
        x = x0 - fun(x0) * (x0 - x1) / (fun(x0) - fun(x1));
        n = n + 1;
    end
    n
    

    拟牛顿法

    这里我们可以直接找到一个初始值输入,比如说broyden2,10e-6),如果不知道不确定也没关系,至少要知道一个范围。比如说给个范围(0.5,0.5)有下面这个函数

    function y = funm(x)
    y(1,1) = x(1,1) - 0.7 * sin(x(1,1)) - 0.2 * cos(x(2,1));
    y(2,1) = x(2,1) - 0.7 * cos(x(1,1)) + 0.2 * sin(x(2,1));
    

    那就可以输入x = broyden(x0,tol)

    function x = broyden([0.50.5],tol)
    if nargin < 2
        tol = 1.0e-5;
    end
    A = eye(size(x0,1));
    x = x0 - A \ funm(x0);
    n = 1;
    while (norm(x - x0) > tol) && (n < 1000)
        x0 = x;
        x = x0 - A \ funm(x0);
        p = x - x0;
        q = funm(x) - funm(x0);
        A = A + (q - A*p)*p'/norm(p)^2;
        n = n + 1;
    end
    n
    

    Halley法

    这个要求二阶导,比如说第一个道题,y = x^3 - 5 * x + 4.272;,二阶导数是下面这个输入

    function y = d2fun(x)
    y = 6 * x;
    

    最后输入x = halley(1,10e-6)就可以计算出一个结果

    function x = halley(x0,tol)
    if nargin < 2
        tol = 1.0e-5;
    end
    m = size(x0,1);
    x = x0 - (eye(m) - 1/2 * (dfun(x0) \ d2fun(x0)) * (dfun(x0) \ fun(x0))) \ ...
        (dfun(x0) \ fun(x0));
    n = 1;
    while (norm(x - x0) > tol) && (n < 1000)
        x0 = x;
        x = x0 - (eye(m) - 1/2 * (dfun(x0) \ d2fun(x0)) * (dfun(x0) \ fun(x0))) \ ...
        (dfun(x0) \ fun(x0));
        n = n + 1;
    end
    n
    
    
    展开全文
  • MATLAB求解非线性方程组 fsolve源程序代码.zip实际问题建模MATLAB源程序代码下载MATLAB求解非线性方程组 fsolve源程序代码.zip实际问题建模MATLAB源程序代码下载MATLAB求解非线性方程组 fsolve源程序代码.zip实际...
  • MATLAB求解非线性方程组 fsolve源程序代码 部分源码 function equation() global sigma mu T lambda sigma=5; %定义sigma的值 mu=0.4; %定义mu的值 T=1.7; %定义T的值 N=1;
  • 如何用matlab求解非线性微分方程组(基于龙格库塔的数值微分算法)?.docx
  • 资源名:MATLAB求解非线性方程组 fsolve源程序代码.zip 资源类型:matlab项目全套源码 源码说明: 全部项目源码都是经过测试校正后百分百成功运行的,如果您下载后不能运行可联系我进行指导或者更换。 适合人群:...
  • 基于matlab求解非线性方程组 fsolve
  • MATLAB学习研究,转MATLAB牛顿法求解非线性方程组 源程序代码(1).rar
  • 该函数试图求解 f(x) = 0,其中 f 是一个向量函数。 使用 Broyden 的伪牛顿方法,其中在每个迭代步骤更新近似雅可比行列式,不使用额外的函数评估。 可选边界将搜索保持在矩形区域内。 优化工具箱中的 fsolve 更强大...
  • 1.方程组的有性2.方程组解是否唯一3.x0的选取,如果不唯一,不同的x0可能会得到不同的fsolve -Solve system of nonlinearequationsEquationSolves a problem specified byF(x) = 0for x, where x is a vector ...
  • 1、方程最近有多人问如何用matlab解方程组的问题,其实在matlab解方程组还是很方便的,例如,对于代数方程组Ax=b(A为系数矩阵,奇异)的求解MATLAB中有两种方法:(1)x=inv(A)*b —采用求逆运算解方程组;...
  • matlab求解非线性方程组的几种方法之程序,matlab如何求解非线性方程组,matlab源码.rar
  • matlab求解非线性方程组的几种方法之程序,matlab如何求解非线性方程组,matlab源码.zip

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,781
精华内容 3,512
关键字:

matlab求解非线性方程组

matlab 订阅