1、确定x在【-300,300】中,取若干个x(i)数据,如
x=-300:10:300
2、扮碰凳使用for循环语句,将x(i)代入积分函数I(x)中,使用int函数计算其积分值,同吵行时将值赋值给Ix数组变量中
for n=1:600/t+1
syms x
A_1=int(cos((pi*(x^2))/2),x,a1(1,n),a2(1,n))
A_2=int(sin((pi*(x^2))/2),x,a1(1,n),a2(1,n))
Ix(n)=1000*(lambda/(2*L))*((A_1)^2+(A_2)^2)
end
3、最后用厅旅plot函数,绘出其x—I(x)的图形
运行程序,可以得到如下结果。
Matlab计算定积分的具体步骤如下:1、以f(x)=e^2x+sin(x+π/3) ,积分下限:a=0,积分上限:b=π/4 为例。首先,建立被积函数M文件;点击New,选择Function;
2、在编辑器中输入指令:function f=f(x);f=exp(2*x).*sin(x+pi/3)(注意,用 .* )
3、保存函数文件到自己的工喊老者作路径,比如G:\matlab\work。
输入指令:cd G:\matlab\work,是该路径成为当郑薯前路径。
4、matlab中计算积分的两种指令:
1.F=quad('fname',a,b,tol,trace) Simpson数值积分法
2.F=quad8('fname',a,b,tol,trace) Newton-Cotes数值积分法
其中: fname是被积函数表达式或函数名,a,b分别是上下限,tol可以控制积分精度,省略则取0.001;trace=1则用图形表示积分过程,trace=0,没有图形。
两者 比较含悉,quad8精度更高。
5、调用积分函数squad进行计算。输入指令: F=quad('f(x)',0,pi/4),如图,回车后可得到计算结果1.8612。其他函数,只要修改函数文件中的表达式即可。
你好!大神在此!
主程序宽首燃:
%matlab编写积分程序请问哪位大神能编写下面的程序:不胜感激clcclear all
global t
R=1:0.01:5
m=zeros(size(R))
for i=1:length(R)
芹洞 t=R(i)
m(i)=integral2(@f,0,R(i),0,2*pi)
end
plot(R,m)
xlabel('R')
ylabel('m')
title('m-R 慎虚Curve')
函数程序:
function c=f(r,theta)global t
c=r.*sqrt((t*cos(theta)-r).^2+t^2*(sin(theta)).^2)
end
画出效果:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)