MATLAB程序设计与应用(第三版)刘卫国 答案(八)

第八章 MATLAB方程数值求解

一、选择题

1~5:CBDCA

二、填空题

1.直接法;迭代法;初始值。
2.fzero;fsolve。
3.ode
4.状态方程

三、应用题

1.

(1)

    A=[2,3,5;3,7,4;1,-7,1];
    b=[10,3,5]';
    x1=A\b%矩阵除法
    [L,U]=lu(A);
    x2=U\(L\b)%矩阵分解法

x1 =
-1.8060
-0.5373
3.0448
x2 =
-1.8060
-0.5373
3.0448

(2)

A=[5,1,-1,0;1,3,0,-1;-1,-1,0,5;0,0,2,4];
b=[1,2,3,1]';
x1=A\b%矩阵除法
[L,U,P]=lu(A);
x2=U\(L\P*b)%矩阵分解法

x1 =
-0.2000
0.9857
-1.0143
0.7571
x2 =
-0.2000
0.9857
-1.0143
0.7571

从结果可以看出两种方法结果相同。

2.
f1=@(x) x-sin(x)./x;
x1=fzero(f1,0.5)%第(1)问
f2=@(x) sin(x).^2*exp(-0.1*x)-0.5*abs(x);
x2=fzero(f2,1.5)%第(2)问

结果:

x1 =
0.8767
x2 =
1.6738

3.

函数文件:

function fx=myfun(X)
x=X(1);
y=X(2);
fx(1)=x-0.6.*sin(x)-0.3.*cos(y);
fx(2)=x-0.6.*cos(x)+0.3.*sin(y);
end

主程序:

option=optimset('Display','off');
X=fsolve(@myfun,[0.5,0.5],option)

结果:

X =
0.2994 1.1504

4.

(1)
函数文件:

function yp=myfun(x,y)
yp=2*x/y+2*x;
end

主程序:

t0=0;
tf=10;
y0=0;
[t,y]=ode45(@myfun,[t0,tf],y0);
plot(t,y,'*')

结果:
在这里插入图片描述
(2)
函数文件:

function dx=myfun(t,x)
dx=zeros(2,1);
dx(1)=x(2);
dx(2)=(-4*t*x(2)-2*x(1))/t^2;
end

主程序:

tspan=[-5,0];
y0=[2,-3];
[t,y]=ode45(@myfun,tspan,y0);
plot(t,y,'*')

结果:
在这里插入图片描述

5.

函数文件:

function dy = Lorenz(~,y) 
dy=zeros(3,1); 
dy(1)=10*(-y(1)+y(2)); 
dy(2)=28*y(1)-y(2)-y(1)*y(3); 
dy(3)=y(1)*y(2)-8*y(3)/3;
end 

主程序:

[t,f]=ode45('Lorenz',[0,30],[0,0,10^(-10)]);
subplot(2,1,1)
plot(t,f)
title('时间响应曲线')
subplot(2,1,2)
plot3(f(:,1),f(:,2),f(:,3))
title('相平面曲线')

在这里插入图片描述
(ps:当前初值下画出的相平面曲线不明显,修改初值后的相平面曲线如下图:)
代码:

[t,f]=ode45('Lorenz',[0,30],[2,4,10]);
plot3(f(:,1),f(:,2),f(:,3))
view([20,30])
title('相平面曲线')

在这里插入图片描述
若想要讲解可下方留言,看到就会回复!!!

  • 20
    点赞
  • 121
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值