Matlab实验(二)

news/2024/10/24 9:17:57/

Matlab实验(二)

1.求积分

f=@(x,y)(x.*cos(x+y.*y));
dblquad(f,0,pi,0,2*pi)ans =-3.4267

2.求常微分方程的数值解

syms y;
dsolve('D2y+2*Dy+y=0','y(0)=0','Dy(0)=1')ans =
t*exp(-t)

 

3.试求下面齐次方程的基础解系。

%调用代码
A=[+6  +1 +4 -7 -3;-2 -7 -8 +6 0;-4 +5 +1 -6 +8;-34 +36 +9 -21 49; -26 -12 -27 27 17;];
B=zeros(5,1);
rank(A)
rank([A,B])%判断两者秩
Z=null(sym(A))%Ax=0,此时已经是解了
x0=sym(pinv(A))*B%可以不用
syms k1 k2;
%求出结果
x=k1*Z(:,1)+k2*Z(:,2)+x0
%验证
A*x-B
%调用结果
ans =3
ans =3
Z =
[  237/80,  -61/80]
[  173/40, -109/40]
[ -151/40,  103/40]
[       1,       0]
[       0,       1]
x0 =00000
x =(237*k1)/80 - (61*k2)/80(173*k1)/40 - (109*k2)/40(103*k2)/40 - (151*k1)/40k1k2

 

4.试求下面的代数方程的全部的根

syms x y z
equ1=x^2*y^2-x*y*z-4*x^2*y*z^2==x*z^2;
equ2=x*y^3-2*y*z^2==3*x^3*z^2+4*x*z*y^2;
equ3=y*x^2-7*x*y+3*x*z^2==x^4*z*y;
equs=[equ1,equ2,equ3]
root=solve(equs);
x=root.x
y=root.y
z=root.z
%由于结果是符号解,很长,这里就不展现。

 

5.Lorenz方程是研究混沌问题的著名非线性微分方程,其数学形式为

其中, ,且其初值为 。试求出其数值解,绘制三维空间曲线,并绘制Lorenz方程解在两平面上的投影

function dx=func_2_5(t,x)
beta=8/3;
theta=10;
gamma=28;
dx=[-beta*x(1)+x(2)*x(3);-theta*x(2)+theta*x(3);-x(1)*x(2)+gamma*x(2)-x(3)];
end
syms x(t) t
x0=[0 0 10^(-3)];
[t,x]=ode45('func_2_5',[0,200],x0);figure(1);
plot(t,x)
grid on;axis auto;xlabel('t');
ylabel('x');title('二维Lorenz方程');figure(2);
plot3(x(:,1),x(:,2),x(:,3))
grid on;axis auto;xlabel('x(1)');
ylabel('x(2)');zlabel('x(3)');
title('三维Lorenz方程');figure(3);
comet3(x(:,1),x(:,2),x(:,3))
grid on;axis auto;xlabel('x(1)')
ylabel('x(2)');zlabel('x(3)');
title('三维Lorenz方程');view(0,90)
view(0,0)

 

6.试求出下面微分方程组的解析解,并和数值解比较。

%解析解
equ1='D2x=-2*x-3*Dx-exp(-5*t)';
equ2='D2y=2*x-3*y-4*Dx-4*Dy-sin(t)';
equ3='x(0)=1';
equ4='Dx(0)=2';
equ5='y(0)=3';
equ6='Dy(0)=4';
answer=dsolve(equ1,equ2,equ3,equ4,equ5,equ6);
x=answer.x
y=answer.y%第二种调用方法
syms y(t) x(t)
eqns = [diff(x,t,2) == -2*x-3*diff(x,t)-exp(-5*t), diff(y,t,2) == 2*x-3*y-4*diff(x,t)-4*diff(y,t)-sin(t)];
Dx=diff(x,t);
Dy=diff(y,t);
conds = [x(0)==1,Dx(0)==2,y(0)==3,Dy(0)==4];
answer=dsolve(eqns,conds);
x=answer.x
y=answer.y
%%%%%%%结果%%%%%%%%%
x =
(15*exp(-t))/4 - (8*exp(-2*t))/3 - exp(-5*t)/12
y =
(80*exp(-2*t))/3 - (207*exp(-t))/16 - (107*exp(-3*t))/10 - (11*exp(-5*t))/48 + (45*t*exp(-t))/4 + (5^(1/2)*cos(t + atan(1/2)))/10
%%%%%%%%%%%数值解%%%%%%%%
function dx=func_2_6(t,x)
dx=[x(2);-2*x(1)-3*x(2)+exp(-5*t);x(4);2*x(1)-3*x(3)-4*x(2)-4*x(4)-sin(t);];
end
%调用
tspan=[-5 5];
xy0 =[1;2;3;4];
[t x]=ode45(@func_2_6,tspan,xy0);
%作图
plot(x(:,2),x(:,4))

 

7.求解下面的最优化问题

function sx=func_2_7_1(x)
sx=x(1)^2-2*x(1)+x(2);
end
function [sx se]=func_2_7_2(x)
se=[];
sx=[4*x(1)^2+x(2)^2-4];
end
x0=[5;5];
A=[];B=[];Aeq=[];Beq=[];
xm=[0;0];xM=[;];
ff=optimset;ff.Tolx=1e-10;ff.TolFun=1e-20;   
%x=fmincon('func_2_7_1', x0,A,B,Aeq,Beq,xm,xM,'func_2_7_2',ff)
i=1;
while(1)[x,a,b]=fmincon('func_2_7_1', x0,A,B,Aeq,Beq,xm,xM,'func_2_7_2',ff)if b>0,break;endi=i+1;
end
x
%调用结果
x =1.00000.0000

 

