不太明白MATLAB中diff()函数有什么要求。
或者有其他问题?
%%%% 牛顿迭代法求非线性方程实根%%%%%
clc;
clear
format short
s=in
put('请输入函数表达式:f = ','s');
global f;
f=inline(s,'x');
X = input('请输入初始点:x0=');
fai(X)
function f1=fai(x)
global f;
tempf=diff(f,'x');
f1=x-f/tempf;
end
还没写完,
下面是命令与报错:
请输入函数表达式:f = x*x
请输入初始点:x0=1
检查对函数 'diff' 的调用中是否存在不正确的参数数据类型或缺少参数。
出错 Newtonian_iterative_method>fai (第 16 行)
tempf=diff(f,'x');
出错 Newtonian_iterative_method (第 9 行)
fai(a)
16 tempf=diff(f,'x');
K>>
可以看下帮助,我不太懂‘x’这个参数设置的意义。https://ww2.mathworks.cn/help/matlab/ref/diff.html
不知道你这个问题是否已经解决, 如果还没有解决的话:%样例1 4360
% 结果为 x = 320.0000 360.0000 0 0 20.0000 390.000 ]
A=[ 2 1 1 0 0 0 1000;
3 4 0 1 0 0 2400;
1 1 0 0 1 0 700;
1 -1 0 0 0 1 350;
8 5 0 0 0 0 0];
N=[3 4 5 6];
[sol,val,kk]=ssimplex(A,N) /不用加分号
书本例题:
%样例3
A=[ 1 2 1 0 0 8;
4 0 0 1 0 16;
0 4 0 0 1 12
2 3 0 0 0 0];
N=[3 4 5];
[sol,val,kk]=ssimplex(A,N)