高分求助:matlab求积分

来源:百度知道 编辑:UC知道 时间:2024/06/19 13:58:09
希望能编一个程序完成下面的计算:
在zr=0:0.5:100的条件下,求出sin(o1)^2*zr^2的积分结果,o1的范围是(0,pi/2).
要能显示出不同zr的值下,积分的数值结果.
能用后追加分数.
由于实际积分的函数比较复杂,希望能将被积函数编成函数文件,然后在程序中调用该文件.或者有更好的方法也行.

是sin(o1^2),还是sin(o1)*sin(o1)啊

可以用数值积分,也可以用符号积分,但数值积分的应用范围比符号的广。
这里用的是数值积分。

在Matlab下输入:edit,然后将下面两行百分号之间的内容,复制进去,保存
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function y=kydouya(x)
global z;
y=sin(x).*sin(x).*z.^2;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

返回到Matlab中。输入:
global z;
zr=0:0.5:100; %参变量
x0=0; %积分下界
x1=pi/2; %积分上界

y=[];
for z=zr
y=[y,quad('kydouya',0,pi/2)];
end
y

就可以得到每个zr下的积分值。

这里要注意的是,你的函数表达式(就是那个kydouya文件中,有很多在点运算)。

在Matlab下输入:edit,然后将下面两行百分号之间的内容,复制进去,保存
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function y=kydouya(x)
global z;
y=sin(x).*sin(x).*z.^2;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

返回到Matlab中。输入:
global z;
zr=0:0.5:100; %参变量
x0=0; %积分下界
x1=pi/2; %积分上界

y=[];
for z=zr
y=[y,quad('kydouya',0