建立模型y=f(x1,x2,x3,x4),因为y是关于x1,x2,x3,x4的线性函数,所以有f(x1,x2,x3,x4)=a0+a1x1+a2x2+a3x3+a4x4,
x1=[2,3,7,6,5]';x2=[1,5,8,6,7]';x3=[4,7,9,12,10]';
x4=[5,8,10,13,11]';y=[23,28,32,40,35]';
F=[ones(size(y)),x1,x2,x3,x4];
a=F\y; %最小二乘法求得线性参数
F =
1 2 1 4 5
1 3 5 7 8
1 7 8 9 10
1 6 6 12 13
1 5 7 10 11
Warning: Matrix is singular to working precision
> In multiple1 (line 7)
a =
NaN
NaN
NaN
-Inf
Inf
>> det(F)
ans =
0
得不出线性参数a,矩阵F是奇异的
可能你的数据有问题,我用多项式回归分析试试
还是不行,请大神来回答吧
x=linspace(0,2pi,101);
y=cos(05+((3sin(x))/(1+x^2)))
plot(x,y)
a=[1 -4 0 3 -2 6];
x=linspace(-2,8,100);
y=polyval(a,x);
plot(x,y,x,zeros(1,100))
不知道你的程序是要什么样的结果,单纯从代码来看,就是全角和半角的问题。我已经修改如下:
建立M文件eq1.m
function dy=eq1(x,y)
dy=zeros(2,1);
dy(1)=y(2);
dy(2)=1/5sqrt(1+y(1)^2)/(1-x);
取x0=0,xf=0.9999,建立主程序如下:
x0=0;
xf=09999;
[x,y]=ode15s('eq1',[x0 xf],[0 0]);
plot(x,y(:,1),'b')
hold on
y=0:001:2;
plot(1,y,'b')
得到的图像是
不可以直接搜,需要用到添加工具箱到matlab搜索路径,要不用代码,要不用界面才可以使用。
MATLAB是美国MathWorks公司出品的商业数学软件,用于数据分析、无线通信、深度学习、图像处理与计算机视觉、信号处理、量化金融与风险管理、机器人,控制系统等领域。
MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室),软件主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中。
为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式。MATLAB和Mathematica、Maple并称为三大数学软件。
它在数学类科技应用软件中在数值计算方面首屈一指。行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。
在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。
软件功能
应用领域:数值分析、数值和符号计算、工程与科学绘图、控制系统的设计与仿真、数字图像处理、数字信号处理、通讯系统设计与仿真、财务与金融工程等。
重要功能
1、MATLAB®:MATLAB语言的单元测试框架。
2、Trading Toolbox™:一款用于访问价格并将订单发送到交易系统的新产品。
3、Financial Instruments Toolbox™:赫尔-怀特、线性高斯和LIBOR市场模型的校准和Monte Carlo仿真。
4、Image Processing Toolbox™:使用有效轮廓进行图像分割、对10个函数实现C代码生成,对11个函数使用GPU加速。
5、Image Acquisition Toolbox™:提供了用于采集图像、深度图和框架数据的Kinect® for Windows®传感器支持。
6、Statistics Toolbox™:用于二进制分类的支持向量机(SVM)、用于缺失数据的PCA算法和 Anderson-Darling拟合优度检验。
7、Data Acquisition Toolbox™:为Digilent Analog Discovery Design Kit提供了支持包。
8、Vehicle Network Toolbox™:为访问CAN总线上的ECU提供XCP。
优势特点
1、高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来。
2、具有完备的图形处理功能,实现计算结果和编程的可视。
3、友好的用户界面及接近数学表达式的自然化语言,使学者易于学习和掌握。
4、功能丰富的应用工具箱(如信号处理工具箱、通信工具箱等),为用户提供了大量方便实用的处理工具。
X的倒数第三个元素是x(end-2),这是MATLAB考试题库内的一道题。x(end)表示的是数组X中的最后一个元素。x(1)表示的是数组X中的第一个元素。
引用一维数组内元素的方法是用数组代号加上元素在数组内的位置,例如:
设数组X=[1,2,3,4,5,6]
则X(1)=1,X(2)=2,X(end)=6。
扩展资料:
MATLAB中二维数组内元素的引用方法,同样是数组代号加上元素的位置,例如X(a,b),其中X表示二维数组X,a是元素在二维数组中所在的行,b表示元素在二维数组中所占的列。例如:
X=[1,2,3;4,5,6;7,8,9]这个在MATLAB中就表示一个3x3D的二维数组,数组的第一行是1,2,3;第二行是4,5,6;第三行是7,8,9 。则有:
X(1,1)=1;
X(1,2)=2;
X(2,1)=4;
X(2,2)=5;
X(3,3)=9;
%哥们,试试我这个
function A=triarea(a,b,c)
if a<0|b<0|c<0
disp('The a,b,c must be positive mumber');
return; %改为return了,因为break语句使用在循环和case语句中的
end
if a+b<c|a+c<b|b+c<a
disp('This is impossible');
return; %改为return了,因为break语句使用在循环和case语句中的
end
s=(a+b+c)/2;
A=s(s-a)(s-b)(s-c)^(1/2);
解题过程参看下面的图。图中的点是原始数据点,线是拟合后的曲线。
下面给出代码:
%以下是Matlab代码:
t=[0 20 40 60 80 100 120 140 160 184];
n=[0 1141 2019 2760 3413 4004 4545 5051 5525 6061];
A=[sum(n^4),sum(n^3);sum(n^3),sum(n^2)];
B=[sum(tn^2);sum(tn)];
x=A\B;
a=x(1)
b=x(2)
t_fit=an^2+bn;
plot(n,t,'r',n,t_fit);
xlabel('n'); ylabel('t');
legend('source data','fitting data')
最后得到结果:
a = 26113e-006
b = 00145
当然你也可以参照一楼的matlab程序,他是直接调用系统的多项式拟合函数。
另外,还可以这样:
AA=[n^2;n]';
BB=t';
xx=AA\BB;
aa=xx(1)
bb=xx(2)
结果也是一样的。这个很简洁,但很有技巧,你看一下AA,BB的构造。
xx=AA\BB可以求解长方阵的逆。
以上就是关于求matlab程序,给定4组数据x1=[2,3,7,6,5];x2=[1,5,8,6,7全部的内容,包括:求matlab程序,给定4组数据x1=[2,3,7,6,5];x2=[1,5,8,6,7、求救,MATLAB程序设计期末作业第二题第三题,求答案!!!!、matlab 程序问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)