700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 使用MATLAB求解方程求根——学习笔记

使用MATLAB求解方程求根——学习笔记

时间:2022-03-19 07:43:11

相关推荐

使用MATLAB求解方程求根——学习笔记

使用MATLAB求解方程求根——学习笔记

碎碎念:终于参加完了某比赛,连续大约摸了两天的鱼,就在昨天由于自己的操作失误,亲手将电脑给烧了,这就是上天在暗示我是时候加油为接下来的两场比赛和一个考试努力啦~下面浅谈一下MATLAB各种求解方程的根的方法。

求方程的根

法一:

求方程的全部根。

在MATLAB命令窗口输入:

p=[1,7,0,9,-20]; %建立多项式系数向量

x=roots(p) %求根

法二:

使用solve函数:

s=solve(f,v):求方程关于指定自变量的解;

s=solve(f):求方程关于默认自变量的解。

其中 f可以是用字符串表示的方程,或符号表达式;若f 中不含等号,则表示解 方程 f=0。

解方程 x^3-3*x+1=0

>>syms x; f=x^3-3*x+1;

>>s=solve(f,x)

>>s=solve(‘x^3-3*x+1’,‘x’)

>>s=solve(‘x^3-3*x+1=0’,‘x’)

Solve函数还可以用来求解方程组!

solve(f1,f2,...,fN,v1,v2,...,vN)

求解由 f1,f2,...,fN 确定的方程组关于 v1, v2,...,vN 的解。

解方程组:

>>[x,y,z]=solve(‘x+2*y-z=27’,‘x+z=3’, ...

‘x^2+3*y^2=28’,‘x’,‘y’,‘z’)

注意:输出变量的顺序要书写正确!

Solve在得不到解析解时,会给出数值解。

非线性方程组求解:

fzero(f,x0):求方程f=0在x0附近的根。

几点说明:

方程可能有多个根,但是fzero只能给出距离x0最近的一个根;若x0是一个标量,则fzero先找出一个包含x0的区间,使得f在这个区间两个端点上的值异号,然后再在这个区间内寻找方程f=0的根;如果找不到这样的区间,则返回NaN。若x0是一个2维向量,则表示在[x0(1),x0(2)]区间内求方程的根,此时必须满足f在这两个端点上的值异号。由于fzero是根据函数是否船业横轴来决定零点。因此它无法确定函数曲线仅触及横轴但是不穿越的零点,如|sin(x)|的所有零点。函数中的f是一个函数句柄,通过以下方式给出:

字符串形式:fzero(‘x^3-3*x+1’,2);

通过@调用的函数句柄:fzero(@sin,4);

f不能用符号表达式!

线性方程组求解:

linsolve(A,b):解线性方程组

>> A=[1 2 –1; 1 0 1; 1 3 0];

>> b=[2;3;8];

>> X=linsolve(A,b)

注意这里的b是列向量。

求解方程函数小结

roots(p):多项式的所有零点,p是多项式系数向量。

fzero(f,x0):求f=0在x0附近的根,f是函数句柄,可以由字符串给出或使用@, 但不能是符号表达式!

solve(f,v):求方程关于指定自变量的解,f可以是用字符串表示的方程,或符号表 达式,若不含等号表示f=0;

也可解方程组(包含非线性);得不到解析解时,给出数值解。

linsolve(A,b):解线性方程组。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。