声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2502|回复: 13

[编程技巧] 请教:积分积出复数

[复制链接]
发表于 2006-10-19 10:31 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
用quad积分积出复数,怎么回事啊?我画了一下所积函数的图,也没发现复数啊,请高人指教啊~~~~~~~~~~

评分

1

查看全部评分

回复
分享到:

使用道具 举报

发表于 2006-10-19 11:00 | 显示全部楼层
把你的积分函数给一下,应该不会出现这种情况
 楼主| 发表于 2006-10-19 22:43 | 显示全部楼层
x^0.2*cos(x)
 楼主| 发表于 2006-10-19 22:44 | 显示全部楼层
补充:
从-1到1积分
发表于 2006-10-20 08:56 | 显示全部楼层
fun=inline('x.^0.2.*cos(x)') ;
>> I=quad(fun,-1,1)

I =

   1.2390 + 0.4026i

这个是我计算的结果,一时之间也不知道为什么.

下面用trapz()函数计算:
x=-1:0.1:1;
y=x.^2.*cos(x);
>> I=trapz(x,y)

I =

    0.4787
第二个结果应该是对的...
发表于 2006-10-20 09:11 | 显示全部楼层
原帖由 amygod 于 2006-10-19 22:43 发表
x^0.2*cos(x)


很显然,当x<0的时候
x^0.2是复数
发表于 2006-10-20 09:17 | 显示全部楼层
原帖由 fanghuikeer 于 2006-10-20 08:56 发表
fun=inline('x.^0.2.*cos(x)') ;
>> I=quad(fun,-1,1)

I =

   1.2390 + 0.4026i

这个是我计算的结果,一时之间也不知道为什么.

下面用trapz()函数计算:
x=-1:0.1:1;
y=x.^2.*cos(x);
>& ...



第二个也是错的,函数给错了
发表于 2006-10-20 10:48 | 显示全部楼层
楼上你确信  当x<0的时候  x^0.2是复数???/
明摆着不是复数。。。
发表于 2006-10-20 11:42 | 显示全部楼层
原帖由 fanghuikeer 于 2006-10-20 10:48 发表
楼上你确信  当x<0的时候  x^0.2是复数???/
明摆着不是复数。。。

>> (-1)^0.2

ans =

   0.8090 + 0.5878i
明摆着不是复数
呵呵,你给一个不是复数的例子吧
发表于 2006-10-20 12:04 | 显示全部楼层
原帖由 jimin 于 2006-10-20 11:42 发表

>> (-1)^0.2

ans =

   0.8090 + 0.5878i
明摆着不是复数
呵呵,你给一个不是复数的例子吧



呵呵,楼主的函数可能给错了,也许是(abs(x))^0.2.
发表于 2006-10-20 12:06 | 显示全部楼层
(-1)^0.2
有五个值,假如你学过复数知识的话
给你一个例子
(-1)^0.2=-1
错了吗?

评分

1

查看全部评分

发表于 2006-10-20 12:19 | 显示全部楼层
有道理有道理,和(-8)^(1/3)解出来为复数是一个道理。

以前讨论过(-8)^(1/3)的问题,matlab并不是一定给出实数解。

这么说写成sign(x)*(abs(x))^0.2就可以了?

[ 本帖最后由 toes 于 2006-10-20 12:22 编辑 ]
发表于 2006-10-20 18:14 | 显示全部楼层
个人了解:负数的不是整数的次方都能产生复数的
 楼主| 发表于 2006-10-21 13:46 | 显示全部楼层
原来的函数并没给错,谢谢各位的解答~!
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-25 05:35 , Processed in 0.074136 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表