Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
初级会员
注册日期: 2008-06-23
年龄: 41
帖子: 7
声望力: 0 ![]() |
![]()
请高手指教一下这个图怎么画:
tanh(pi/0.65*w*sqrt(k^2-1))=1/(17.36-0.715i)*sqrt(k^2+17.36-0.715i)/sqrt(k^2-1) 我想作横坐标为w=0:100,纵坐标分别为k的实部和虚部,估计Real范围在0:12;Imag范围在0:0.4,我刚学Matlab不久,只会一般的画图,但是这个函数我化不开那个在双曲线和根号里的k值,请高手看看怎么解决,谢谢:lovely: |
![]() |
![]() |
![]() |
#2 |
高级会员
注册日期: 2007-12-02
年龄: 44
帖子: 303
声望力: 31 ![]() ![]() ![]() ![]() |
![]()
竟然是个 隐函数,并且还是个复变函数的 :lovely:
怎么什么事情都让你赶上了 |
![]() |
![]() |
![]() |
#3 |
普通会员
注册日期: 2008-03-25
年龄: 40
帖子: 58
声望力: 19 ![]() |
![]() |
![]() |
![]() |
![]() |
#4 |
高级会员
注册日期: 2008-04-02
年龄: 47
帖子: 175
声望力: 21 ![]() |
![]() |
![]() |
![]() |
![]() |
#5 |
高级会员
注册日期: 2007-12-02
年龄: 44
帖子: 303
声望力: 31 ![]() ![]() ![]() ![]() |
![]()
:tongue: 认真在读程序,希望,我也能像他那么强 :cry:
|
![]() |
![]() |
![]() |
#6 |
高级会员
注册日期: 2008-04-02
年龄: 47
帖子: 175
声望力: 21 ![]() |
![]()
个人建议,直接离散化w,用for循环对每个w求解方程(solve()),最后应该得到与每个w对应的k序列,然后分列实部(real())虚部(imag()),分别绘图。
这样做虽然比较笨,但是应该可以解决问题,只是要注意,for循环变量不要用i、j,否则会与虚数(-1)^(1/2)冲突。 |
![]() |
![]() |
![]() |
#7 |
初级会员
注册日期: 2008-06-23
年龄: 41
帖子: 7
声望力: 0 ![]() |
![]() |
![]() |
![]() |
![]() |
#8 |
高级会员
注册日期: 2008-04-02
年龄: 47
帖子: 175
声望力: 21 ![]() |
![]()
文件名:f1.m
内容: function F=f1(k,w) F=tanh(pi/0.65*w*sqrt(k^2-1))-1/(17.36-0.715*i)*sqrt(k^2+17.36-0.715*i)/sqrt(k^2-1); --------------------------------------------------------- 文件名:*.m 内容: clear all; w=0:0.1:100;%这里设了步长0.1,可自行调节 for n=1:size(w,2) k(n)=fsolve(@(k)f1(k,w(n)),6,optimset('Display','off','TolFun',1e-6));%用了fsolve,实际上是当作优化问题处理了 end kr=real(k); ki=imag(k); subplot(1,2,1);%左边的画实部 plot(w,kr); subplot(1,2,2);%右边的画虚部 plot(w,ki); --------------------------------------------------------- ps:获得的图形很奇特,不连续,如果w代表频率,想不出k代表什么。 LZ可以用命令 tanh(pi/0.65*w.*sqrt(k.^2-1))-1./(17.36-0.715*i).*sqrt(k.^2+17.36-0.715*i)./sqrt(k.^2-1); 验证计算结果 |
![]() |
![]() |
![]() |
#9 |
初级会员
注册日期: 2008-06-23
年龄: 41
帖子: 7
声望力: 0 ![]() |
![]() |
![]() |
![]() |
![]() |
#10 | |
初级会员
注册日期: 2008-06-23
年龄: 41
帖子: 7
声望力: 0 ![]() |
![]() 引用:
clear all; w=0:0.001:0.1;%这里设了步长0.001,可自行调节 for n=1:size(w,2) k(n)=fsolve(@(k)f1(k,w(n)),6,optimset('Display','off','TolFun',1e-6));%用了fsolve,实际上是当作优化问题处理了 end kr=real(k); ki=imag(k); plotyy(w,kr,w,ki); axis([0,0.1,0,12,]);%另外一条纵轴ki我想设为scale为0:0.4,并加上标题 |
|
![]() |
![]() |
![]() |
主题工具 | |
显示模式 | |
|
|
![]() |
||||
主题 | 主题作者 | 版面 | 回复 | 最后发表 |
【求助】求教解非线性方程参数传递问题 | czy515 | MATLAB论坛 | 2 | 2008-09-09 08:40 |
[资料]周期信号的傅里叶级数实验代码!!! | zdJack0305 | MATLAB论坛 | 2 | 2008-08-05 10:53 |
[求助]急求网格编码量化TCQ的程序! | bswlzx | MATLAB论坛 | 0 | 2008-06-04 20:51 |
跪求牛人指点一个关于矩阵的问题 | berrylolo | MATLAB论坛 | 1 | 2008-05-27 21:01 |
请问这个方程可以用MATLAB解没有? | thb296 | MATLAB论坛 | 6 | 2008-04-28 19:02 |