Matlab与数学实验
matlab实验报告

2015秋2013级《MATLAB程序设计》实验报告实验一班级:软件131姓名:陈万全学号:132852一、实验目的1、了解MATLAB程序设计的开发环境,熟悉命令窗口、工作区窗口、历史命令等窗口的使用。
2、掌握MATLAB常用命令的使用。
3、掌握MATLAB帮助系统的使用。
4、熟悉利用MATLAB进行简单数学计算以及绘图的操作方法。
二、实验内容1、启动MATLAB软件,熟悉MATLAB的基本工作桌面,了解各个窗口的功能与使用。
图1 MATLAB工作桌面2、MATLAB的常用命令与系统帮助:(1)系统帮助help:用来查询已知命令的用法。
例如已知inv是用来计算逆矩阵,键入help inv即可得知有关inv命令的用法。
lookfor:用来寻找未知的命令。
例如要寻找计算反矩阵的命令,可键入lookfor inverse,MATLAB即会列出所有和关键字inverse相关的指令。
找到所需的命令後,即可用help进一步找出其用法。
(2)数据显示格式:常用命令:说明format short 显示小数点后4位(缺省值)format long 显示15位format bank 显示小数点后2位format + 显示+,-,0format short e 5位科学记数法format long e 15位科学记数法format rat 最接近的有理数显示(3)命令行编辑:键盘上的各种箭头和控制键提供了命令的重调、编辑功能。
具体用法如下:↑----重调前一行(可重复使用调用更早的)↓----重调后一行→----前移一字符←----后移一字符home----前移到行首end----移动到行末esc----清除一行del----清除当前字符backspace----清除前一字符(4)MATLAB工作区常用命令:who--------显示当前工作区中所有用户变量名whos--------显示当前工作区中所有用户变量名及大小、字节数和类型disp(x) -----显示变量X的内容clear -----清除工作区中用户定义的所有变量save文件名-----保存工作区中用户定义的所有变量到指定文件中load文件名-----载入指定文件中的数据三、源程序和实验结果1、在命令窗口执行命令完成以下运算,观察workspace 的变化,记录运算结果。
MATLAB语言与数学实验(江世宏编著)PPT模板

第二篇 数值分析
第7章 插值法
03 实验题
02
7.8 拉格朗日插值 多项式与三次样条
插值函数的比较
01
7.7 拉格朗日插值 多项式与埃米特插
值多项式的比较
第二篇 数值分析
第8章 函数的数值逼 近
0 1 8.1 伯恩斯坦多项式逼近连续函数 的动画演示
02
8.2 式
函数的最佳平方逼近多项
0 3 8.3 希尔伯特矩阵的病态性
4.1 二维数据曲线图
4.1.1 绘制单根二维曲线 4.1.2 绘制多根二维曲线 4.1.3 设置曲线样式 4.1.4 图形标注 4.1.5 坐标控制 4.1.6 图形窗口的分割
第4章 绘图
4.2 其他二维图形
4.2.1 其他坐标系下的二维数据曲线图 4.2.2 隐函数作图
第4章 绘图
12.5 选
05
方阵列主
元的lu分
解
04
12.4 方阵
03 1 2 . 3 高 斯全主元 消去法
的lu分解
第二篇 数值分析
第12章 线性方程组求 解
0 1
12.7
法
平方根
0 2
12.8 改进的
平方根法
0 3
第3章 编程
3.2 程序控制结构
3.2.1 顺序结构 3.2.2 选择结构 3.2.3 循环结构
第3章 编程
3.3 函数文件
3.3.1 函数文件的基本结构 3.3.2 函数调用 3.3.3 字符串函数
第4章 绘图
4.1 二维数据曲线图 4.2 其他二维图形 4.3 三维图形 习题
第4章 绘图
第2章 常用的数学函数
2.4 matlab符号计算
MATLAB实验四_求微分方程的解

参数说明
[T,Y] = solver(odefun,tspan,y0)
odefun 为显式常微分方程,可以用命令 inline 定义,或 在函数文件中定义,然后通过函数句柄调用。
dy 2 2 y 2 x 2x 求初值问题 的数值解,求解范 例: dx 围为 [0,0.5] y( 0 ) 1
dsolve的输出个数只能为一个 或 与方程个数相等。
只有很少一部分微分方程(组)能求出解析解。 大部分微分方程(组)只能利用数值方法求数值解。
Matlab函数数值求解
[T,Y] = solver(odefun,tspan,y0)
其中 y0 为初值条件,tspan为求解区间;Matlab在数值求解 时自动对求解区间进行分割,T (列向量) 中返回的是分割点 的值(自变量),Y (数组) 中返回的是这些分割点上的近似解, 其列数等于因变量的个数。
数学实验
实验四
求微分方程的解
问题背景和实验目的
自牛顿发明微积分以来,微分方程在描述事物运 动规律上已发挥了重要的作用。实际应用问题通过 数学建模所得到的方程,绝大多数是微分方程。 由于实际应用的需要,人们必须求解微分方程。 然而能够求得解析解的微分方程十分有限,绝大多 数微分方程需要利用数值方法来近似求解。 本实验主要研究如何用 Matlab 来计算微分方程 (组)的数值解,并重点介绍一个求解微分方程的 基本数值解法--Euler折线法。
Runge-Kutta 方法
Euler 法与 R-K法误差比较
Matlab 解初值问题
用 Maltab自带函数 解初值问题 求解析解:dsolve 求数值解:
ode45、ode23、 ode113、ode23t、ode15s、 ode23s、ode23tb
MATLAB 《数学实验》报告9-Matlab的极限和微分运算

