24小时热门版块排行榜    

Znn3bq.jpeg
查看: 2259  |  回复: 5
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

zdzhang

木虫 (正式写手)

[求助] 求各位前辈帮忙!matlab解复数方程,出现图中的警告,怎来修改呢?谢谢了啊

各位前辈好,我想通过解这样一个复数方程,得到k_z的值,但是我这样编写的程序,总是出错,哪位大侠能帮我看看是那个地方出错了呢?望帮忙修改一下,先谢过各位了!
下面是我自己写的程序:
clc;
clear;
syms k_z
i=sqrt(-1);
a=60*10^(-9);
mu_air=4*pi*10^(-7);
epsl_air=8.854187817e-12;
epsl_met=-18.36+0.46i;
c=3.0*10^8;
wavelength=632.8*10^(-9);
k_0=2*pi/wavelength;

f=@(k_z) (-epsl_met*k_0^2*(8-(epsl_met*k_0^2-k_z^2)^(0.5)*a))/16*(1-0.25*(epsl_met*k_0^2-k_z^2)*a^2)+mu_air*epsl_air*k_0^2/((mu_air*epsl_air*k_0^2-k_z^2)*a^2*log(1.1229/(mu_air*epsl_air*k_0^2-k_z^2)^(0.5)*a))
ferror=1e-5;
k_z1=(0.95+0.0008*i)*k_0;
k_z2=(1.2+0.005*i)*k_0;
fplot(f,[k_z1,k_z2])
xlabel('k_z')
ylabel('f(k_z)')
hold on
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
k_z0=(k_z1+k_z2)/2;
while abs(f(k_z0))>ferror
    plot(k_z0,f(k_z0),'+')
    if f(k_z1)*f(k_z0)>0
        k_z1=k_z0;
    else
        k_z2=k_z0;
    end
    k_z0=(k_z1+k_z2)/2;
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
format short
disp('[           k_z0            f(k_z0)')
disp([k_z0 f(k_z0)])
那位大侠能帮忙修改一下我的程序呢?小弟在此谢过各位了

[ 来自科研家族 Ocean家族 ]

这是我要解的复数方程及已知参数



这是出现的警告

[ Last edited by zdzhang on 2011-11-16 at 17:29 ]
回复此楼

» 本帖已获得的红花(最新10朵)

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zdzhang

木虫 (正式写手)

引用回帖:
4楼: Originally posted by wangyuewu08 at 2011-12-07 18:38:37:
那条语句的确可以画出点来,但反应的只是实部之间的关系。
请问楼主画图是想表示什么意思?说不定有其他的替代方案

非常感谢您的回复,根据您的提供的建议,我重新编写了程序,现在解决了,非常感谢您的回答!祝您工作顺利!万事如意!
5楼2011-12-08 09:33:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 6 个回答

wangyuewu08

木虫 (著名写手)

【答案】应助回帖


zdzhang(金币+2): 2011-12-06 09:32:03
zdzhang(金币+2): 2011-12-06 13:23:44
xiegangmai(金币+1): 谢谢应助! 2011-12-06 22:18:21
错误出现在24行,我数了一下,好像是if f(k_z1)*f(k_z0)>0
这条语句出了问题,两个复数相乘得到的结果应该还是一个复数,除非它们是共轭的。当你把一个复数同0相比较时,程序会认为你是用实部与0比较,而忽略了虚步,警告就是这样显示的。
建议楼主求一下两复数乘积的模,然后再与0进行比较,希望对你有用。
往事并不如烟
2楼2011-12-06 08:47:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wangyuewu08

木虫 (著名写手)

★ ★
xiegangmai(金币+2): 谢谢参与! 2011-12-07 18:38:22
我把楼主的代码考到自己的电脑上,运行之后,发现了问题所在。
24行是输出plot(k_z0,f(k_z0),'+')的这条语句,在工作空间中发现k_z0和f(k_z0)都是复数,当x和y都是复数时,系统无法绘制相应的图形,所以提出警告。
我在command window中输入这样的语句plot( 3+4i, 4+3i ),系统显示相同的错误。
知道楼主的意图是想表示两个变量之间的关系,输入一个点,但如果在复数平面上表示的话,会输出两个点,无法反应自变量与应变量之间的关系。

上次回帖说错了,当复数和复数进行大小比较的时候,系统只比较实部,实数可以看做虚部为0的复数,所以比较语句并没有问题。
往事并不如烟
3楼2011-12-07 18:26:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wangyuewu08

木虫 (著名写手)

那条语句的确可以画出点来,但反应的只是实部之间的关系。
请问楼主画图是想表示什么意思?说不定有其他的替代方案
往事并不如烟
4楼2011-12-07 18:38:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 国自然面上和省基金B类撒花 +4 花田半亩~白 2026-04-21 4/200 2026-04-22 08:15 by kudofaye
[考博] 华师大读博 +3 xq83 2026-04-22 3/150 2026-04-22 03:56 by 啊哒哒哒叨
[论文投稿] 急需审稿人!!! +3 陆小果画大饼 2026-04-21 3/150 2026-04-21 23:54 by jzy_123456
[考研] 一志愿A区211,22408 321求调剂 +7 随心所欲☆ 2026-04-15 8/400 2026-04-21 08:22 by Equinoxhua
[考研] 295分求调剂 +6 ?要上岸? 2026-04-17 6/300 2026-04-21 08:18 by Equinoxhua
[考研] 一志愿中科大材料与化工,353分还有调剂学校吗 +11 否极泰来2026 2026-04-15 13/650 2026-04-20 22:31 by Equinoxhua
[考研] 085600材料与化工调剂 5+3 孜孜不倦2002 2026-04-19 6/300 2026-04-20 21:25 by babero
[论文投稿] 期刊推荐 +3 材料研究生 2026-04-15 5/250 2026-04-20 16:02 by 豆豆7758
[论文投稿] 有没有接收比较快的sci期刊呀,最好在一个月之内的,研三孩子求毕业 20+4 之护着 2026-04-16 7/350 2026-04-20 15:45 by 豆豆7758
[考研] 337求调剂 +3 jyz04 2026-04-18 3/150 2026-04-20 12:24 by 研可安
[考博] 申博 +3 Xyyx. 2026-04-18 3/150 2026-04-20 10:44 by YuY66
[考研] 求计算机方向调剂 +3 Toffee2 2026-04-16 6/300 2026-04-19 22:37 by ll叶
[考研] 294求调剂 +8 淡然654321 2026-04-17 9/450 2026-04-19 19:51 by Equinoxhua
[考研] 304求调剂 +8 castLight 2026-04-16 8/400 2026-04-19 17:14 by 中豫男
[考研] 求调剂 +10 小聂爱学习 2026-04-16 12/600 2026-04-19 16:51 by 中豫男
[考研] 0854求调剂 +23 门路摸摸 2026-04-15 27/1350 2026-04-19 01:59 by 烟雨流涯
[考研] 接受任何调剂 +6 也就是栗子 2026-04-17 7/350 2026-04-18 17:20 by 涵竹刘
[考研] 急需调剂 +9 绝不放弃22 2026-04-15 10/500 2026-04-18 08:09 by chixmc
[有机交流] 二苯甲酮酸类衍生物 50+3 小白爱主人 2026-04-17 6/300 2026-04-17 18:47 by kf2781974
[考研] 322求调剂 +6 tekuzu 2026-04-17 6/300 2026-04-17 13:48 by Espannnnnol
信息提示
请填处理意见