主题: [MATLAB数学相关] 用二分法求解矩阵方程
查看单个帖子
旧 2011-06-09, 23:27   #1
warrior_ngc
初级会员
 
注册日期: 2010-12-22
年龄: 39
帖子: 5
声望力: 0
warrior_ngc 正向着好的方向发展
默认 用二分法求解矩阵方程

假如我编了个求二分法的M文件:demimethod.m

如下:function [x,k]=demimethod(a,b,f,emg)
% a,b :求解区间的两个端点
% f :所求方程的函数名
% emg :精度指标
% x:所求近似解
% k: 循环次数
fa=feval(f,a);
fab=feval(f,(a+b)/2);
k=0;
while abs(b-a)>emg
if fab==0
x=(a+b)/2;
return;
elseif fa*fab<0
b=(a+b)/2;
else
a=(a+b)/2;
end
fa=feval(f,a);
fab=feval(f,(a+b)/2);
k=k+1;
end
x=(a+b)/2;

然后运行命令行:
>> f=@(x)x^3-3*x+2-exp(x);
>> demimethod(-5,5,f,10^(-8))

ans =

-1.9846

但请注意如果我要求的函数含有矩阵符号怎么办??
比如:m=[1:1:99];
f=@(x)x^3-m*x+2-exp(x);
那如何求解这100个方程的解啊....
求详细答案。。。来讨论吧
warrior_ngc 当前离线   回复时引用此帖