clear syms x F3=x*log(1+x)/sin(x^2) limit(F3,'x',0)
(4) F4
arctan x lim x x
Matlab 命令 结果 F4 = atan(x)/x ans = 0
clear syms x F4=atan(x)/x limit(F4,'x',inf)
clear%dier syms x y2=x*sin(x)*log(x) diff(y2,x)
结果 y2 = x*sin(x)*log(x) ans = sin(x)*log(x)+x*cos(x)*log(x)+sin(x)
(3) y 3
xe x 1 sin x
Matlab 命令 结果 y3 = (x*exp(x)-1)/sin(x) ans = (exp(x)+x*exp(x))/sin(x)-(x*exp(x)-1)/sin(x)^2*cos(x)
1
clear syms x F2=((1+x)/(1-x))^(1/x) limit(F2,'x',0)
F2 = ((1+x)/(1-x))^(1/x) ans = exp(2)
(3) F3
lim
x ln(1 x) 2 x 0 sin x
Matlab 命令 结果 F3 = x*log(1+x)/sin(x^2) ans = 1
x 0
arctan x ; x
结果 = atan(x)/x ans = 1
1
Matlab 命令
clear%µ þ ½· Ú¶ ÖÖ· ¨ syms x f=atan(x)/x limit(f,'x',0)
(完整版)MATLAB数学实验第二版答案(胡良剑)

