24小时热门版块排行榜    

查看: 2288  |  回复: 10
本帖产生 1 个 程序强帖 ,点击这里进行查看
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

zhmdream

木虫 (正式写手)

[求助] Matlab两个小问题

您好,请教两个问题:
(1)我用Matlab解一个一元4次方程,得到4个解。怎么才能让其输出我想要的实数解,如第一个解(或者解的条件满足:y>400)。

y =
  1.0e+002 *
   4.3541         
   2.9607         
  -3.6574 + 5.2191i
  -3.6574 - 5.2191i

(2)第2个问题是在第1个问题基础上的。我的目的是为了画出x与y的关系图,所以我必须得对连续的x进行求解,然后求出y,作图。以一个简单例子吧:

x=1:1:10; %x取1到10
syms y;
a=y+1;
b=y-1;

f=a*b+a+b*x+y+6*x+2

%解方程f=0
equation = [char(f) ' = ' num2str(0,9)];
A=solve(equation, 'y')

double(A)

plot(x,y)

但是运行出错。有没有其他方法可以解决?谢谢!
回复此楼

» 收录本帖的淘帖专辑推荐

学海无涯! matlab典型案例及小技巧 大开眼界

» 猜你喜欢

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

人生如梦,岁月无情~~~
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sudo

木虫 (正式写手)

还是贴出你的全部程序吧
5楼2011-10-13 20:28:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 11 个回答

sudo

木虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★
xzhdty(金币+2): 欢迎常来程序语言看看 2011-10-12 15:31:47
微尘、梦想(金币+2, 程序强帖+1): sudo总是很热心的,祝福哦! 2011-10-12 20:41:46
zhmdream(金币+40): 谢谢啊,我试试 2011-10-12 20:45:04
zhmdream(金币+10): 谢谢了,呵呵 2011-10-14 22:14:37
你不用每次都放那么多分上来的...

(1)使用isreal函数和循环
CODE:
for i=1:length(y)
    if isreal(y(i)) && y(i)>400 %判断y(i)是否是实数,并且是否大于400
        fprintf(1, '%.9f\n', y(i));
    end
end

(2)
CODE:
syms x y; %注意用到的符号都要声明一下
a=y+1;
b=y-1;

f=a*b+a+b*x+y+6*x+2;

%解方程f=0
equation = [char(f) ' = 0'];
A=solve(equation, 'y');

%上面解得的结果是
%A =
%  - x/2 - (x^2 - 16*x - 4)^(1/2)/2 - 1
%   (x^2 - 16*x - 4)^(1/2)/2 - x/2 - 1

%对于符号式子,使用subs函数代入数值

%注意上面的方程因为有开方,所以不一定能解出实数解,这里直接取一段有实数解的
x = 20:80;
y1 = zeros(1, length(x)); %习惯上循环前先给定存储空间
y2 = zeros(1, length(x));
for i=1:length(x)
    y1(i) = subs(A(1), x(i));
    y2(i) = subs(A(2), x(i));
end

plot(x, y1, 'b', x, y2, 'r');

2楼2011-10-12 10:12:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sudo

木虫 (正式写手)

★ ★
微尘、梦想(金币+2): 谢谢参与应助~ 2011-10-12 20:42:05
其实第二个问题里面,算出A之后,直接
CODE:
x = 20:80;
Y= subs(A, x);
plot(x, Y(1, :), 'b', x, Y(2, :), 'r');

就可以的...

不过这么写的话觉得你可能不容易理解
3楼2011-10-12 10:16:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhmdream

木虫 (正式写手)

引用回帖:
2楼: Originally posted by sudo at 2011-10-12 10:12:19:
你不用每次都放那么多分上来的...

