方程式求根
使用sym或syms建立变量
>> syms x >> (x+x)/3 ans = (2*x)/3 >> y=sym('y') y = y
solve()
1.一元一次方程
解y=x*sin(x)-x; y是equation x是symbol
>> solve(cos(x).^2-sin(x).^2,x) ans = pi/4
2.二元一次方程
>> syms x y >> eq1=x-2*y-5; >> eq2=x+y-6; >> a=solve(eq1,eq2,x,y) a = 包含以下字段的 struct: x: [1×1 sym] y: [1×1 sym] >> a.x ans = 17/3 >> a.y ans = 1/3
解ax^2-b=0
>> syms x a b solve(a*x^2-b) ans = b^(1/2)/a^(1/2) -b^(1/2)/a^(1/2)
>> syms x a b >> solve(a*x^2-b,b)%以b为未知数来解 ans = a*x^2
求导
>> syms x >> y=4*x^5 y = 4*x^5 >> yprime=diff(y) yprime = 20*x^4
积分
对x^2*exp(x)积分,z(0)=0
subs是赋值函数,用数值替代符号变量替换函数
>> syms x >> y=x^2*exp(x); >> z=int(y); >> z=z-subs(z,x,0)%exp(x)*(x^2 - 2*x + 2) 用0替代x z(0)=2 z=z-2; z = exp(x)*(x^2 - 2*x + 2) - 2
fsolve()
>> f2=@(x) (1.2*x+0.3+x*sin(x)); >> fsolve(f2,0)%(函数句柄,初始值) ans = -0.3500
fzero()
尝试在x0附近求出 x
= fzero(fun
,x0
)fun(x) = 0
的点 x
。此解是 fun(x)
变号的位置 - fzero
无法求函数(例如 x^2
)的根。
>> fzero(f,0.1) 正在退出 fzero: 将终止搜索包含符号变化的区间 因为在搜索期间遇到 NaN 或 Inf 函数值。 (-1.37296e+154 处的函数值为 Inf。) 请检查函数或使用其他起始值重试。 ans = NaN
使用 x
= fzero(fun
,x0
,options
)options
修改求解过程,误差的范围。
求多项式的解
>> roots([1 -6 -12 81]) ans = -3.5969 5.5097 4.0872