24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 1807  |  回复: 6

watertxf

铁虫 (初入文坛)

[求助] matlab解四次方程的问题 已有1人参与

matlab解四次方程的问题,我写的程序如下:要求在w=0.9:0.01:1.1的范围内求x的最大值*R随gamma=1.1:0.5:10的变化,大家能帮忙看一下出什么问题了吗?
非常感谢!
clear
clc
syms x
w=0.9:0.01:1.1;%21个
gamma=1.1:0.5:10;%18个
c=3*10^8;
wpb=0.2;
R=2.3*10^-2;


for j=1:18 %gamma
    v(j)=c*sqrt(1-1/gamma(j)^2);
    for i=1:21 %w
    y(i)=1+0.2^2/(1-w(i)^2+2i*0.015*w(i));
    %wpb(j)=sqrt((1.602*10^-19)^2*10^9/(9.109*10^-31*8.85*10^-12*gamma(j)^3));
    f(i,j)=(y(i)*(w(i)*2*pi*24*10^9)^2/c^2-x^2)*(1-(wpb*2*pi*24*10^9)^2/(((w(i)*2*pi*24*10^9)-x*v(j))^2*y(i)))-2.4048^2/R^2;
    k=solve(f);  %解出来k有四个根,
    k2=imag(k)*R;%需要k2的第四个根的值
    k2=double(k2);
    %m1(i)=k1(1,;
    %m2(i)=k1(2,;
    %m3(i)=k1(3,;
    %m4(i)=k1(4,;
    %n1(i)=k2(1,;
    %n2(i)=k2(2,;
    %n3(i)=k2(3,;
    %n4(i)=k2(4,;
    end
   k3(j)=max(k2);
end
%d=max(d)

semilogy(gamma,k3,'b --')
回复此楼

» 猜你喜欢

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

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

hppdyx

木虫 (知名作家)

【答案】应助回帖

我没有试,也不知道出的什么错误,不过solve求解都是把变量当作sys来看,所以求解出来的解是表达式而不是数值,因此可以试着加上eval函数,看看行不行

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

不以风骚惊天下,但求淫荡动世人
2楼2013-12-06 13:09:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

watertxf

铁虫 (初入文坛)

送红花一朵
引用回帖:
2楼: Originally posted by hppdyx at 2013-12-06 13:09:21
我没有试,也不知道出的什么错误,不过solve求解都是把变量当作sys来看,所以求解出来的解是表达式而不是数值,因此可以试着加上eval函数,看看行不行

非常感谢您的帮助!我对matlab不是太熟悉,能不能麻烦您告诉我怎样加上eval函数求解?不胜感激!
3楼2013-12-10 14:32:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hppdyx

木虫 (知名作家)

引用回帖:
3楼: Originally posted by watertxf at 2013-12-10 14:32:57
非常感谢您的帮助!我对matlab不是太熟悉,能不能麻烦您告诉我怎样加上eval函数求解?不胜感激!...

首先,你这个程序里面有很多小细节上的错误,还有一些错误需要你解释一下才行。我把你的程序改了一下,调试之后可以了,不过不知道符不符合你的要求。
CODE:
function k = res2

syms x
w = 0.9 : 0.01 : 1.1; %21个
gamma = 1.1 : 0.5 : 10;   %18个
c = 3 * 10^8;

R = 2.3 * 10^-2;

n1 = length(w);
n2 = length(gamma);
v = zeros(n2);
y = zeros(n1);
wpb = zeros(n2);
f = sym(zeros(n1, n2));
k = zeros(n1 * n2, 1);

for j = 1 : 18        %gamma
    v(j) = c * sqrt(1 - 1 ./ gamma(j).^2);
    for i = 1 : 21        %w
    y(i) = 1 + 0.2^2 ./ (1 - w(i).^2 + 2 * i * 0.015 * w(i));
    wpb(j) = sqrt((1.602 * 10^-19)^2 * 10^9 ./ (9.109 * 10^-31 * 8.85 * 10^-12 * gamma(j)^3));
    f(i, j) = (y(i) * (w(i) * 2 * pi * 24 * 10^9)^2 / c^2 - x^2) * (1 - (wpb(j) * 2 * pi * 24 * 10^9)^2 / (((w(i) * 2 * pi * 24 * 10^9) - x * v(j))^2 * y(i))) - 2.4048^2 / R^2;
    k((i-1) * n2 + j) = max(sqrt(eval(solve(f(i, j)))));  
    end
end
semilogy(gamma, k(1:18), 'b--');
figure;
plot(gamma, k(1:18), 'r');

结果如图所示:
matlab解四次方程的问题
matlab解四次方程的问题-1
不以风骚惊天下,但求淫荡动世人
4楼2013-12-12 20:26:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hppdyx

木虫 (知名作家)

引用回帖:
4楼: Originally posted by hppdyx at 2013-12-12 20:26:07
首先,你这个程序里面有很多小细节上的错误,还有一些错误需要你解释一下才行。我把你的程序改了一下,调试之后可以了,不过不知道符不符合你的要求。
function k = res2

syms x
w = 0.9 : 0.01 : 1.1; %21个 ...

不好意思,倒数第六行的sqrt改为abs。。。。图形的走势是一致的
不以风骚惊天下,但求淫荡动世人
5楼2013-12-12 20:43:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hppdyx

木虫 (知名作家)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
watertxf: 金币+20, ★★★★★最佳答案, 感谢! 2013-12-13 15:21:57
引用回帖:
4楼: Originally posted by hppdyx at 2013-12-12 20:26:07
首先,你这个程序里面有很多小细节上的错误,还有一些错误需要你解释一下才行。我把你的程序改了一下,调试之后可以了,不过不知道符不符合你的要求。
function k = res2

syms x
w = 0.9 : 0.01 : 1.1; %21个 ...

把sqrt改为abs,然后又把点加密了一些,程序和结果如图(一个纵坐标是对数坐标,另一个纵坐标不是对数坐标):
CODE:
function k = res2

syms x
w = 0.9 : 0.01 : 1.1;
gamma = 1.1 : 0.2 : 10;  
c = 3 * 10^8;

R = 2.3 * 10^-2;

n1 = length(w);
n2 = length(gamma);
v = zeros(n2);
y = zeros(n1);
wpb = zeros(n2);
f = sym(zeros(n1, n2));
k = zeros(n1 * n2, 1);

for j = 1 : n2       
    v(j) = c * sqrt(1 - 1 ./ gamma(j).^2);
    for i = 1 : n1       
    y(i) = 1 + 0.2^2 ./ (1 - w(i).^2 + 2 * i * 0.015 * w(i));
    wpb(j) = sqrt((1.602 * 10^-19)^2 * 10^9 ./ (9.109 * 10^-31 * 8.85 * 10^-12 * gamma(j)^3));
    f(i, j) = (y(i) * (w(i) * 2 * pi * 24 * 10^9)^2 / c^2 - x^2) * (1 - (wpb(j) * 2 * pi * 24 * 10^9)^2 / (((w(i) * 2 * pi * 24 * 10^9) - x * v(j))^2 * y(i))) - 2.4048^2 / R^2;
    k((i-1) * n2 + j) = max(abs(eval(solve(f(i, j)))));  
    end
end
semilogy(gamma, k(1:n2), 'b--');
figure;
plot(gamma, k(1:n2), 'r');

matlab解四次方程的问题-2
matlab解四次方程的问题-3
不以风骚惊天下,但求淫荡动世人
6楼2013-12-12 20:52:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

watertxf

铁虫 (初入文坛)

引用回帖:
6楼: Originally posted by hppdyx at 2013-12-12 20:52:09
把sqrt改为abs,然后又把点加密了一些,程序和结果如图(一个纵坐标是对数坐标,另一个纵坐标不是对数坐标):
function k = res2

syms x
w = 0.9 : 0.01 : 1.1;
gamma = 1.1 : 0.2 : 10;  
c = 3 * 10^8 ...

太感谢了!这个趋势是正确的,只是数量级不对,我在看一下。非常感谢您的帮助!
7楼2013-12-13 15:22:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 watertxf 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 336材料与化工085600求调剂 +8 水星记infp 2026-04-05 9/450 2026-04-06 09:20 by 水星记infp
[考研] 化学调剂 +17 艾志恒 2026-04-03 18/900 2026-04-06 07:10 by jj987
[考研] 化学调剂求助 +7 LULONG1 2026-04-03 7/350 2026-04-06 06:41 by houyaoxu
[考研] 生物与医药086000调剂一志愿西北农林320分 +3 美美女士 2026-04-03 3/150 2026-04-05 21:55 by 学员8dgXkO
[考研] 338求调剂 +3 我想上岸ii 2026-04-05 3/150 2026-04-05 19:59 by nepu_uu
[考研] 322求调剂 +3 嗯哼哼恒 2026-04-05 3/150 2026-04-05 19:52 by nepu_uu
[考研] 数一英一274机械调剂 +5 星陨流霞 2026-04-04 6/300 2026-04-05 11:38 by arrow8852
[考研] 一志愿华中农业大学0710(A)初试329分 求调剂 +4 一名26考研生 2026-04-04 4/200 2026-04-05 10:01 by barlinike
[考研] 331求调剂 +3 niby 2026-04-02 3/150 2026-04-04 19:56 by 蓝云思雨
[考研] 342求调剂 +3 Liang7111 2026-04-04 5/250 2026-04-04 19:47 by dongzh2009
[论文投稿] 求文献 5+3 ys879651$ 2026-04-02 3/150 2026-04-04 17:22 by bobvan
[考研] 材料专业383求调剂 +8 郭阳阳阳成 2026-04-03 8/400 2026-04-04 10:29 by Rednal.
[考研] 335求调剂 +7 沈清璃 2026-04-03 7/350 2026-04-03 18:55 by lijunpoly
[考研] 考研调剂 +8 不爱喝饮料 2026-04-03 8/400 2026-04-03 16:40 by Mistake-J
[考研] 数一英一285求调剂 +7 AZMK 2026-04-03 9/450 2026-04-03 13:03 by ms629
[考研] 312求调剂 +6 小小墨123 2026-04-02 7/350 2026-04-03 07:32 by jsw79
[考研] 一志愿北京科技大学材料学硕328分求调剂 +6 1段时间 2026-03-31 7/350 2026-04-02 13:57 by 3041
[考研] 化学工程专硕324分,一志愿中国矿业大学求调剂 +7 耿耿1314 2026-04-01 7/350 2026-04-02 07:40 by 尚水阁主
[考博] 26年申博 +3 staryer 2026-03-30 4/200 2026-04-01 23:21 by ai4pharm
[考研] 一志愿中海洋材料357 +4 麦恩莉. 2026-03-30 4/200 2026-03-31 14:35 by 记事本2026
信息提示
请填处理意见