声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2681|回复: 7

[综合讨论] 关于MATLAB求解超越方程问题

[复制链接]
发表于 2007-12-20 22:11 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
小弟现有一个超越方程,预用MATLAB求解,如下:
(((-(u)^2+(k)^2)^0.5)^2+v*u^2)*(((-(u)^2-(k)^2)^0.5)^3+(2-v)*u^2*((-(u)^2-(k)^2)^0.5))*(tanh(((-(u)^2-(k)^2)^0.5)*(b/a)))-(((-(u)^2-(k)^2)^0.5)^2+v*u^2)*(((-(u)^2+(k)^2)^0.5)^3+(2-v)*u^2*((-(u)^2+(k)^2)^0.5))*(tanh(((-(u)^2+(k)^2)^0.5)*(b/a)))=0
其中v取0.3 ,k取0.01--0.3之间的某值,b/a取0.2--0.5之间的某值,u为变量。
请各位高人指点,由于急用小弟将不甚感激。
也可直接与我联系,QQ274453035,谢谢!!!
回复
分享到:

使用道具 举报

发表于 2007-12-20 22:14 | 显示全部楼层

回复 #2 guowang366 的帖子

把你的公式用图片的形式贴上来
发表于 2007-12-20 22:15 | 显示全部楼层
直接用fzero即可.
 楼主| 发表于 2007-12-20 22:17 | 显示全部楼层
fzero需要初值,或是一个取值范围,但是我这个没有。。。:'(
 楼主| 发表于 2007-12-20 22:23 | 显示全部楼层
方程及其中的一些系数的取值范围如下,u为变量,在复数域内求解:

((y1)^2+v*u^2)*((y2)^3+(2-v)*u^2*(y2))*(tanh((y2)*(b/a)))-((y2)^2+v*u^2)*((y1)^3+(2-v)*u^2*(y1))*(tanh((y1)*(b/a)))=0

b/a=0.2--0.5;   k=0.01--0.3;    v=0.3

y1=(-(u)^2+(k)^2)^0.5;
y2=(-(u)^2-(k)^2)^0.5;
谢了!
发表于 2007-12-20 22:34 | 显示全部楼层
复数域内求解-------solve试试.
不行的话,可以再试试 fsolve.
注:初值本来就是自己给的,最后收敛的那个解即为所求。
 楼主| 发表于 2007-12-21 09:45 | 显示全部楼层
不论是利用fsolve还是solve只能求出一个根,但是小弟现在目标是四个根同时求出,如果是四个实数,则两两互为相反数;如果是两个实数两个复数,则两个实数互为相反数,而两个复数互为共轭(辛共轭);如果是四个复数则是两两互为辛共轭。还请各位大侠帮忙,谢谢!!!
发表于 2008-1-19 16:41 | 显示全部楼层

回复 7楼 的帖子

只出现一个根,可能是你的方程具有周期性.比如方程cos(x)*cosh(x)=-1,用solve只能求出一个根,而实际上它的根有无数个.这就得用fsolve(Fun,f0.opt,p1,p2,...)这个语句求解.最好找本有相关用法的书,了解下fsolve的用法.

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-12 07:15 , Processed in 0.126063 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表