登录论坛

查看完整版本 : [求助]我是新手,问一个很简单的小问题


lry122
2008-12-12, 22:23
请问sinxcosx的三次方在-pi到pi的定积分应该怎么求

我的表达式是这么输入的

x=-pi:pi/50:pi
y=sin(x)^(1/3)*cos(x)^(1/3)
trapz(x,y)

可是老被提示错误:
??? Error using ==> ^
Matrix must be square.

请问我错在哪里

lukehiker
2008-12-13, 09:25
请问sinxcosx的三次方在-pi到pi的定积分应该怎么求

我的表达式是这么输入的

x=-pi:pi/50:pi
y=sin(x)^(1/3)*cos(x)^(1/3)
trapz(x,y)

可是老被提示错误:
??? Error using ==> ^
Matri...

x变量是一个1×101的向量,你的第二个表达式是在对这个向量进行操作。试问一个1×101的向量乘以一个1×101的向量怎么会有结果?你是想表达x的第n个元素跟x的第n的元素相乘,然后赋予y。通常这种情况下用.*, 通常对矩阵的操作都用‘点儿什么’,^也应该改成.^其实‘点儿什么’是matlab强大的功能之一,相当于内置的循环,但是比循环更方便,看上去也更紧凑。

PS: 表达式的最后最好加个分号;,这样就command window看上去会整洁一些。

cheers

mathjiang
2008-12-14, 09:48
楼上这么详细的解答,楼主都没有说句话?

sqqssqq
2008-12-14, 12:43
这个问题一般的书里都有讲啊

debateshang
2008-12-14, 13:25
x=-pi:pi/50:pi
y=sin(x).^(1/3).*cos(x).^(1/3);
trapz(x,y)
但我算了一下结果 1.5193 + 2.6314i怎么是复数呀不明白