声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

12
返回列表 发新帖
楼主: compaq0000

[Maple] (求助)如何解如下形式的超越方程

[复制链接]
发表于 2009-12-28 22:34 | 显示全部楼层
不是说过我试过v5.3及2009a, 是一样的答案!
不清楚"关键是怎样同时算出多于一个的根"的意义?:@L
太数学的东西, 对于老小工的我, 有点难过!
我想真正需要无水来救我了!:loveliness:
回复 支持 反对
分享到:

使用道具 举报

发表于 2009-12-29 10:03 | 显示全部楼层
1.这个方程有无穷多个解
2.数值方法,只能一个一个找
3.如果想找到多个解,那么用地毯式搜索,然后将明显不同的解挑出来
 楼主| 发表于 2009-12-29 12:09 | 显示全部楼层

回复 15楼 VibrationMaster 的帖子

不知道您看我的附件没有,对应每一个参数(比如上面的0.25),我只需要前面的三个解。不知道您说的“地毯式搜索”具体怎么操作?:@)
发表于 2009-12-30 07:17 | 显示全部楼层
将fsolve的初值从可能区间以很小间隔走一遍得到很多个解。然后将靠近的解合并
 楼主| 发表于 2009-12-30 10:38 | 显示全部楼层
如果区间是一维的话,根据你的提示,我应该能做。但是区间现在是二维的,我就不知道怎么做了。:@)
 楼主| 发表于 2009-12-30 10:43 | 显示全部楼层

回复 17楼 VibrationMaster 的帖子

刚才我点的“发表新回复”,回复在18楼,其实就是回复你的。见谅见谅:@)
发表于 2009-12-30 12:21 | 显示全部楼层
两个方向都搜,如同排雷。初值 c= a+b*j,用两重循环。运算量大一些,但是应该还是能够忍受的。 如果实在忍受不了,那就只能分析方程的特性,界定可能解的范围。
对于没有解析解的非线性问题,指望计算机一劳永逸地用迭代法解出,而不做人为干预是不可能的。 高手和初学者的差别仅在于前者的干预度小一些。

评分

1

查看全部评分

发表于 2009-12-31 14:36 | 显示全部楼层
这帖建议关闭并与此帖合并!
http://forum.vibunion.com/forum/ ... 9196&highlight=
发表于 2010-1-30 09:13 | 显示全部楼层
综合了各位大侠的意见,对这个方程进行了分析,方程的解实部和虚部有一定的关系,所以选初值只选一个,这样就变成一重循环,运算起来速度会好一些。
  1. clc
  2. clear
  3. % a从3.3开始; % 保证 (exp(a)+exp(-a))^2-64*a^2>0
  4. % b=(exp(a)-exp(-a))^2*((exp(a)+exp(-a))^2-64*a^2)/64/(exp(a)+exp(-a))^2;
  5. % x0=[a,b];
  6. s=[];
  7. for a=3.3:.1:10
  8.     b=(exp(a)-exp(-a))^2*((exp(a)+exp(-a))^2-64*a^2)/64/(exp(a)+exp(-a))^2;
  9.     b=sqrt(b);
  10.     x0=[a,b];
  11.     y=fsolve(@myfun,x0);
  12.     x=y(1)+y(2)*i;
  13.     xx=x*i/sinh(x)-.25;
  14.     if (abs(real(xx))<1e-5) && (abs(imag(xx))<1e-5)
  15.         s=[s,x];
  16.     end
  17. end
  18. % 剔除重复的解
  19. ind=diff(s);
  20. ss=s(1);
  21. for m=1:length(ind)
  22.     if abs(ind(m))>1e-3
  23.        ss=[ss,s(m+1)];
  24.     end
  25. end
复制代码

子函数
  1. function f=myfun(x)
  2. f=[cos(x(2))*(exp(x(1))-exp(-x(1)))+8*x(2);
  3.    sin(x(2))*(exp(x(1))+exp(-x(1)))-8*x(1)];
复制代码

运算结果(注意:b=-sqrt()暂时未考虑,lz可以算一下):
>> length(ss)

ans =

    48

>> max(abs(ss*i/sinh(ss)-.25))

ans =

  1.9185e-015

评分

1

查看全部评分

 楼主| 发表于 2010-1-30 09:32 | 显示全部楼层

回复 22楼 friendchj 的帖子

非常感谢您的回复。
这段时间实验室事情比较多,虽然天天都来看看帖子,但是都没有仔细再分析过那个方程。
放假回家我会认真看看您的程序的。
祝您新年快乐。也祝论坛的各位朋友新年快乐。非常感谢大家。:@)
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-5-18 07:42 , Processed in 0.058800 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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