科学班数学实验与Matlab作业
作业1.求Fibonacci数列中第一个大于10000的数。
>> f1=1;f2=1;n=2;
>> while f2<=10000
f2=f1+f2;
f1=f2-f1;
n=n+1;
end
>> f2
f2 =
10946
>> n
n =
21
作业2.在同一个图形窗口中画出如下三个函数的图像,要求使用指令gtext、axis、legend、title、xlabel、ylabel:
1. y1=exp(x/3)sin(3x),0<x<4pi
2. y2=exp(x/3), 0<x<4pi
3. Y3=-exp(x/3), 0<x<4pi
>> x=0:0.1:4*pi;
>> y1=exp(x/3).*sin(3*x);y2=exp(x/3);y3=-exp(x/3);
>> plot(x,y1,'.r');hold on;plot(x,y2,':b');hold on;plot(x,y3,':g');
>> title('函数及其包络线');xlabel('x轴');ylabel('y轴');
>> axis tight;
>> gtext('函数y1');gtext('上包络线y2');gtext('下包络线y3');
>> legend('函数y1','上包络线y2','下包络线y3');
>> legend('函数y1','上包络线y2','下包络线y3',0);
函数图像如下所示:
作业3.,求a的值使得 1. a4不能由a1、a2、a3线性表示。 2. a4可以由a1、a2、a3线性表示,并写出表达式。
>> syms a
>> a1=[1 4 0 2]';a2=[2 7 1 3]';a3=[0 1 -1 1]';a4=[3 10 a 4]';
>> A=[a1,a2,a3,a4];
>> A1=[A(1,:)./A(1,1);A(2,:)-A(2,1)/A(1,1)*A(1,:);
A(3,:)-A(3,1)/A(1,1)*A(1,:);A(4,:)-A(4,1)/A(1,1)*A(1,:)]
A1 =
[ 1, 2, 0, 3]
[ 0, -1, 1, -2]
[ 0, 1, -1, conj(a)]
[ 0, -1, 1, -2]
>> A2=[A1(1,:)-A1(1,2)/A1(2,2)*A1(2,:);A1(2,:)/A1(2,2);
A1(3,:)-A1(3,2)/A1(2,2)*A1(2,:);A1(4,:)-A1(4,2)/A1(2,2)*A1(2,:)]
A2 =
[ 1, 0, 2, -1]
[ 0, 1, -1, 2]
[ 0, 0, 0, conj(a)-2]
[ 0, 0, 0, 0]
ANSWER1:当时,a4不能由a1,a2,a3线性表示;:
当时,a4能由a1,a2,a3线性表示;
>> rref([a1,a2,a3])
ans =
1 0 2
0 1 -1
0 0 0
0 0 0
%a1,a2,a3线性相关,a3可以由a1,a2线性表示;
>>a4(3)=2
a4 =
3
10
2
4
>> A=[a1,a2,a3];B=a4;
>> x=A\B
Warning: System is rank deficient. Solution is not unique.
> In sym.mldivide at 41
x =
-1
2
0
ANSWER2:当时,a4能由a1,a2,a3线性表示,;
作业4.洛伦兹方程是一组典型的非线性方程,来源于大气物理研究。在一定的参数下,方程的解表现出了非常复杂而又有趣的现象。请数值求解如下洛伦兹方程
积分初值选任意不全为0的数值即可,要求(1)编写程序求解上述方程组(2)绘制三条运动轨道(x(t),y(t),z(t)) (3)观察不同初值的影响,观察最终运动状态。取四组不同的初值,将其运动轨道画在一副图上,要求使用subplot。并描述你的心得体会。
(1)建立m-文件nzq.m如下:
function dy=nzq(t,y)
dy=zeros(3,1);
dy(1)=10*(y(2)-y(1));
dy(2)=y(1)*(28-y(3))-y(2);
dy(3)=y(1)*y(2)-8/3*y(3);
End
(2)>> [T,Y]=ode45(@nzq,[0 60],[1 0 0]);
subplot(2,2,1)
plot3(Y(:,1),Y(:,2),Y(:,3));
title('初值[1 0 0]');xlabel('x');ylabel('y');zlabel('z');
>> [T,Y]=ode45(@nzq,[0 60],[-1 0 0]);
subplot(2,2,2)
plot3(Y(:,1),Y(:,2),Y(:,3));
title('初值[-1 0 0]');xlabel('x');ylabel('y');zlabel('z');
>> [T,Y]=ode45(@nzq,[0 60],[10 30 50]);
subplot(2,2,3)
plot3(Y(:,1),Y(:,2),Y(:,3));
title('初值[10 30 50]');xlabel('x');ylabel('y');zlabel('z')
>> [T,Y]=ode45(@nzq,[0 60],[100 300 505]);
subplot(2,2,4)
plot3(Y(:,1),Y(:,2),Y(:,3));
title('初值[100 300 500]');xlabel('x');ylabel('y');zlabel('z');
心得体会:matlab的绘图功能十分方便,它的绘图命令简单明了、容易掌握,非常常用,绘图命令控制和表现数据图形的能力强大、灵活多变。除此之外,matlab还具有高效的数值计算及符号计算功能强,当然这一定程度上要归功于maple。总之,作为数学专业的学生,掌握好matlab软件是必须的,借助它的强大功能,我们可以更好地应用数学知识解决好实际问题。
第二篇:Matlab上机操作实验报告1
Matlab上机操作实验报告
2014020904003 电工四班吕及时
一、实验目的
通过上机编程实验,使自己熟悉对MATLAB软件平台的使用、掌握MATLAB的编程技巧,让自己对MATLAB软件平台在科学计算中的重要作用有深入了解。
二、实验内容
1. 熟练掌握矩阵的生成、加、减、乘、除、转置、行列式、逆、范数等运算操作。(用.m文件和Matlab函数编写一个对给定矩阵进行运算操作的程序)
2. 熟练掌握算术符号操作和基本运算操作,包括矩阵合并、向量合并、符号转换、展开符号表达式、符号因式分解、符号表达式的化简、代数方程的符号解析解、特征多项式、函数的反函数、函数计算器、微积分、常微分方程的符号解、符号函数的画图等。(用.m文件编写进行符号因式分解和函数求反的程序)
3. 掌握Matlab函数的编写规范。
4、掌握Matlab常用的绘图处理操作,包括:基本平面图、图形注释命令、三维曲线和面的填充、三维等高线等。(用.m文件编写在一个图形窗口上绘制正弦和余弦函数的图形,并给出充分的图形注释)
5. 熟练操作MATLAB软件平台,能利用M文件完成MATLAB的程序设计。
四、实验过程
矩阵运算和Matlab编程
五、程序设计实验题目
1. 编程实现以下数列的图像,用户能输入不同的初始值以及系数。并以x,y为坐标显示图像
x(n+1) = a*x(n)-b*(y(n)-x(n)^2);
y(n+1) = b*x(n)+a*(y(n)-x(n)^2)
解:
2.编程实现奥运5环图像,允许用户输入环的直径。
解:
3.实现对输入任意长度向量元素的冒泡排序的升序排列。不允许使用sort函数。
解: