Matlab学习笔记——方程式求根

符号变量

sym()创建一个符号变量

a = sym('x',[1 4],'real')
b = sym('y_%d',[1 4],'positive')
c = sym('z%d',[1 4],'rational')
d = sym('a',2,{'positive','integer'}) %2*2的矩阵


sym(x,'set')可以用set设置符号变量x的性质,如 real(实数)、positive(正数)、rational(有理数)、positive integer(正整数),用assumptions()可以查看符号变量的性质


sym(x,'clear')可以清除符号变量的性质


solve()方程求根

例如求 { x 2 + y 2 = 1 y = x \begin{cases} x^2+y^2=1& \text {} \\ y=x& \text{} \end{cases} {x2+y2=1y=x

sym('x');
sym('y');
eq1=x^2+y^2-1;
eq2=x-y;
A=solve(eq1,eq2,x,y)


A.x查看结果


solve()还可以求带参数的解

syms x a b;
y=x^2-a*8+b;
solve(y,a)


inv(A)矩阵求逆

syms a b c d;
A=[a b;c d];
inv(A)


diff()变量微分

例如求 e x 2 x 3 − x + 3 \frac{e^{x^2}}{x^3-x+3} x3x+3ex2导数

syms x;
y=exp(x^2/(x^3-x+3));
result=diff(y)


int()变量积分

例如积分
∫ 0 5 x 2 − x + 1 x + 3   d x \int_0^5{\frac{x^2-x+1}{x+3}} \,{\rm d}x 05x+3x2x+1dx

syms x;
y=(x^2-x+1)/(x+3);
result=int(y,0,10)


subs(y,x,0)把x=0带入y这个方程得到结果


@ 函数处理

@可以把function处理之后可以用作其他function的参数,不这样处理是不能直接把function直接用作参数

fsolve()非线性方程组求解

fsolve(fx,x0,op)从x0开始以op的方式求解fx=0时的解吗,其中op也可以缺省
例如: f ( x ) = 1.2 x + 0.3 + x s i n x f(x)=1.2x+0.3+xsinx f(x)=1.2x+0.3+xsinx

fx=@(x) (1.2*x+0.3+x*sin(x));
fsolve(fx,0)


如果用solve()

syms x;
fx=1.2*x+0.3+x*sin(x);
solve(fx,x)


Exercise

( x , y ) = ( 5 , 5 ) (x,y)=(5,5) (x,y)=(5,5)开始求 f ( x , y ) = { 2 x − y − e − x − x + 2 y − e − y f(x,y) = \begin{cases} 2x-y-e^{-x} & \text{} \\ -x+2y-e^{-y} & \text{} \\ \end{cases} f(x,y)={2xyexx+2yey
qroot.m

function fx=qroot(x):
fx(1)=2*x(1)-x(2)-e^(-x(1));
fx(2)=-x(1)+2*x(2)-e^(-x(2));
fun=@qroot;
x0=[5,5];
x=fsolve(fun,x)


fzero()非线性函数的根

fzero()用法和fsolve()类似,唯一区别是fzero()不能求出函数不变号零点

roots()多项式根

roots([1 1 -3])


更加详细内容参看官方文档链接: link

如有错误请纠正,谢谢

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值