精华内容
下载资源
问答
  • MATLAB解方程

    2011-11-09 00:01:25
    MATLAB解方程的方法,ppt教学
  • matlab解方程

    2021-07-23 17:48:38
    matlab解方程组,通过编程实战掌握具体应用。包括matlab解方程组前、matlab解方程组中、matlab解方程组后。
  • PAGE / NUMPAGES 第7章 MATLAB解方程与函数极值 7.1 线性方程组求解 7.2 非线性方程数值求解 7.3 常微分方程初值问题的数值解法 7.4 函数极值 7.1 线性方程组求解 7.1.1 直接解法 1利用左除运算符的直接解法 对于...
  • Matlab是一款功能强大的数学软件,我们常常会使用它来解决一些数学难题,但是有时候我们刚装上这个软件的时候,就有一些问题不懂得怎么处理,比如说怎么用Matlab解方程,为了帮助大家解决这个问题,小编整理了以下...

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

    方法/步骤:

    一、解一元方程

    1、先举一例,解方程“x^2+100*x+99=0”。

    在Matlab ”Command Window“中输入如下命令:x=solve(‘x^2+100*x+99=0’,‘x’),见下图。

    af39bab314bf5796ea1922ff30ee74a0.png

    2、回车后,Matlab就求出了这个一元二次方程的解,见下图。

    186beb019396653f3d27d0456408657d.png

    3、再举一例,解一元三次方程“x^3+1=0”。

    在Matlab ”Command Window”中输入如下命令:x=solve(‘x^3+1=0’,‘x’),见下图。

    06154d97b3a747573573b19538ade0a7.png

    4、回车后,Matlab就求出了这个一元三次方程“x^3+1=0”的解,见下图。

    Matlab解出来的解有三个,其中有一个实数解,两个虚数解。

    我们都知道一元三次方程在复数范围内的解有3个,Matlab的解是对的。

    如果我们只要“x^3+1=0”的实数解,我们只要取下面图中的第一个解“-1”。

    c7c28531b4bbd04ed0028316b7bc31d6.png

    二、解二元方程

    首先来求一个二元一次方程组。

    9x+8y=10 式1

    13x+14y=12 式2

    我们一般的解法是代入法,或者加减消去法。比较繁琐。

    这里我们只需输入如下命令即可求出解:[x,y]=solve(‘9*x+8*y=10’,‘13*x+14*y=12’,‘x’,‘y’)。

    7139ff3b64cd3d124a03204cff1f979d.png

    回车后,Matlab就求出了这个二元一次方程组的解,见下图。

    ac2a6ff65a4c6a92fbd0aa5c89d00fec.png

    再来求一个二元非线性方程组

    x^2+y^2=10 式1

    2x+3y=0 式2

    这里我们只需输入如下命令即可求出解:[x,y]=solve(‘x^2+y^2=10’,‘2*x+3*y=0’,‘x’,‘y’)。

    996601df77cc6e30a9e53f174d440a73.png

    x^2+y^2=10 式1

    2x+3y=0 式2

    其实不少人能看出来,上面的二元非线性方程组的解是一个圆与一条直线的交点坐标,我们的一般解法是先消去y,整理成关于x的一元二次方程,然后求出x值,再求出对应y值。

    但这里,我们只用到了上面图片里的的一句命令,就求了这两个交点坐标,见下图。

    66fa5151b2773e1152f1ab44674e12c0.png

    三、解其他方程

    1、解三元方程或更高方程的具体操作步骤我就不再说明了,大家可以参考前面所说的解一元方程到解二元方程的命令的变化,从而类比出来。

    以上就是怎么用Matlab解方程的教程了,教程讲解了解一元方程和解二元方程的方法,剩下的就是解其他方程了,其实解其他方程也是一样,大家可以借鉴解二元方程的方法。

    展开全文
  • 精通matlab解方程
  • 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

    展开全文
  • 《【2018年整理】MATLAB解方程的三个实例》由会员分享,可在线阅读,更多相关《【2018年整理】MATLAB解方程的三个实例(4页珍藏版)》请在金锄头文库上搜索。1、MATLAB 解方程的三个实例1、对于多项式 p(x)=x3-6x2-72x...

    《【2018年整理】MATLAB解方程的三个实例》由会员分享,可在线阅读,更多相关《【2018年整理】MATLAB解方程的三个实例(4页珍藏版)》请在金锄头文库上搜索。

    1、MATLAB 解方程的三个实例1、对于多项式 p(x)=x3-6x2-72x-27,求多项式 p(x)=0 的根,可用多项式求根函数roots(p),其中 p 为多项式系数向量,即p =1,-6,-72,-27p =1.00 -6.00 -72.00 -27.00p 是多项式的 MATLAB 描述方法,我们可用 poly2str(p,x)函数,来显示多项式的形式:px=poly2str(p,x)px =x3 - 6 x2 - 72 x - 27多项式的根解法如下: format rat %以有理数显示 r=roots(p)r =2170/179 -648/113 -769/1980 2、在 M。

    2、ATLAB 中,求解用符号表达式表示的代数方程可由函数 solve 实现,其调用格式为:solve(s,v):求解符号表达式 s 的代数方程,求解变量为 v。例如,求方程(x+2) x=2 的解,解法如下: x=solve(x+2)x=2,x)x =.69829942170241042826920133106081得到符号解,具有缺省精度。如果需要指定精度的解,则: x=vpa(x,3)x =.6983、使用 fzero 或 fsolve 函数,可以求解指定位置(如 x0)的一个根,格式为:x=fzero(fun,x0)或 x=fsolve(fun,x0)。例如,求方程 0.8x+atan(x。

    3、)-=0 在 x0=2 附近一个根,解法如下: fu=(x)0.8*x+atan(x)-pi; x=fzero(fu,2)x =2.4482 或 x=fsolve(0.8*x+atan(x)-pi,2)x =2.4482 当然了,对于该方程也可以用第二种方法求解: x=solve(0.8*x+atan(x)-pi,x)x =2.4482183943587910343011460497668对于第一个例子,也可以用第三种方法求解: F=(x)x3-6*x2-72*x-27F = (x)x3-6*x2-72*x-27 x=fzero(F,10)x =12.1229对于第二个例子,也可以用第三种方法。

    4、: FUN=(x)(x+2)x-2FUN = (x)(x+2)x-2 x=fzero(FUN,1)x =0.6983最近有多人问如何用 matlab 解方程组的问题,其实在 matlab 中解方程组还是很方便的,例如,对于代数方程组 Ax=b(A 为系数矩阵,非奇异)的求解,MATLAB 中有两种方法:(1)x=inv(A)*b 采用求逆运算解方程组;(2)x=Ab 采用左除运算解方程组。例:x1+2x2=8 2x1+3x2=13A=1,2;2,3;b=8;13;x=inv(A)*b x = 2.00 3.00 x=Abx = 2.003.00;即二元一次方程组的解 x1 和 x2 分别是 2。

    5、 和 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);.。如:解二(多)元二(高)次方程组:x2+3*y+1=0y2+4*x+1=0解法如下:syms x y;x,y=solve(x2+3*y+1=0,y2+4*x+1=0);x=vpa(x。

    6、,4);y=vpa(y,4);结果是:x = 1.635+3.029*i1.635-3.029*i-.283-2.987y = 1.834-3.301*i1.834+3.301*i-.3600-3.307。二元二次方程组,共 4 个实数根;还有的同学问,如何用 matlab 解高次方程组(非符号方程组)?举个例子好吗?解答如下:基本方法是:solve(s1,s2,sn,v1,v2,vn),即求表达式 s1,s2,sn 组成的方程组,求解变量分别 v1,v2,vn。具体例子如下:x2 + x*y + y = 3x2 - 4*x + 3 = 0解法: x,y = solve(x2 + x*y + 。

    7、y = 3,x2 - 4*x + 3 = 0)运行结果为 x =1 3y =1 -3/2即 x 等于 1 和 3;y 等于 1 和-1.5或x,y = solve(x2 + x*y + y = 3,x2 - 4*x + 3= 0,x,y)x =1 3y =1 -3/2结果一样,二元二方程都是 4 个实根。通过这三个例子可以看出,用 matlab 解各类方程组都是可以的,方法也有多种,只是用到解方程组的函数,注意正确书写参数就可以了,非常方便1、对于多项式 p(x)=x3-6x2-72x-27,求多项式 p(x)=0 的根,可用多项式求根函数roots(p),其中 p 为多项式系数向量,即p =1,-6,-72,-27p =1.00 -6.00 -72.00 -27.00p 是多项式的 MATLAB 描述方法,我们可用 poly2str(p,x)函数,来显示多项式的形式:px=poly2str(p,x)px =x3 - 6 x2 - 72 x - 27多项式的根解法如下: format rat %以有理数显示 r=roots(p)r =2170/179 -648/113 -769/1980 。

    展开全文
  • matlab解方程、方程组

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


    x^2-4=12,求x:

    syms x;

    f=x^2-4-12;

    solve(f)


    最近有多人问如何用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解各类方程组都是可以的,方法也有多种,只是用到解方程组的函数,注意正确书写参数就可以了,非常方便。

    citefrom: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

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

    citefrom: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 capturethe
    problem-dependent parameters. Suppose you want to solve the systemof
    nonlinear equations given in the function myfun, which isparameterized
    by its second argument c. Here myfun is an M-file function suchas

    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, firstassign the
    value to c. Then create a one-argument anonymous function thatcaptures
    that value of c and calls myfun with two arguments. Finally, passthis anonymous
    function to FSOLVE:

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

    cite from:
    展开全文
  • Matlab解方程实例讲解

    2012-05-09 11:34:42
    Matlab解方程实例讲解,有详细的求解过程以及代码,清楚明白,浅显易懂
  • Matlab教学课件:第7章 MATLAB解方程与函数极值.ppt
  • Matlab教学课件:第6章 MATLAB解方程与函数极值.ppt
  • MATLAB速成教程第7章MATLAB解方程与函数极值.ppt
  • MATLAB程序设计教程:第7章 MATLAB解方程与函数极值.ppt
  • 第7章 MATLAB解方程与函数极值.ppt
  • 六种用Matlab解方程组的方法-equation.rar 这里有六种用Matlab解方程组的方法:直接法、LU分解法、QR分解法、Cholesky分解法、Jacobi迭代法、Gauss-Serdel迭代法。 所含文件: Figure34.jpg
  • 本人收集的MATLAB基础教程-第7章 MATLAB解方程与函数极值.ppt 第13章 在Word环境下使用MATLAB.ppt 第12章 Simulink动态仿真集成环境.ppt 第11章 MATLAB...
  • 第7章 MATLAB解方程与函数极值 7.1 线性方程组求解 7.2 非线性方程数值求解 7.3 常微分方程初值问题的数值解法 7.4 函数极值;7.1 线性方程组求解 7.1.1 直接解法 1利用左除运算符的直接解法 对于线性方程组Ax=b可以...
  • 第 6 章 MATLAB 解方程与最优化问题求解 本章要点 ? ? ? ? MATLAB 线性方程组求解 MATLAB 非线性方程数值求解 MATLAB 常微分方程初值问题的数值解法 MATLAB 最优化问题求解 6.1 线性方程组求解 6.1.1 直接解法 1 ...
  • \MATLAB解方程

    2012-07-20 12:17:53
    MATLAB解各种方程.包括一般的方程,高次方程方程组,微分方程
  • matlab解方程和优化问题求解,能解决一些应用问题。
  • PAGE / NUMPAGES 用MATLAB解方程的三个实例 作者 周兆安 1对于多项式p(x)=x3-6x2-72x-27求多项式p(x)=0的根可用多项式求根函数rootsp其中p为多项式系数向量即 >p =[1,-6,-72,-27] p = 1.00 -6.00 -72.00 -27.00 p是...
  • 程序设计MATLAB程序设计教程电子教案2660-第7章 MATLAB解方程与函数极值.ppt :handshake
  • 版块汇总matlab手册教程帮助命令大全-第7章 MATLAB解方程与函数极值.ppt 在学习和使用matlab中我们收集、编辑了一些手册,以供初学或高级用户学习,下面让我们共同学习分享 matlab数学手册1(pdf版)
  • Matlab非常经典的新手教程进阶提高-第7章 MATLAB解方程与函数极值.ppt 对于新手,是由易而难的好教程,对于有一定基础的后面章节也有很好的提高,是个全面的ppt教程,希望能帮到大家!
  • 解方程零点的方法, 用MATLAB解方程零点的方法, 用MATLAB。
  • Matlab解方程小记(一)

    千次阅读 2016-09-12 09:13:52
    Matlab解方程小记这篇博客将会介绍以下内容: - 我对matlab和方程的一些认识 - 解方程常用工具箱我的认识很早开始接触matlab,但是没有方程早。然并卵。 matlab中文名矩阵实验室,矩阵是什么鬼?可以这么想,一个...
  • 第7章 MATLAB解方程与函数极值 7.1 线性方程组求解 7.2 非线性方程数值求解 7.3 常微分方程初值问题的数值解法 7.4 函数极值 7.1 线性方程组求解 7.1.1 直接解法 1利用左除运算符的直接解法 对于线性方程组Ax=b可以...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 16,966
精华内容 6,786
关键字:

matlab解方程

matlab 订阅