作业帮 > 综合 > 作业

知道方程式和很多x值 怎样求对应的很多个y值 用matlab编程

来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/10/05 08:32:35
知道方程式和很多x值 怎样求对应的很多个y值 用matlab编程
函数是f(x)=a0 + a1*cos(x*w) + b1*sin(x*w) +
a2*cos(2*x*w) + b2*sin(2*x*w) + a3*cos(3*x*w) + b3*sin(3*x*w) +
a4*cos(4*x*w) + b4*sin(4*x*w) + a5*cos(5*x*w) + b5*sin(5*x*w) +
a6*cos(6*x*w) + b6*sin(6*x*w) + a7*cos(7*x*w) + b7*sin(7*x*w) +
a8*cos(8*x*w) + b8*sin(8*x*w)
知道方程式和很多x值 怎样求对应的很多个y值 用matlab编程
%{
楼主的函数:
f(x) = a0 + a1*cos(x*w) + b1*sin(x*w) +
a2*cos(2*x*w) + b2*sin(2*x*w) + a3*cos(3*x*w) + b3*sin(3*x*w) +
a4*cos(4*x*w) + b4*sin(4*x*w) + a5*cos(5*x*w) + b5*sin(5*x*w) +
a6*cos(6*x*w) + b6*sin(6*x*w) + a7*cos(7*x*w) + b7*sin(7*x*w) +
a8*cos(8*x*w) + b8*sin(8*x*w)
%}
% 楼主做的是8阶Fourier级数展开.
a = rand(1,9); % a是9个常数构成的向量,楼主在此替换自己的a值;
b = rand(1,8); % b是8个常数构成的向量,楼主在此替换自己的b值;
w = rand; % w是个常数,楼主在此替换自己的w值;
f = @(x)a(1) + ...
a(2)*cos(x*w) + b(1)*sin(x*w) + ...
a(3)*cos(2*x*w) + b(2)*sin(2*x*w) + ...
a(4)*cos(3*x*w) + b(3)*sin(3*x*w) + ...
a(5)*cos(4*x*w) + b(4)*sin(4*x*w) + ...
a(6)*cos(5*x*w) + b(5)*sin(5*x*w) + ...
a(7)*cos(6*x*w) + b(6)*sin(6*x*w) + ...
a(8)*cos(7*x*w) + b(7)*sin(7*x*w) + ...
a(9)*cos(8*x*w) + b(8)*sin(8*x*w);
x = rand(32,1);% 楼主在此替换自己的x值;
y = f(x);
或者 更一般地,有
%{
楼主的函数:
f(x) = a0 + a1*cos(x*w) + b1*sin(x*w) +
a2*cos(2*x*w) + b2*sin(2*x*w) + a3*cos(3*x*w) + b3*sin(3*x*w) +
a4*cos(4*x*w) + b4*sin(4*x*w) + a5*cos(5*x*w) + b5*sin(5*x*w) +
a6*cos(6*x*w) + b6*sin(6*x*w) + a7*cos(7*x*w) + b7*sin(7*x*w) +
a8*cos(8*x*w) + b8*sin(8*x*w)
%}
% 楼主做的是8阶Fourier级数展开.
function y = funfourier(x)
n = 9; % Fourier级数展开阶数;
a = rand(1,n); % a是n个常数构成的向量,楼主在此替换自己的a值;
b = rand(1,n); % b是n个常数构成的向量,楼主在此替换自己的b值;
w = rand; % w是个常数,楼主在此替换自己的w值;
s = 0;
for k = 1:n
s = s + a(k)*cos((k-1)*w*x) + b(k)*sin((k-1)*w*x);
end
y = s;