感悟网 导航

matlab双重求和 ∑∑[2sin(m*pi/2)*sin(n*pi/2)]/[1512.36(m^2+n^2)-(2pi*f)^2],m,n从0至100,结果含f

作者&投稿:箕茅 (若有异议请与网页底部的电邮联系)
我绘制的matlab图形是空白的 >> a=0:0.1:pi/2; >> L=5; >> M=L.*(1-cos(a))/sin(a).^2; >> plot(a,M)~

更改下颜色:
plot(a,M,'p')

%f(x)=sin^2(m/100)x,x属于[0,pi],m=403
%(1)-----------------
x=0:0.01:pi;
m=403;
f = sin(m*x/100).^2;
plot(x,f);
%(2)---------------
n=100;
x1 = 0:pi/n:pi;
x1 = x1 + pi/2*n;
x1 = x1(1:n-1);
f1 = sin(m*x/100).^2;
n=200;
x2 = 0:pi/n:pi;
x2 = x2 + pi/2*n;
x2 = x2(1:n-1);
f2 = sin(m*x/100).^2;
n=1000;
x3 = 0:pi/n:pi;
x3 = x3 + pi/2*n;
x3 = x3(1:n-1);
f3 = sin(m*x/100).^2;
%(3)--------------------------
m1 = (99*mean(f1)+199*mean(f2)+999*mean(f3))/(99+199+999);
disp('由2产生的函数值的平均值')
disp(m1)
%(4)-----------------------
xx = fsolve(@(x) sin(m*x/100)^2-m1,0.1);
disp('对于x解方程f(x)=均值')
disp(xx)

楼主你好,这个matlab程序中,一个关键的问题是如何定义符号变量,我使用的是syms来定义的。另外有一点需要强调的是,matlab中,计算sin(n*pi)时,会有一定的误差,不是完全的为0,(这个楼主可以自己用matlab实验一下,我也是回答你这个问题的时候才发现的),而实际上,sin(n*pi)=0,在这个计算中,当m或n为偶数时,那一项都会是0,所以为了我们只用计算当m和n都为奇数时的和就可以了,程序如下:
clc
clear all
syms f;
sum=0;
for m=1:2
for n=1:2
sum=sum+(2*sin((2*m-1)*pi/2)*sin((2*n-1)*pi/2))/(1512.36*((2*m-1)^2+(2*n-1)^2)-(2*pi*f)^2);
end
end
sum
望楼主采纳。

   

返回顶部
本页内容来自于网友发表,若有相关事宜请照下面的电邮联系
感悟网