
Matlab出现的问题
clear
clc
n=[3,6,10];%项数,可以任意加,任意改
m=length(n);
x=(0:0.2:2.0)';%自变量
y=ones(length(x),m);%近似值
for j=1:m
for i=1:n(j)
y(:,j)=1+y(:,j).*x/(n(j)+1-i);
end
end
%显示结果
disp([x,exp(x),y])
%画图
plot(x,y)
hold on
plot(x,exp(x),':k')
legend(strsplit([sprintf('n=%d,',n),'realval'],','),'Location','NorthWest')
运行结果:
0 1.0000 1.0000 1.0000 1.0000
0.2000 1.2214 1.2213 1.2214 1.2214
0.4000 1.4918 1.4907 1.4918 1.4918
0.6000 1.8221 1.8160 1.8221 1.8221
0.8000 2.2255 2.2053 2.2255 2.2255
1.0000 2.7183 2.6667 2.7181 2.7183
1.2000 3.3201 3.2080 3.3193 3.3201
1.4000 4.0552 3.8373 4.0527 4.0552
1.6000 4.9530 4.5627 4.9464 4.9530
1.8000 6.0496 5.3920 6.0341 6.0496
2.0000 7.3891 6.3333 7.3556 7.3890
绘制图像:
请问能不能生成上面我要的表格(就是问题的那个表格。)
然後用subplot,生成三个图像在一起,项数分别是3.6.10三幅图像。
clear
clc
n=[3,6,10];%项数,可以任意加,任意改
m=length(n);%近似曲线的个数
x=(0:0.2:2.0)';%自变量
y=ones(length(x),m);%近似值
col=floor(sqrt(m));% subplot的列数
row=ceil(m/col);% subplot的行数
labels=strsplit(sprintf('n=%d,',n),',');%标签
for j=1:m
for i=1:n(j)
y(:,j)=1+y(:,j).*x/(n(j)+1-i);
end
%画图
subplot(row,col,j)
hold on
plot(x,y(:,j),'color',0.5+0.5*sin(([0,1,-1]+3*j/m)*2/3*pi))%近似曲线
plot(x,exp(x),'--k')%真实曲线
legend({labels{j},'realval'},'Location','NorthWest');%标签
end
%显示结果
fprintf('x\t\t真实值\t')
fprintf('n=%d\t\t',n)
fprintf('\n')
for k=1:length(x)
fprintf('%.3f\t',[x(k),exp(x(k)),y(k,:)])
fprintf('\n')
end
x = (0:.2:2)';
n = 0 : 3; %按照要求可以换成0 : 6或者0 : 10
mx = repmat(x,1,length(n));
mn = repmat(n,length(x),1);
xn = mx .^ mn;
fn = factorial(mn);
approx_e = sum(xn./fn,2);
true_e = exp(x);
result = [x true_e approx_e];
这样就可以了。我相信你用这个代码交作业老师同学都跪拜了:)
大神。。。。这个太复杂。。老师还没教到。。。求只用for语句来编。。。求破。。还有一个问题。。。。怎么出不了图像和数据。。。。。。。。。。。