数学实验答案Chapter 1Page20,ex1(5) 等于[exp(1),exp(2);exp(3),exp(4)](7) 3=1*3, 8=2*4(8) a为各列最小值,b为最小值所在的行号(10) 1>=4,false, 2>=3,false, 3>=2, ture, 4>=1,ture(11) 答案表明:编址第2元素满足不等式(30>=20)和编址第4元素满足不等式(40>=10)(12) 答案表明:编址第2行第1列元素满足不等式(30>=20)和编址第2行第2列元素满足不等式(40>=10)Page20, ex2(1)a, b, c的值尽管都是1,但数据类型分别为数值,字符,逻辑,注意a与c相等,但他们不等于b(2)double(fun)输出的分别是字符a,b,s,(,x,)的ASCII码Page20,ex3>> r=2;p=0.5;n=12;>> T=log(r)/n/log(1+0.01*p)Page20,ex4>> x=-2:0.05:2;f=x.^4-2.^x;>> [fmin,min_index]=min(f)最小值最小值点编址>> x(min_index)ans =0.6500 最小值点>> [f1,x1_index]=min(abs(f)) 求近似根--绝对值最小的点f1 =0.0328x1_index =24>> x(x1_index)ans =-0.8500>> x(x1_index)=[];f=x.^4-2.^x; 删去绝对值最小的点以求函数绝对值次小的点>> [f2,x2_index]=min(abs(f)) 求另一近似根--函数绝对值次小的点f2 =0.0630x2_index =65>> x(x2_index)ans =1.2500>> z=magic(10)z =92 99 1 8 15 67 74 51 58 4098 80 7 14 16 73 55 57 64 414 81 88 20 22 54 56 63 70 4785 87 19 21 3 60 62 69 71 2886 93 25 2 9 61 68 75 52 3417 24 76 83 90 42 49 26 33 6523 5 82 89 91 48 30 32 39 6679 6 13 95 97 29 31 38 45 7210 12 94 96 78 35 37 44 46 5311 18 100 77 84 36 43 50 27 59>> sum(z)>> sum(diag(z))>> z(:,2)/sqrt(3)>> z(8,:)=z(8,:)+z(3,:)Chapter 2Page 45 ex1先在编辑器窗口写下列M函数,保存为eg2_1.m function [xbar,s]=ex2_1(x)n=length(x);xbar=sum(x)/n;s=sqrt((sum(x.^2)-n*xbar^2)/(n-1));例如>>x=[81 70 65 51 76 66 90 87 61 77];>>[xbar,s]=ex2_1(x)Page 45 ex2s=log(1);n=0;while s<=100n=n+1;s=s+log(1+n);endm=nPage 40 ex3clear;F(1)=1;F(2)=1;k=2;x=0;e=1e-8; a=(1+sqrt(5))/2;while abs(x-a)>ek=k+1;F(k)=F(k-1)+F(k-2); x=F(k)/F(k-1);enda,x,k计算至k=21可满足精度clear;tic;s=0;for i=1:1000000s=s+sqrt(3)/2^i;ends,toctic;s=0;i=1;while i<=1000000s=s+sqrt(3)/2^i;i=i+1;ends,toctic;s=0;i=1:1000000;s=sqrt(3)*sum(1./2.^i);s,tocPage 45 ex5t=0:24;c=[15 14 14 14 14 15 16 18 20 22 23 25 28 ...31 32 31 29 27 25 24 22 20 18 17 16];plot(t,c)Page 45 ex6(1)x=-2:0.1:2;y=x.^2.*sin(x.^2-x-2);plot(x,y)y=inline('x^2*sin(x^2-x-2)');fplot(y,[-2 2]) (2)参数方法t=linspace(0,2*pi,100);x=2*cos(t);y=3*sin(t); plot(x,y)(3)x=-3:0.1:3;y=x;[x,y]=meshgrid(x,y);z=x.^2+y.^2;surf(x,y,z)(4)x=-3:0.1:3;y=-3:0.1:13;[x,y]=meshgrid(x,y);z=x.^4+3*x.^2+y.^2-2*x-2*y-2*x.^2.*y+6;surf(x,y,z)(5)t=0:0.01:2*pi;x=sin(t);y=cos(t);z=cos(2*t);plot3(x,y,z)(6)theta=linspace(0,2*pi,50);fai=linspace(0,pi/2,20); [theta,fai]=meshgrid(theta,fai);x=2*sin(fai).*cos(theta);y=2*sin(fai).*sin(theta);z=2*cos(fai);surf(x,y,z)(7)x=linspace(0,pi,100);y1=sin(x);y2=sin(x).*sin(10*x);y3=-sin(x);plot(x,y1,x,y2,x,y3)page45, ex7x=-1.5:0.05:1.5;y=1.1*(x>1.1)+x.*(x<=1.1).*(x>=-1.1)-1.1*(x<-1.1);plot(x,y)page45,ex9clear;close;x=-2:0.1:2;y=x;[x,y]=meshgrid(x,y);a=0.5457;b=0.7575;p=a*exp(-0.75*y.^2-3.75*x.^2-1.5*x).*(x+y>1);p=p+b*exp(-y.^2-6*x.^2).*(x+y>-1).*(x+y<=1);p=p+a*exp(-0.75*y.^2-3.75*x.^2+1.5*x).*(x+y<=-1);mesh(x,y,p)page45, ex10lookfor lyapunovhelp lyap>> A=[1 2 3;4 5 6;7 8 0];C=[2 -5 -22;-5 -24 -56;-22 -56 -16];>> X=lyap(A,C)X =1.0000 -1.0000 -0.0000-1.0000 2.0000 1.0000-0.0000 1.0000 7.0000Chapter 3Page65 Ex1>> a=[1,2,3];b=[2,4,3];a./b,a.\b,a/b,a\bans =0.5000 0.5000 1.0000ans =2 2 1ans =0.6552 一元方程组x[2,4,3]=[1,2,3]的近似解ans =0 0 00 0 00.6667 1.3333 1.0000矩阵方程[1,2,3][x11,x12,x13;x21,x22,x23;x31,x32,x33]=[2,4,3]的特解Page65 Ex 2(1)>> A=[4 1 -1;3 2 -6;1 -5 3];b=[9;-2;1];>> rank(A), rank([A,b]) [A,b]为增广矩阵ans =3ans =3 可见方程组唯一解>> x=A\bx =2.38301.48942.0213(2)>> A=[4 -3 3;3 2 -6;1 -5 3];b=[-1;-2;1];>> rank(A), rank([A,b])ans =3ans =3 可见方程组唯一解>> x=A\bx =-0.4706-0.2941(3)>> A=[4 1;3 2;1 -5];b=[1;1;1];>> rank(A), rank([A,b])ans =2ans =3 可见方程组无解>> x=A\bx =0.3311-0.1219 最小二乘近似解(4)>> a=[2,1,-1,1;1,2,1,-1;1,1,2,1];b=[1 2 3]';%注意b的写法>> rank(a),rank([a,b])ans =3ans =3 rank(a)==rank([a,b])<4说明有无穷多解>> a\bans =110 一个特解Page65 Ex3>> a=[2,1,-1,1;1,2,1,-1;1,1,2,1];b=[1,2,3]';>> x=null(a),x0=a\bx =-0.62550.6255-0.20850.4170x0 =11通解kx+x0Page65 Ex 4>> x0=[0.2 0.8]';a=[0.99 0.05;0.01 0.95];>> x1=a*x, x2=a^2*x, x10=a^10*x>> x=x0;for i=1:1000,x=a*x;end,xx =0.83330.1667>> x0=[0.8 0.2]';>> x=x0;for i=1:1000,x=a*x;end,xx =0.83330.1667>> [v,e]=eig(a)v =0.9806 -0.70710.1961 0.7071e =1.0000 00 0.9400>> v(:,1)./xans =1.17671.1767 成比例,说明x是最大特征值对应的特征向量Page65 Ex5用到公式(3.11)(3.12)>> B=[6,2,1;2.25,1,0.2;3,0.2,1.8];x=[25 5 20]'; >> C=B/diag(x)C =0.2400 0.4000 0.05000.0900 0.2000 0.01000.1200 0.0400 0.0900>> A=eye(3,3)-CA =0.7600 -0.4000 -0.0500-0.0900 0.8000 -0.0100-0.1200 -0.0400 0.9100>> D=[17 17 17]';x=A\Dx =37.569625.786224.7690Page65 Ex 6(1)>> a=[4 1 -1;3 2 -6;1 -5 3];det(a),inv(a),[v,d]=eig(a) ans =-94ans =0.2553 -0.0213 0.04260.1596 -0.1383 -0.22340.1809 -0.2234 -0.0532v =0.0185 -0.9009 -0.3066-0.7693 -0.1240 -0.7248-0.6386 -0.4158 0.6170d =-3.0527 0 00 3.6760 00 0 8.3766(2)>> a=[1 1 -1;0 2 -1;-1 2 0];det(a),inv(a),[v,d]=eig(a) ans =1ans =2.0000 -2.0000 1.00001.0000 -1.0000 1.00002.0000 -3.0000 2.0000v =-0.5773 0.5774 + 0.0000i 0.5774 - 0.0000i-0.5773 0.5774 0.5774-0.5774 0.5773 - 0.0000i 0.5773 + 0.0000id =1.0000 0 00 1.0000 + 0.0000i 00 0 1.0000 - 0.0000i(3)>> A=[5 7 6 5;7 10 8 7;6 8 10 9;5 7 9 10]A =5 76 57 10 8 76 8 10 95 7 9 10>> det(A),inv(A), [v,d]=eig(A)ans =1ans =68.0000 -41.0000 -17.0000 10.0000-41.0000 25.0000 10.0000 -6.0000-17.0000 10.0000 5.0000 -3.000010.0000 -6.0000 -3.0000 2.0000v =0.8304 0.0933 0.3963 0.3803-0.5016 -0.3017 0.6149 0.5286-0.2086 0.7603 -0.2716 0.55200.1237 -0.5676 -0.6254 0.5209d =0.0102 0 0 00 0.8431 0 00 0 3.8581 00 0 0 30.2887(4)(以n=5为例)方法一(三个for)n=5;for i=1:n, a(i,i)=5;endfor i=1:(n-1),a(i,i+1)=6;endfor i=1:(n-1),a(i+1,i)=1;enda方法二(一个for)n=5;a=zeros(n,n);a(1,1:2)=[5 6];for i=2:(n-1),a(i,[i-1,i,i+1])=[1 5 6];enda(n,[n-1 n])=[1 5];a方法三(不用for)n=5;a=diag(5*ones(n,1));b=diag(6*ones(n-1,1));c=diag(ones(n-1,1));a=a+[zeros(n-1,1),b;zeros(1,n)]+[zeros(1,n);c,zeros(n-1,1)] 下列计算>> det(a)ans =665>> inv(a)ans =0.3173 -0.5865 1.0286 -1.6241 1.9489-0.0977 0.4887 -0.8571 1.3534 -1.62410.0286 -0.1429 0.5429 -0.8571 1.0286-0.0075 0.0376 -0.1429 0.4887 -0.58650.0015 -0.0075 0.0286 -0.0977 0.3173>> [v,d]=eig(a)v =-0.7843 -0.7843 -0.9237 0.9860 -0.92370.5546 -0.5546 -0.3771 -0.0000 0.3771-0.2614 -0.2614 0.0000 -0.1643 0.00000.0924 -0.0924 0.0628 -0.0000 -0.0628-0.0218 -0.0218 0.0257 0.0274 0.0257d =0.7574 0 0 0 00 9.2426 0 0 00 0 7.4495 0 00 0 0 5.0000 00 0 0 0 2.5505Page65 Ex 7(1)>> a=[4 1 -1;3 2 -6;1 -5 3];[v,d]=eig(a)v =0.0185 -0.9009 -0.3066-0.7693 -0.1240 -0.7248-0.6386 -0.4158 0.6170d =-3.0527 0 00 3.6760 00 0 8.3766>> det(v)ans =-0.9255 %v行列式正常, 特征向量线性相关,可对角化>> inv(v)*a*v 验算ans =-3.0527 0.0000 -0.00000.0000 3.6760 -0.0000-0.0000 -0.0000 8.3766>> [v2,d2]=jordan(a) 也可用jordanv2 =0.0798 0.0076 0.91270.1886 -0.3141 0.1256-0.1605 -0.2607 0.4213 特征向量不同d2 =8.3766 0 00 -3.0527 - 0.0000i 00 0 3.6760 + 0.0000i>> v2\a*v2ans =8.3766 0 0.00000.0000 -3.0527 0.00000.0000 0.0000 3.6760>> v(:,1)./v2(:,2) 对应相同特征值的特征向量成比例ans =2.44912.44912.4491(2)>> a=[1 1 -1;0 2 -1;-1 2 0];[v,d]=eig(a)v =-0.5773 0.5774 + 0.0000i 0.5774 - 0.0000i-0.5773 0.5774 0.5774-0.5774 0.5773 - 0.0000i 0.5773 + 0.0000id =1.0000 0 00 1.0000 + 0.0000i 00 0 1.0000 - 0.0000i>> det(v)ans =-5.0566e-028 -5.1918e-017i v的行列式接近0, 特征向量线性相关,不可对角化>> [v,d]=jordan(a)v =1 0 11 0 01 -1 0d =1 1 00 1 10 0 1 jordan标准形不是对角的,所以不可对角化(3)>> A=[5 7 6 5;7 10 8 7;6 8 10 9;5 7 9 10]A =5 76 57 10 8 76 8 10 95 7 9 10>> [v,d]=eig(A)v =0.8304 0.0933 0.3963 0.3803-0.5016 -0.3017 0.6149 0.5286-0.2086 0.7603 -0.2716 0.55200.1237 -0.5676 -0.6254 0.5209d =0.0102 0 0 00 0.8431 0 00 0 3.8581 00 0 0 30.2887>> inv(v)*A*vans =0.0102 0.0000 -0.0000 0.00000.0000 0.8431 -0.0000 -0.0000-0.0000 0.0000 3.8581 -0.0000-0.0000 -0.0000 0 30.2887本题用jordan不行, 原因未知(4)参考6(4)和7(1)Page65 Exercise 8只有(3)对称, 且特征值全部大于零, 所以是正定矩阵. Page65 Exercise 9(1)>> a=[4 -3 1 3;2 -1 3 5;1 -1 -1 -1;3 -2 3 4;7 -6 -7 0]>> rank(a)ans =3>> rank(a(1:3,:))ans =2>> rank(a([1 2 4],:)) 1,2,4行为最大无关组ans =3>> b=a([1 2 4],:)';c=a([3 5],:)';>> b\c 线性表示的系数ans =0.5000 5.0000-0.5000 1.00000 -5.0000Page65 Exercise 10>> a=[1 -2 2;-2 -2 4;2 4 -2]>> [v,d]=eig(a)v =0.3333 0.9339 -0.12930.6667 -0.3304 -0.6681-0.6667 0.1365 -0.7327d =-7.0000 0 00 2.0000 00 0 2.0000>> v'*vans =1.0000 0.0000 0.00000.0000 1.0000 00.0000 0 1.0000 v确实是正交矩阵Page65 Exercise 11设经过6个电阻的电流分别为i1, ..., i6. 列方程组如下20-2i1=a; 5-3i2=c; a-3i3=c; a-4i4=b; c-5i5=b; b-3i6=0;i1=i3+i4;i5=i2+i3;i6=i4+i5;计算如下>> A=[1 0 0 2 0 0 0 0 0;0 0 1 0 3 0 0 0 0;1 0 -1 0 0 -3 0 0 0; 1 -1 0 0 0 0 -4 0 0;0 -1 1 0 0 0 0 -5 0;0 1 0 0 0 0 0 0 -3; 0 0 0 1 0 -1 -1 0 0;0 0 0 0 -1 -1 0 1 0;0 0 0 0 0 0 -1 -1 1];>>b=[20 5 0 0 0 0 0 0 0]'; A\bans =13.34536.44018.54203.3274-1.18071.60111.72630.42042.1467Page65 Exercise 12>> A=[1 2 3;4 5 6;7 8 0];>> left=sum(eig(A)), right=sum(trace(A))left =6.0000right =6>> left=prod(eig(A)), right=det(A) 原题有错, (-1)^n应删去left =27.0000right =27>> fA=(A-p(1)*eye(3,3))*(A-p(2)*eye(3,3))*(A-p(3)*eye(3,3)) fA =1.0e-012 *0.0853 0.1421 0.02840.1421 0.1421 0-0.0568 -0.1137 0.1705>> norm(fA) f(A)范数接近0ans =2.9536e-013Chapter 4Page84 Exercise 1(1)roots([1 1 1])(2)roots([3 0 -4 0 2 -1])(3)p=zeros(1,24);p([1 17 18 22])=[5 -6 8 -5];roots(p)(4)p1=[2 3];p2=conv(p1, p1);p3=conv(p1, p2);p3(end)=p3(end)-4; %原p3最后一个分量-4roots(p3)Page84 Exercise 2fun=inline('x*log(sqrt(x^2-1)+x)-sqrt(x^2-1)-0.5*x');fzero(fun,2)Page84 Exercise 3fun=inline('x^4-2^x');fplot(fun,[-2 2]);grid on;fzero(fun,-1),fzero(fun,1),fminbnd(fun,0.5,1.5)Page84 Exercise 4fun=inline('x*sin(1/x)','x');fplot(fun, [-0.1 0.1]);x=zeros(1,10);for i=1:10, x(i)=fzero(fun,(i-0.5)*0.01);end;x=[x,-x]Page84 Exercise 5fun=inline('[9*x(1)^2+36*x(2)^2+4*x(3)^2-36;x(1)^2-2*x(2)^2-20*x(3);16*x(1)-x(1)^3-2*x(2)^ 2-16*x(3)^2]','x');[a,b,c]=fsolve(fun,[0 0 0])Page84 Exercise 6fun=@(x)[x(1)-0.7*sin(x(1))-0.2*cos(x(2)),x(2)-0.7*cos(x(1))+0.2*sin(x(2))];[a,b,c]=fsolve(fun,[0.5 0.5])Page84 Exercise 7clear; close; t=0:pi/100:2*pi;x1=2+sqrt(5)*cos(t); y1=3-2*x1+sqrt(5)*sin(t);x2=3+sqrt(2)*cos(t); y2=6*sin(t);plot(x1,y1,x2,y2); grid on; 作图发现4个解的大致位置,然后分别求解y1=fsolve('[(x(1)-2)^2+(x(2)-3+2*x(1))^2-5,2*(x(1)-3)^2+(x(2)/3)^2-4]',[1.5,2])y2=fsolve('[(x(1)-2)^2+(x(2)-3+2*x(1))^2-5,2*(x(1)-3)^2+(x(2)/3)^2-4]',[1.8,-2])y3=fsolve('[(x(1)-2)^2+(x(2)-3+2*x(1))^2-5,2*(x(1)-3)^2+(x(2)/3)^2-4]',[3.5,-5])y4=fsolve('[(x(1)-2)^2+(x(2)-3+2*x(1))^2-5,2*(x(1)-3)^2+(x(2)/3)^2-4]',[4,-4])Page84 Exercise 8(1)clear;fun=inline('x.^2.*sin(x.^2-x-2)');fplot(fun,[-2 2]);grid on; 作图观察x(1)=-2;x(3)=fminbnd(fun,-1,-0.5);x(5)=fminbnd(fun,1,2);fun2=inline('-x.^2.*sin(x.^2-x-2)');x(2)=fminbnd(fun2,-2,-1);x(4)=fminbnd(fun2,-0.5,0.5);x(6)=2feval(fun,x)答案: 以上x(1)(3)(5)是局部极小,x(2)(4)(6)是局部极大,从最后一句知道x(1)全局最小,x(2)最大。
matlab实验心得体会

