zhlong 发表于 2007-8-2 16:32

多项式求解问题

问题如图,谢谢大家!

[ 本帖最后由 eight 于 2007-8-3 11:47 编辑 ]

zhlong 发表于 2007-8-2 16:44

系数如附件

花如月 发表于 2007-8-2 16:53

我从你mat文件读出来的是这个,不知道对不?才3个数呀,不是abcd4个系数么?
p:

花如月 发表于 2007-8-2 17:54

--------------------------------------------程序-------------------------------------------
close all;clc;clear;
a=1;b=3;c=-5;d=7;%定义系数
k=solve('x^4+2*x^3-5*x^2+7*x-a');
for i=1:length(k)
    figure(i)
    fplot(inline(char(k(i))),);
end
----------------------------------------------------------------------------------------------
Warning: Imaginary parts of complex X and/or Y arguments ignored.
> In fplot at 153
In Untitled2 at 6
Warning: Imaginary parts of complex X and/or Y arguments ignored.
> In fplot at 153
In Untitled2 at 6
>>
算起来有点慢,可能是我内存小。2个警告说明出现复数根,绘图的时候略去了虚部。
在我定的这4个参数里,递增的就只有一个跟(应该都是如此)。也就是第三个根,
绘制的图形加figure(3)

[ 本帖最后由 花如月 于 2007-8-2 18:09 编辑 ]

花如月 发表于 2007-8-2 18:00

Elapsed time is 45.457076 seconds.:@L
电脑实在是不行了

octopussheng 发表于 2007-8-2 21:07

虽然不知道程序具体啥意思,不过算出的结果如以下的四个图!

提示的warning如下:
Warning: Imaginary parts of complex X and/or Y arguments ignored.
> In fplot at 158
In Untitled444 at 6
Warning: Imaginary parts of complex X and/or Y arguments ignored.
> In fplot at 158
In Untitled444 at 6

花如月 发表于 2007-8-2 21:21

想了一下,觉得还是画在一张图上直观些。可能代码烦琐了些,还好实现了
---------------------------------------------------------------
close all;clc;clear;
a=1;b=3;c=-5;d=7;%定义系数
k=solve('x^4+2*x^3-5*x^2+7*x-a');
for i=1:length(k)
    hold on;
    =fplot(inline(char(k(i))),);
    plot(a,b,'color',rand(1,3),'LineWidth',i)
end
-----------------------------------------------------------------

[ 本帖最后由 花如月 于 2007-8-2 21:40 编辑 ]

zhlong 发表于 2007-8-2 21:35

回复 #4 花如月 的帖子

非常感谢花如月和octopussheng 的热情帮助!
还有一个问题
fplot(inline(char(k(i))),);

这个是画图,如果我想得到,这个区间上各点对应的inline(char(k(i)))函数值,进一步该怎么操作呢?

花如月 发表于 2007-8-2 21:42

回复 #8 zhlong 的帖子

呵呵,我再想想。当时之所以用fplot是因为比较方便,不用求值。符号表达式求函数值好像有些麻烦的样子

zhlong 发表于 2007-8-2 21:46

回复 #9 花如月 的帖子

k=solve('x^4+2*x^3-5*x^2+7*x-a');


里面的a是不是改为别的符号比较合适,以免和上面的系数a=1混淆?(对计算结果应该是没有影响的)

花如月 发表于 2007-8-2 22:27

回复 #10 zhlong 的帖子

那个是笔误,关系不大可以改成其他的符号(下面用的是t)。由于解的形式没有办法用矢量化编程,所以必须加循环,加上你给的数据取得太密。把我电脑给算死了,p4 2.93gcpu+256M内存。如果确实需要那个数据,那你用一台好的电脑算吧。我该了数据:
--------------------------------------------------------------------------
close all;clc;clear;
tic
a=1;b=3;c=-5;d=7;%定义系数
k=solve('x^4+2*x^3-5*x^2+7*x-t');
%a=(0:2*pi/30:4000*pi);
a=(0:2:4000);
N=length(a);
for i=1:length(k)
    hold on;
    for j=1:N
      f=inline(char(k(i)));
      y(j)=f((j-1)*pi/30);
    end
    plot(a,y,'color',rand(1,3),'LineWidth',i)
end
toc
---------------------------------------------------------------------
Warning: Imaginary parts of complex X and/or Y arguments ignored.
> In Untitled2 at 14
Warning: Imaginary parts of complex X and/or Y arguments ignored.
> In Untitled2 at 14
Elapsed time is 129.634194 seconds.

[ 本帖最后由 花如月 于 2007-8-2 22:30 编辑 ]

zhlong 发表于 2007-8-3 07:42

回复 #11 花如月 的帖子

呵呵,我昨天也试了一下循环,不过循环很慢。

无水1324 发表于 2007-8-3 08:50

直接ezplot可以吗?

zhlong 发表于 2007-8-3 08:53

回复 #13 无水1324 的帖子

谢谢,我想得到给定点的数据。

花如月 发表于 2007-8-3 08:56

回复 #13 无水1324 的帖子

隐函数绘图,能绘制解的曲线么?我没有用过呀,还望指点。我的程序很慢,都是比较笨的办法。有好办法当然再好不过了
页: [1] 2
查看完整版本: 多项式求解问题