10、MATLAB程序设计与应用刘卫国(第三版)课后实验十:方程数值求解

目录

 一、

 二、

 三、

 四、

 五、


一、

分别用3种不同的数值方法解线性方程组。

  ---------------------------------------示例代码---------------------------------------------

A=[6,5,-2,5;9,-1,4,-1;3,4,2,-2;3,-9,0,2];
b=[-4;13;1;11];
x1=A\b
x2=inv(A)*b
[L,U]=lu(A);
x3=U\(L\b)

---------------------------------------运行结果---------------------------------------------

 二、

求代数方程的数值解。

(1)3x +sin x-ex=0在x0=1.5附近的根。

(2)在给定的初值x0=1,y0=1,z0=1下,求方程组的数值解。

  ---------------------------------------示例代码---------------------------------------------

%1
z=fzero(@(x) 3*x+sin(x)-exp(x),1.5)
%2
function F=myfun(X)
x=X(1);
y=X(2);
z=X(3);
F(1)=sin(x)+y^2+log(z)-7;
F(2)=3*x+2^y-z^3+1;
F(3)=x+y+z-5;

---------------------------------------运行结果---------------------------------------------

 

 三、

(1)在(0,1)内的最小值。

(2)f(x1, x2)= 2x13 +4x1x23-10x1x2+x22在[0, 0]附近的最小值点和最小值。

   ---------------------------------------示例代码---------------------------------------------

%1
f=@(x) (x^3+cos(x)+x*log(x))/exp(x);
fminbnd(f,0,1)
%2
function f=test10_3_2(u)
x1=u(1);
x2=u(2);
f=2*x1.^3+4*x1*x2.^3-10*x1.*x2+x2.^2;

---------------------------------------运行结果---------------------------------------------

 

 四、

求微分方程的数值解。

    ---------------------------------------示例代码---------------------------------------------

function yy=ztf(x,y)
yy=[(5*y(1)-y(2))/x;y(1)];

[x,y]=ode23(@ztf,[0,5],[0;0])

五、

求微分方程组的数值解,并绘制解的曲线。

  ---------------------------------------示例代码---------------------------------------------

function yy = test10_5(~,y)
yy=[y(2)*y(3);-y(1)*y(3);-0.51*y(1)*y(2)];
end
[t,y]=ode23(@test10_5,[0,5],[0;1;1]);
plot3(y(:,1),y(:,2),y(:,3))

---------------------------------------运行结果---------------------------------------------

  • 13
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
本题需要根据第三版matlab程序设计应用》的内容进行实验及答题。 答案参考: 本题需要实现一个小游戏,具体要求如下: 1. 随机生成一个范围在1~1000之间的整数num; 2. 让用户猜测该数,每次用户输入一个整数guess; 3. 如果guess比num小,则输出"猜小了,再试一次"; 4. 如果guess比num大,则输出"猜大了,再试一次"; 5. 如果guess等于num,则输出"恭喜猜中了!"; 6. 用户最多有10次机会猜中,如果猜错10次,则输出"机会用尽,游戏结束!"; 7. 每次输出都要显示用户已经用了多少次机会。 需要用到的matlab函数有randi()、input()、disp()、num2str()等,具体使用方法可以查看matlab帮助文档。 实验代码演示如下: %% 实验7 - 小游戏设计 % 设计一个猜数字的小游戏,要求用户猜一个随机生成的整数(1~1000),并在10次机会内猜中。 clear all; clc; % 生成随机数 num = randi([1,1000]); % 初始化计数器 counter = 0; % 开始猜数字 while counter < 10 guess = input('请输入你猜的数字:'); counter = counter + 1; % 计数器加1 fprintf('你已经猜了%d次。\n', counter); if guess > num disp('猜大了,再试一次。'); elseif guess < num disp('猜小了,再试一次。'); else fprintf('恭喜你,猜中了!你一共猜了%d次。\n', counter); break; end end % 判断游戏是否结束 if counter == 10 disp('机会用尽,游戏结束!'); end 以上代码实现了小游戏的基本功能,可以根据实际需求进行修改和优化。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值