matlab实验心得体会在进行MATLAB实验后,我对这一软件有了更深入的理解和认识。
通过实践和探索,我逐渐掌握了MATLAB的基本操作和各种常用函数,同时也意识到了其在科学计算和数据分析方面的重要性。
首先,MATLAB的语法简洁明了,非常符合数学表达的习惯。
在进行实验中,我发现MATLAB可以实现以矩阵为基础的运算,而不需要通过循环来逐个计算元素。
这一点大大提高了计算效率,并且减少了代码量。
我可以直接输入一个矩阵,然后使用MATLAB提供的函数进行运算或者操作,如矩阵相乘、转置等。
与其他编程语言相比,MATLAB的语法更加简洁,代码的可读性也更高。
其次,MATLAB提供了丰富的函数库,可以满足不同类型的科学计算需求。
在实验中,我使用到了MATLAB的信号处理工具箱和统计工具箱,这些工具箱提供了很多常用的函数和算法。
例如,我可以使用MATLAB的滤波函数对信号进行滤波处理,去除噪声。
而且,MATLAB的函数库还可以通过用户自定义函数进行扩展,这极大地增强了MATLAB的功能。
此外,MATLAB还提供了强大的绘图功能,可以直观地呈现实验结果。
在实验中,我使用MATLAB的绘图函数绘制了多个图形,如曲线图、散点图等。
这些图形不仅美观,而且直观地表达了数据的特征和规律。
与其他绘图工具相比,MATLAB具有更多的绘图选项、更高的图形质量和更好的交互性,使得实验结果更具可视化效果。
除此之外,MATLAB还提供了强大的调试和优化工具,用于解决程序中可能出现的错误和性能问题。
在实验中,我发现MATLAB的调试器可以帮助我逐步跟踪程序的执行过程,并且可以在运行过程中查看变量的值,从而快速定位问题所在。
而MATLAB的优化工具可以对程序进行性能分析,并根据分析结果对程序进行调整和优化,以提高程序的运行速度。
通过这次MATLAB实验,我深刻认识到了科学计算工具的重要性和必要性。
MATLAB作为一款专业的数学软件,具备了丰富的功能和工具,能够帮助科学家和工程师们解决实际问题。
MATLAB数学实验报告

