MATLAB程序有个错误看不懂?
简而言之,19行不是个正确的语句。
matlab跟c++语法不一样。
c语言中有i++ 其意思等同于i=i+1
matlab中只能用后者,也就是i=i+1
所以19行可参考这个进行更改。
本回答来自一匹大懒虫
MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
withe_y(i+1,1)=withe_y(i,1)+ 1
没错没错,还是你的答案有效果,采纳了
x0=[41,49,61,78,96,104];
n=length(x0);
x1=cumsum(x0);
a_x0=diff(x0)';
z=0.5*(x1(2:end)+x1(1:end-1))';
B=[-x0(2:end)',-z,ones(n-1,1)];
Y=a_x0;
u=B\Y; %小二乘法拟合参数
%下面求微分方程边值问题的解
x=dsolve('D2x+a1*Dx+a2*x=b','x(0)=c1,x(5)=c2');
x=subs(x,{'a1','a2','b','c1','c2'},{u(1),u(2),u(3),x1(1),x1(6)});
yuce=subs(x,'t',0:n-1);
digits(6),x=vpa(x);
x0_hat=diff(yuce);
%x0_hat=[yuce(1),diff(yuce)];
x0_hat=round(x0_hat); %四舍五入取整数
epsilon=x0-double(x0_hat); %求残差
delta=abs(epsilon./x0); %求相对误差