风土人情的意思是什么:sin(a+bx)=cx+d 能给出解析解吗?如果不能,该怎么求解!?

来源:百度文库 编辑:高考问答 时间:2024/05/02 06:25:00
>> solve('a*x+b-c*x-d')

ans =

-(b-d)/(a-c)

>> solve('sin(a+b*x)-c*x-d')
??? Error using ==> solve
Unable to find closed form solution.

好像用matlab比较困难,目前还没找到解决办法!

在matlab里面solve命令主要是用来求解代数方程(即多项式)的解,但是也不是说其它方程一个也不能解,不过求解非代数方程的能力相当有限,通常只能给出很特殊的实数解。(该问题给出的方程就是典型的超越方程,非代数方程,而且该方程中还含有未知变量,就更不可能给出解了)

无论是从数学理论还是从计算机的编程实现角度讲,如今的任何算法都无法准确的给出任意非代数方程的所有解,但是我们有很多成熟的算法来实现求解在某点附近的解。matlab也不例外,它也只能给出任意非代数方程在某点附近的解,函数有两个:fzero和fsolve,具体用法请用help或doc命令查询吧。如果还是不行,你还可以将问题转化为非线性最优化问题,求解非线性最优化问题的最优解,可以用的命令有:fminbnd, fminsearch, fmincon等等。

Unable to find closed form solution.

找不到封闭解,尝试下用数值解吧!

想这样的超越方程,用一般软件求解都是比较麻烦的!

我觉得不可能,只能采用数值解法。