MATLAB数学实验报告姓名:李帆班级:机械(硕)21学号:2120104008第一次数学实验报告——线性规划问题一,实验问题1,某饲养场饲养动物出售,设每头动物每天至少需要700g蛋白质,30g矿物质,100mg 维生素。
现有五种饲料可供选择,各种饲料的每千克营养成分含量和单价如下表。
是确定既能满足动物生长的营养需要,游客是费用最省的选用饲料方案。
2,某工厂生产甲、乙、丙三种产品,单位产品所需工时分别为2、3、1个;单位产品所需原料分别为3、1、5公斤;单位产品利润分别为2、3、5元。
工厂每天可利用的工时为12个,可供应的原料为15公斤。
为使总利润为最大,试确定日生产计划和最大利润。
二,问题分析1,1)该题属于采用线性规划的方式求出最优解的数学问题。
该题有以下特点,1.目标函数有线性,是求目标函数的最小值;2.约束条件为线性方程组;3.未知变量都有非负限制。
1,2)求解该类问题的方法有图解法,理论解法和软件解法。
图解法常用于解变量较少的线性规划问题。
理论解法要构建完整的理论体系。
目前用于解线性规划的理论解法有:单纯形法,椭球算法等。
在此,我们采用单纯形法的MATLAB软件解法来求解该问题。
1,3)此题中,要求既要满足动物生长的营养需要,又要使费用最省,则使每种饲料的选用量为变量,以总费用的最小值为所求量,同时每种饲料的使用量要符合营养成分的要求。
1,4)在此,首先确定建立线性规划模型。
设饲料i选用量为xi公斤,i=1,2,3,4,5.则有模型:Minz=0.2x1+0.7x2+0.4x3+0.3x4+0.8x5s.t. {3x1+2x2+6x4+18x5>=700;x1+0.5x2+0.2x3+2x4+0.5x5>=300.5x1+x2+0.2x3+2x4+0.8x5>=100Xj>=0,j=1,2,3,4,5解之得:x1=x2=x3=0X4=39.74359X5=25.14603Zmin=32.435902, 1)该问题与第一题分析步骤相似,故只在此写出其线性规划模型Z=2x+3y+5z2x+3y+z<=123x+y+5z<=15三,程序设计流程图第一题:c=[0.2,0.7,0.4,0.3,0.8]A=[3,2,1,6,18;1,0.5,0.2,2,0.5;0.5,1,0.2,2,0.8;1,0,0,0,0;0,1 ,0,0,0;0,0,1,0,0;0,0,0,1,0;0,0,0,0,1]b=[700,30,100,0,0,0,0,0][x,fval]=linprog(c,-A,-b)c =0.2000 0.7000 0.4000 0.3000 0.8000A =3.0000 2.0000 1.0000 6.0000 18.00001.0000 0.5000 0.20002.0000 0.50000.5000 1.0000 0.2000 2.0000 0.80001.0000 0 0 0 00 1.0000 0 0 00 0 1.0000 0 00 0 0 1.0000 00 0 0 0 1.0000b =700 30 100 0 0 0 0 0Optimization terminated.x =0.0000-0.00000.000039.743625.6410fval =32.4359第二题c=[-2 -3 -5]A=[2 3 1;3 1 5]b=[12;15]lb=[0 0 0][x,Z,exitflag,output]=linprog(c,A,b,[],[],lb,[])将上述程序输入matlab。
西安交通大学数学实验报告(用MATLAB绘制二维、三维图形)

