function [r,n]=mulSimNewton(F,x0,eps)
来源:学生作业帮 编辑:神马作文网作业帮 分类:数学作业 时间:2024/11/12 18:43:15
function [r,n]=mulSimNewton(F,x0,eps)
% 用简化牛顿法求非线性方程组的一组解
% 非线性方程组:F
% 初始解:x0
% 解的精度:eps
% 求得的一组解:r
% 迭代步数:n
% 初始迭代一组解:x0=[x1:xn]
if nargin==2
eps=1.0e-6;
end
x0 = transpose(x0);
Fx = subs(F,findsym(F),x0);
dF = Jacobian(F);
c = subs(dF,findsym(dF),x0);
r=x0-inv(c)*Fx;
n=1;
tol=1;
while tol>eps
x0=r;
Fx = subs(F,findsym(F),x0);
r=x0-inv(c)*Fx; %核心迭代公式
tol=norm(r-x0);
n=n+1;
if(n>100000) %迭代步数控制
disp('迭代步数太多,可能不收敛!');
return;
end
end
求方法组 z=[0.5*sin(x)+0.1*cos(x*y)-x;0.5*cos(x)-0.1*cos(y)-y];的解;
>>syms x y;
>> z=[0.5*sin(x)+0.1*cos(x*y)-x;0.5*cos(x)-0.1*cos(y)-y];
>> [r,n]=mulSimNewton(z,[0 0])
Error using ==> error
Not enough input arguments.
Error in ==> jacobian at 6
error
Error in ==> mulSimNewton at 15
dF = Jacobian(F);
注释:这是龚纯那版的matlab与科学计算时怎么有错误啊?求高手告知下,
% 用简化牛顿法求非线性方程组的一组解
% 非线性方程组:F
% 初始解:x0
% 解的精度:eps
% 求得的一组解:r
% 迭代步数:n
% 初始迭代一组解:x0=[x1:xn]
if nargin==2
eps=1.0e-6;
end
x0 = transpose(x0);
Fx = subs(F,findsym(F),x0);
dF = Jacobian(F);
c = subs(dF,findsym(dF),x0);
r=x0-inv(c)*Fx;
n=1;
tol=1;
while tol>eps
x0=r;
Fx = subs(F,findsym(F),x0);
r=x0-inv(c)*Fx; %核心迭代公式
tol=norm(r-x0);
n=n+1;
if(n>100000) %迭代步数控制
disp('迭代步数太多,可能不收敛!');
return;
end
end
求方法组 z=[0.5*sin(x)+0.1*cos(x*y)-x;0.5*cos(x)-0.1*cos(y)-y];的解;
>>syms x y;
>> z=[0.5*sin(x)+0.1*cos(x*y)-x;0.5*cos(x)-0.1*cos(y)-y];
>> [r,n]=mulSimNewton(z,[0 0])
Error using ==> error
Not enough input arguments.
Error in ==> jacobian at 6
error
Error in ==> mulSimNewton at 15
dF = Jacobian(F);
注释:这是龚纯那版的matlab与科学计算时怎么有错误啊?求高手告知下,
function [r,n]=mulNewton(F,x0,eps)
if nargin==2
eps=1.0e-4;
end
x0 = transpose(x0);
Fx = subs(F,findsym(F),x0);
var = sym(symvar(findsym(F)));%var is string 要变换下
dF = jacobian(F,var);
dFx = subs(dF,findsym(dF),x0);
r=x0-inv(dFx)*Fx;
n=1;
tol=1;
while tol>eps
x0=r;
Fx = subs(F,findsym(F),x0);
dFx = subs(dF,findsym(dF),x0);
r=x0-inv(dFx)*Fx; %核心迭代公式
tol=norm(r-x0);
n=n+1;
if(n>1000) %迭代步数控制
disp('迭代步数太多,可能不收敛!');
return;
end
end
syms x y;
z=[0.5*sin(x)+0.1*cos(x*y)-x;0.5*cos(x)-0.1*cos(y)-y];
[r,n]=mulNewton(z,[0 0])
r =
0.1981
0.3980
n =
3
if nargin==2
eps=1.0e-4;
end
x0 = transpose(x0);
Fx = subs(F,findsym(F),x0);
var = sym(symvar(findsym(F)));%var is string 要变换下
dF = jacobian(F,var);
dFx = subs(dF,findsym(dF),x0);
r=x0-inv(dFx)*Fx;
n=1;
tol=1;
while tol>eps
x0=r;
Fx = subs(F,findsym(F),x0);
dFx = subs(dF,findsym(dF),x0);
r=x0-inv(dFx)*Fx; %核心迭代公式
tol=norm(r-x0);
n=n+1;
if(n>1000) %迭代步数控制
disp('迭代步数太多,可能不收敛!');
return;
end
end
syms x y;
z=[0.5*sin(x)+0.1*cos(x*y)-x;0.5*cos(x)-0.1*cos(y)-y];
[r,n]=mulNewton(z,[0 0])
r =
0.1981
0.3980
n =
3
已知函数y=f(x),若存在x0∈R,使得f(x0)=x0
泰勒公式展开式 在0点的展开式不就是 f(x)=f(x0)+f'(x0)(x-x0)+...Fn(x0)/n!(x-x0
已知函数f(x0=x?g(x)=x-1 若存在x0∈r使f(x0)
对于函数f(x),若存在x0属于R,使f(x0)=x0成立,则称x0为f(x)的不动点,
对于定义在R上的函数f(X).若实数X0满足f(X0)=X0,则称X0是函数f(X)的一个不动点
对于定义域为R的函数f(x)若存在实数X0使f(X0)=X0则称x0是f(x)的一个不动点.
定义在R上奇函数f(x),当x<0时的解析式为f(x)=-ln(-x)+x+2,若该函数有一零点为x0,且x0∈(n,n
已知函数f(x)(x属于R)的图像上任一点(x0,y0)处的切线方程为y-y0=(x0-2)(x0^2-1)(x-x0)
1.Does formula f(x)=1/(x²-2) define a function f:R->R?A
对于定义在R上的奇函数f(x),若实数x0满足f(x0)=x0,则称x是函数f(x)的一个不动点.
英语翻译constnum = 5;varn:integer;function r(n :integer) :intege
对于函数f(x),若存在x0属于R,使f(x0)=x0,则称x0为函数f(x)的不动点,已知f(x)=ax^2=(b+1