(1)使用isreal函数和循环
[code]
for i=1:length(y)
    if isreal(y(i)) && y(i)>400 %判断y(i)是否是实数,并且是否大于400
        fprintf(1, '%.9f ...

呵呵,谢谢帮忙。问题解决差不多了,但是还有些小问题:

问题(2)的方程当时是为了方便,随便设的。我要解的是一元四次方程,解的结果有两个实解和两个虚解。舍去虚解,并只有实解>400,才是我所要求的解,并用于作图。下面我的设计与思路:

%%%之前程序省略
%求解Tg
A=solve(equation, 'Tg');   
Tp=450:1:453;     %变量Tp取值,并将Tp代入,求出Tg
for i=1:length(Tp)
    Tg1(i) = subs(A(1), Tp(i));
    Tg2(i) = subs(A(2), Tp(i));
    Tg3(i) = subs(A(3), Tp(i));
    Tg4(i) = subs(A(4), Tp(i));
end
%得到两实解与两虚解

%现在对这两实解与两虚解,进行比较。大于400的实数解才是我最终想要的
for i=1:4
     j=1:length(Tg)
    if isreal(Tg(i)(j)) && Tg(i)(j)>400 %判断Tg(i)是否是实数,并且是否大于400
        fprintf(1, '%.9f\n', Tg(i)(j));
    end
end

plot(Tp, Tg) %对Tp与Tg作图

我运行时,到了第2部分就出错。谢谢!
人生如梦,岁月无情~~~
4楼2011-10-13 20:23:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 为什么国自然不能直接公布 +3 bjdxyxy 2026-08-26 3/150 2026-08-26 12:48 by 小丑鱼爱读书
[基金申请] 哪位高人中了,把查询到的截图贴出来让我看看,让我长长见识 +3 yuleib84 2026-08-26 3/150 2026-08-26 12:34 by xiacongxu
[基金申请] 科研孤儿太难了 +21 我4大白菜 2026-08-20 22/1100 2026-08-26 11:29 by nlgza
[基金申请] 国合里面能看到了 +7 一怀馨秋 2026-08-26 7/350 2026-08-26 11:23 by zhaosm1982
[基金申请] 国际合作可查了,中了面上 +18 Ldrop2023 2026-08-26 18/900 2026-08-26 11:15 by cmrandy
[基金申请] 国合可查了 +3 paperzjh 2026-08-26 3/150 2026-08-26 10:41 by LemmonTr
[基金申请] 2026年8月25日国自然放榜前突然收到列入评审专家邮件,有关系吗? +24 木水思豆 2026-08-25 27/1350 2026-08-26 08:26 by yanchen918
[基金申请] 2026国自然函评费到账 +21 羊腰板 2026-08-21 24/1200 2026-08-26 07:20 by finnigan
[基金申请] 在坚冰还盖着北海的时候,我看到了怒放的梅花。 (金币+10) +6 ziyangfang 2026-08-25 9/450 2026-08-25 20:26 by huagongfeihu
[基金申请] 有没有大神帮我看看基金代码 28+4 1234567wang 2026-08-24 10/500 2026-08-25 19:15 by lfy8008
[基金申请] 某些机构,以效率低为荣,以效率低作为存在感 +9 yuleib84 2026-08-25 10/500 2026-08-25 17:14 by alexon
[基金申请] 如果此刻你正在为国基感到焦虑,不妨来听听这首《基金之外》 +8 scalable 2026-08-24 8/400 2026-08-25 12:52 by jnhyjjm
[基金申请] 没有任何消息-是不是就凉了 +9 图啦图啦 2026-08-24 10/500 2026-08-25 11:59 by 南海小哥
[教师之家] 导师吐槽:我怎么摊上了这么个极品研究生! +3 苏东坡二世 2026-08-23 3/150 2026-08-25 10:35 by shisan1313
[基金申请] 只有每年这种时候来逛逛小木虫 +25 yaoyewhu2008 2026-08-20 27/1350 2026-08-25 08:01 by Equinoxhua
[基金申请] 建议基金发布提前给出明确的时间点 +13 kulium 2026-08-21 16/800 2026-08-24 16:27 by superceng
[基金申请] 让我中一个面上吧! +13 大萍1987 2026-08-20 16/800 2026-08-24 10:23 by 太傻了
[教师之家] 跳槽后在研项目怎么办? +5 简单化xn 2026-08-22 10/500 2026-08-23 12:38 by 简单化xn
[基金申请] 时间戳今天,20号变了 +5 archvillain 2026-08-20 5/250 2026-08-22 06:12 by hui_daxiao
[基金申请] 今天放榜没戏了吧 +9 yuleib84 2026-08-19 11/550 2026-08-21 10:06 by gltch
信息提示
请填处理意见