实验报告(二)完成人:L.W.Yohann注:本次实验主要学习了用MATLAB绘制二维、三维图形的基本命令、图形的标识与修饰以及用符号函数绘图,在学习完成后小组对52页的上机练习题进行了程序编辑和运行。
1.绘制数列变化趋势图.解:在编辑窗口输入:n=1:100;an=(1+1./n).^n;plot(n,an,'r*')grid并保存,命名为lab1;在命令窗口中输入lab1,得:2.绘制数列变化趋势图.解:在编辑窗口输入:n=1:0.1:50;an=n.^(1./n);plot(n,an,'r*')grid并保存,命名为lab2;在命令窗口中输入lab2,得:3.绘制函数在无定义点处的变化趋势.解:在编辑窗口输入:x=-10:0.05:10;y=sin(x)./x;plot(x,y,'r*')grid并保存,命名为lab3;在命令窗口中输入lab3,得:4.在同一坐标系中画出函数及其Taylor多项式的图像解:y=sinx在编辑窗口输入:syms xf=sin(x);T6=taylor(f,x);T8=taylor(f,x,'Order',8);T10=taylor(f,x,'Order',10);T12=taylor(f,x,'Order',12);fplot([T6 T8 T10 T12 f])xlim([-8 8])grid onlegend('approximation of sin(x) up to O(x^6)',...'approximation of sin(x) up to O(x^8)',...'approximation of sin(x) up to O(x^{10})',...'approximation of sin(x) up to O(x^{12})',...'sin(x)','Location','Best')title('Taylor Series Expansion')并保存,命名为lab4sin;在命令窗口中输入lab4sin,得:y=exp(x)在编辑窗口输入:syms xf=exp(x);T6=taylor(f,x);T8=taylor(f,x,'Order',8);T10=taylor(f,x,'Order',10);T12=taylor(f,x,'Order',12);fplot([T6 T8 T10 T12 f])xlim([-8 8])grid onlegend('approximation of exp(x) up to o(x^6)',...'approximation of exp(x) up to o(x^8)',...'approximation of exp(x) up to o(x^{10})',...'approximation of exp(x) up to o(x^{12})',...'exp(x)','Location','Best')title('Taylor Series Expansion')并保存,命名为lab4exp;在命令窗口中输入lab4exp,得:5.符号函数绘图.注:在matlab r2010b 和matlab r2019b中对绘制函数图像的输入方法有不同的要求,故此类题分两个版本来求解。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
- 1 - Matlab与数学实验 讲义 - 2 -
第一章 Matlab初步 Matlab是Mathworks公司于1984年推出的数值计算软件.其三大核心功能为: • 数值计算 • 符号计算 • 绘图 能够在很多领域进行应用,如: • 数值分析 • 数值和符号计算 • 工程与科学绘图 • 控制系统的设计与仿真 • 数字图像处理技术 • 数字信号处理技术 • 通讯系统设计与仿真 • 财务与金融工程
第一节 Matlab的界面与运行
一、Matlab的界面 Matlab的界面上共有五个窗口: - 3 -
1、命令窗口(Command window) 在命令窗口中可以直接输入命令,以实现计算或绘图的功能. 2、起始面板(Launch Pad) 该窗口中显示Matlab总包和已安装的工具箱的帮助、演示、GUI工具和产品主页4个方面的内容. 3、工作空间(workspace) 该窗口显示当前Matlab的内存中使用变量的信息,包括变量名、变量数组大小,变量字节大小和变量类型. 可以双击变量名,打开数组编辑器窗口(Array Editor),显示变量的具体内容,也可以修改数据. 4、命令历史(Command History) 该窗口显示所有执行过的命令.其作用在于:查看曾经执行的命令;重复利用原来输入的命令行.在命令历史窗口中直接双击命令,就可以执行该命令行. 5、当前目录(Current Directory) 该窗口显示当前工作目录下所有文件的文件名、文件类型和最后修改时间.可以在窗口上方的小窗口中修改工作目录.
二、 Matlab的运行方式 两种运行方式: 1、命令行方式 在命令窗口中输入命令,按回车键程序将运行.这种方式的缺点是难以处理比较复杂的问题和有大量数据的问题. 2、M文件方式 M文件方式是指一个以m为扩展名的M文件中输入一系列命令和数据,然后让Matlab来执行.建立M文件的步骤为: 1. 点击File→New → M-file; 2. 在M文件编辑窗口中输入程序内容; 3. 点File → Save,以m为扩展名存盘. 注意: 1、M文件名有两种类型:脚本M文件和函数M文件.其中函数M文件的文件名必须与函数名一致(在后面将具体讲解). 2、M文件可以在命令行中随时调用执行,也可以在M文件编辑窗口中的Debug菜单中选择Run执行.
第二节 简单数学运算
一、运算表 + 加法运算,适用于两个数或两个同阶矩阵相加. - 减法运算 * 乘法运算
.* 点乘运算,用于数组(或矩阵)之间的运算,表示对应元素相乘 - 4 -
/ 除法运算 ./ 点除运算,用于数组(或矩阵)之间的运算,表示对应元素相除 ^ 乘幂运算
.^ 点乘幂运算,用于数组(或矩阵)之间的运算,表示对应元素作幂运算 \ 反斜杠表示左除,用于矩阵之间的运算 在计算中“( )”表示运算优先级。
例1 作数学运算: 111224314100899 >>100^(1/4)*(1/9)^(-1/2)+8^(-1/3)*(4/9)^(1/2)↙ %↙表示回车键 注意:命令中的%及其后面的内容不必输入,它是对命令的解释和说明。
二、数学函数 Matlab提供了若干函数,在编写程序时可以直接按照以下格式调用,注意其中的括号不能省略. 函数 名 称 函数 名 称
abs(x) x绝对值 sqrt(x) 开平方 exp(x) 以e为底的指数 log(x) 自然对数
log2(x) 以2为底的数 log10(x) 以10为底的数
min(x) 最小值 max(x) 最大值 sum(x) 元素的总和 sign(x) 符号函数 rem(x,y) x除以y的余数 fix(x) 取整 round(x) 最接近x的整数 gcd(x,y) 整数x,y的最大公因数 [g,c,d]=gcd(x,y) 求g,c,d满足g=cx+dy lcm(x,y) 整数x,y的最小公倍数 sin(x) 正弦函数 asin(x) 反正弦函数
cos(x) 余弦函数 acos(x) 反余弦函数
tan(x) 正切函数 atan(x) 反正切数 sinh(x) 双曲正弦 asinh(x) 反双曲正弦 cosh(x) 双曲余弦 acosh(x) 反双曲余弦 tanh(x) 双曲正切 atanh(x) 反双曲正切 real(z) 复数z的实部 imag(z) 复数z的虚部 abs(z) 复数z的模 conj(z) 复数z的共轭 angle(z) 复数z的幅角 factorial(n) 求n的阶乘 - 5 -
combntns(x,m) 列举出从n个元素中取出m个元素的组合。其中,x是含有n个元素的向量
perms(x) 给出向量x的所有排列 nchoosek(n,m) 从n各元素中取m个元素的所有组合数 prod(n:m) 求排列数:m*(m-1)*(m-2)*„*(n+1)*n
例2、作数学运算431sin23ln(25)10e >>sin(1/10)+2^4+exp(3)+3*log(2+sqrt(5)) ↙ 三、Matlab中的数 1、实数 Matlab中的实数只有一种数据格式,那就是双精度数值,其有效值是十进制 16位,范围是10的±308次幂,即
2.2251×10 –308~1.7977×10+308 实数有七种显示格式,以为例,见下表: Matlab 命令 显 示 形 式 说 明 format long 3.14159265358979 16位十进制数 format long e 3.14159265358979e+0 16位十进制加指数
format short e 3.1416e+000 5位十进制数加指数 format short 3.1416 二位整数, 四位小数 format bank 3.14 两位小数 format hex 400921fb54442d18 16位十六进制数 format rat 355 / 113 有理数分数近似 Matlab在默认情况下以format short格式显示. 2、复数 虚数符号Matlab启动时定为i,j,连写在数字后面可以不用乘号.例如a=1+2i,b=cos(2)+sin(2)*i 如果用户在程序中另外給i,j赋值,则它们的虚数意义就失效. 例3 在不同的数据显示显示下计算5+sin7 >>5+sin(7) ↙ ans= 5.6570 >>format rat↙ >>5+sin(7) ↙ ans= 3117/551 >>format long↙ >>5+sin(7) ↙ ans= 5.65698659871879 - 6 -
第三节 变量 一、变量 Matlab中参与计算的数据需要存放在一个储存空间中,每个储存空间都给予一个名称,就是变量的名称。 Matlab中变量的命名规则是: (1)变量名必须是不含空格的单个词; (2)变量名区分大小写; (3)变量名最多不超过19个字符; (4)变量名必须以字母打头; (5)变量名中不允许使用标点符号; (6)不要使用内部函数名。 变量赋值格式: 变量名=数 给变量赋值时满足新值代替旧值的规则.
二、特殊变量(常量) 在Matlab中一些特殊的变量,如下: 特殊变量 取 值 ans 用于结果的缺省变量名 pi 圆周率 eps 计算机的最小数,和1相加时产生一个比1大的数 flops 浮点运算数 inf 无穷大,如1/0 NaN 不定量,如0/0 i,j i=j=1
nargin 所用函数的输入变量数目 nargout 所用函数的输出变量数目 realmin 最小可用正实数 realmax 最大可用正实数
三、常见基本操作: Matlab命令 解释 who 变量名 查询变量的信息 whos 查询所有变量的信息 clear 删除所有变量 save 变量名 保存指定变量 load 载入数据文件中的变量 clc 察除所有命令 shift +enter 换行编写命令,但不执行命令 - 7 -
四、标点符号 标点符号需要在英文状态下输入,常见的有 , 命令分隔符号,显示的结果
; 命令分隔符号,不显示的结果 % 它后面为注释文字
„ 续行符号(使用时前面加空格)
( ) 运算优先级 例1 >>a=20;b=3;c=a+b,d=a*b↙ 运行结果: c = 23 d = 60 例2 交换两个变量的取值 >>a=1;b=2;
c=a; a=b; b=c; a,b ↙ 运行结果: a = 2 b = 1
第四节 符号运算 数值运算是指实数之间的运算。在运算中,如果有变量不被赋值像字母一样运算,这种运算为符号运算.符号运算需要先将变量符号化。
一、创建符号变量 命令格式1:sym(‘变量’) 命令格式2:syms 变量1 变量2 „ 变量n 例1 >>sqrt(2) ↙ ans = 1.4142 >>sqrt(sym('2')) ↙ ans = 2^(1/2)
二、创建符号表达式