📄 exp2_2.m
字号:
% exp2_2.m --- 学习非线性方程组 F(X) = 0 数值求根命令fsolve
% [调用方法] X = fsolve(F,X0)
% 这里 F 是向量函数(就是方程组),X0 是迭代初值(向量)
% [注] 该命令采用优化方法求解,默认的是一维搜索法
function study_fsolve
% 下面仅以一个例子说明其使用方法
% 例: 求下面方程组的九个根
% 7x^3-10x-1-y = 0
% 8y^3-11y-1+x = 0
% 由于每个方程都可以表示显式函数,故可以通过作图观察根的大致位置(两个曲线的交点)
clf % 清图像
x = -1.5:0.01:1.5; % 离散化,步长 0.01,这也是常用的方法
y1 = 7*x.^3 - 10*x - 1; % 第一个方程求函数值,注意所有运算都是'点'运算,和常数相乘等就不用写'点'了
y2 = -8*x.^3 + 11*x + 1; % 第二个方程求函数值,注意这里自变量与函数是颠倒的
plot(x,y1,y2,x) % 作图,注意再把自变量与函数颠倒过来
grid on
axis([-4 6 -6 4]) % 限制横坐标与纵坐标的范围,这里要通过不断偿试来得到合适的范围
% 通过作图发现在 (0,-1) 附近有一个根,调用 fsolve 求更精确的解
clc
X0 = [0,-1]; % 初值
X = fsolve(@myfun,X0)
% ------------ 定义函数组 myfun ----------------
function F = myfun(X)
F = [7*X(1)^3-10*X(1)-1-X(2);
8*X(2)^3-11*X(2)-1+X(1)];
% [注] 这里 F 必须是列向量;
% ----------------------------------------------
% ******** 你的实验 ********
% 对 P36 第18题作图观察根的近似值,再用fsolve命令求更精确的解
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -