首页 > 编程知识 正文

matlab求方程根,matlab求解非线性方程组

时间:2023-05-05 03:41:45 阅读:172427 作者:2796

目录1.solve )方法(1)单变量方程式f(x )=01 )符号方程式2 )数值方程式3 )超越方程式2 )方程式fsolve ) )方法)1)数值上fzero ) )方法)1)方程式roots ) 652 )

一. solve (方法)1)单变量方程f ) x )=0

solve (方法可以求解更简单的方程式和方程式。

1 )符号方程式符号方程式是指求出方程式的解而不是具体的数值解的解,例如在参数未知的情况下求出的解。

eg:ax2 bx c=0

syms a b c x; f=a*x^2 b*x c; solve(f,x ) %求解结果如下(结果ans=-) b ) b )2-4*a*c ) ^ (1/2) )-) b-(b^2-4*a*c ) ^ (1/2) )

Solve(f,a ) %求解结果如下(结果ans=-) CB*x )/x^2 2 )数值方程的系数均为常数,最终可求得数值解。

(eg ) x3 )2=x-1

syms x; f=x^3 2*x^2-x 1; s=solve(f ); %求解结果如下: double(s ) %结果ans=0.2734-0.5638 I 0.27340.5638 I-2.5468.0000 I3 )超越方程中具有三角函数、指数对数等的几个函数方程

eg:tan(x )-sin(x ) x )=0

syms x; f=tan(x )-sin(x ) x; s=solve(f ) %求解结果以下)结果s=0注意:用solve求解超越函数只能得到一个解。

)2)方程组有多个变量时,将多个变量放入大括号内接受返回结果

eg :

x2 y2 - 1=0

0.75*x3 - y 0.9=0

syms x y; f1=x^2 y^2 - 1; f2=0.75*x^3 - y 0.9; [x,y]=solve(F1,f2 ); %求解结果为以下的x=double(x ) y=double(y ) y ),结果x=-0.98170.0000 I 0.3570.0000 I-0.5540-0.3547 I-0.5540.3547 I 0.86666667 I . 9293-0.2114 I 0.92930.2114 I-1.4916-0.7059 I-1.49160.7059 I2.f solve () )方法1 )用数值求解需要建立方程的m函数文件,或者使用匿名函数该方法需要在给出初始值后进行迭代

eg :

2x1 - x2=e-x1

-x1 2x2=e-x2

%函数m文件functioneq=func(x ) eq )1) x )1)-x )2)-exp(-x )1); eq(2)=-x )1)2*x )2)-exp(-x )2); end%表示命令行窗口中[x,fv]=fsolve(func,[ 0,0 ] ) x表示方程式的解,Fv表示对应于解的函数值(结果x=0. 5671.5671 Fv=1.0e-06 *-0.

(eg ) x3-3x1=0,(-2=x=0) )。

在此处插入代码片段syms x; f=inline(x^3-3*x1 ); fzero(f,[-2,0 ] )的%求解结果如下(结果ans=-1.8794四. roots ) )方法1 )求解多项式方程eg:x9x8)1=0

p=[ 1,1,0,0,0,0,0,0,0,0,1 ]; %结果ans=-1.21310.0000 I-0.90170.5753 I-0.5753 I-0.26940.9406 I-0.9406

五.求解线性方程组的AX=b,a为mn次矩阵,b为m维向量

eg:AX=b

%方法A=[1 2 11; 413; 79 ); b=[6; 14; -3); x=Ab%方法2x=inv(a ) b%结果x=39.6111 -39.7222 4.1667注意:只能求出一个特解

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。