—————————————————————————————————————————————————————————————————————————————————

说明:以上习题来自《控制系统计算机辅助设计 —— MATLAB语言与应用( 第3版)》的第三章,薛定宇老师的著作,解答仅供参考,如有错误,请指正。

以下是第三章习题的一些解答,仅供参考。

%3-5
A=[6 1 4 -7 -3;-2 -7 -8 6 0;-4 5 1 -6 8;-34 36 9 -21 49;-26 -12 -27 27 17];
rank(A)
length=size(A)
rank(A+zeros(length(2),1))
syms k1 k2;
x0=pinv(sym(A))*zeros(length(2),1)
z=null(sym(A))
x=k1*z(:,1)+k2*z(:,2)+x0equ1='x.^2+y.^2=3*x*y^2';
equ2='x.^3-x.^2=y.^2-y';
ezplot(equ1)
hold on
ezplot(equ2)%%%%%%%%%%%
f=@(x)(x.^2*sin(0.1.*x+2)-3)
a=-4;
b=0
root=[]
while abs(b-a)>1e-10temp=(b+a)./2;if f(b).*f(temp)<0a=temp;elseif f(a).*f(temp)<0b=temp;elseif f(b)==0root=[root,b];elseif f(a)==0root=[root,a];elseroot=[root,temp];endbreak;end
end
root=[root,temp]%3-12
f=@(t,x)([-8/3*x(1)+x(2)*x(3);-10*x(2)+10*x(3);-x(1)*x(2)+28*x(2)-x(3)])
[t,y]=ode45(f,[-100 100],[0 0 1e-3]);
plot(t,y)comet3(y(:,1),y(:,2),y(:,3))%3-15-2equ1='D2x+D2y+x+y=0';equ2='2*D2x-D2y-x+y=sin(t)';root=dsolve(equ1,equ2,'x(0)=2','Dx(0)=-1','y(0)=1','Dy(0)=-1')root.xroot.y%3-20f=@(x)(x(1).^2-2*x(1)+x(2))g=@(t,x)(4*x(1)*x(1)+x(2)*x(2)-4)

 


http://www.ppmy.cn/news/130798.html

相关文章

基于MATLAB的微分方程的解析解与欧拉算法的数值解(附完整代码)

一. 解析解方法 正常的求解微分方程的MATLAB格式如下&#xff1a; ydsolve(f1,f2,...,fm) 如果需要指明自变量&#xff0c;则如下&#xff1a; ydsolve(f1,f2,...,fm,x) 格式中的fi既可以描述微分方程&#xff0c;又可以描述初始条件或边界条件。 描述微分方程的MATLAB格…

系统函数Hs

aaa 转载于:https://www.cnblogs.com/zherlock/p/10839398.html

移动HS8545M光猫密码

用户名&#xff1a;CMCCAdmin 密码&#xff1a;aDm8H%MdA 账户root密码adminHW

r76850hs和r76800u区别

AMD R7 PRO 6850HS 处理器采用 ZEN 3 架构&#xff0c;8 核 16 线程&#xff0c;最高 4.7GHz&#xff0c;以及 Radeon 680M 核显&#xff0c;基于 RDNA2 架构&#xff0c;具有 12 个 CU&#xff0c;频率达 2200 MHz&#xff0c;该机配备了 4800MHz DDR5 内存。 选R7 6850HS还是…

达人评测 锐龙r7 6800hs和r9 5900hs差距大不大

R7 6800Hs 采用6纳米工艺 8 核 16 线程&#xff0c;主频 3.2GHz-4.7GHz&#xff0c;一级缓存 512KB二级缓存 4MB 三级缓存 16MB热设计功耗(TDP) 35W 内存参数&#xff0c;搭载了 DDR5 集成显卡AMD Radeon 680M 笔记本cpu选r7 6800hs还是r9 5900hs这些点很重要 http://www.adian…

分析jvm异常文件hs_err_pid[pid].log

使用工具CrashAnalysis分析&#xff0c;通过下发链接下载 链接&#xff1a;https://pan.baidu.com/s/12rLMoCaQ_zOCRGOqvcKIAg 提取码&#xff1a;1234 下载完成后命令行运行java -jar CrashAnalysis-1.0-SNAPSHOT.jar hs_err_pid.log&#xff0c;会出现分析结果

达人评测 r7 6800hs和r9 6900hs选哪个

r9 6900hs采用6nm制作工艺八核心 十六线程CPU主频 3.3GHz 最高睿频 4.9GHz三级缓存 16MB 热设计功耗(TDP) 35W 内存类型 DDR5集成显卡 AMD Radeon 680M 选R9 6900HS还是r7 6800hs这些点很重要!看完你就知道了 http://www.adiannao.cn/dy AMD Ryzen7-6800HS是基于伦勃朗一代的…

达人评测 r7 7735hs和r7 6800hs选哪个好? r77735hs和6800hs对比

r7 7735hs工艺&#xff1a;6nm制程架构&#xff1a;zen3核心数&#xff1a;8核心数线程数&#xff1a;16线程主频&#xff1a;3.2GHz睿频&#xff1a;4.75GHz功耗&#xff1a;35W 三级缓存&#xff1a;16MB核显情况&#xff1a;Radeon680M 选r7 7735hs还是r7 6800hs这些点很重要…