24小时热门版块排行榜    

查看: 492  |  回复: 0

makechange74

铁虫 (小有名气)

[求助] 用Gauss-Neuton算法解非线形最小二乘法问题

%xdata,ydata1是测得的数据
syms z1 z2 z3 z4 z5
xdata = S1o;
f = ydata1 - exp(z1)./(exp(z1)+exp(-z1)).*exp(-(xdata./exp(z3)).^exp(z2))+(1-exp(z1)./(exp(z1)+exp(-z1))).*exp(-(xdata./exp(z5)).^exp(z4));
x0 = [1.7380;0.9555;-1.3863;2.0149;-2.5257];
var = findsym(f);
eps = 1.0e-3;
minGN          %minGN是m文件里的一个函数,用于实现G-N算法,这个程序是自己网上找的,后面的注释是为了我自己方便理解自己加的,具体如下:
function [x,minf] = minGN(f,x0,var,eps)
format long;
if nargin == 3                %如果没有设置eps,则eps=1.0e-6
    eps = 1.0e-6;
end
S = transpose(f)*f;           %trnspose是转置
k = length(f);                %
n = length(x0);               %n为变量个数
x0 = transpose(x0);           %将行向量转置为列向量
tol = 1;                      %初始容差
A = jacobian(f,var);         

while tol>eps
    Fx = zeros(k,1);
    for i=1:k
        Fx(i,1) = Funval(f(i),var,x0);
    end
    Sx = Funval(S,var,x0);    %求得f转置与其本身值
    Ax = Funval(A,var,x0);    %雅克比矩阵的值
    gSx = transpose(Ax)*Fx;   

    dx = -transpose(Ax)*Ax\gSx;
    x0 = x0 + dx;
    tol = norm(dx);           %tol=dx绝对值之和
end
minf = Funval(S,var,x);
format short;
x = x0;

%%Funval函数也是在网上找到的资源,后面的注释原本就有,具体如下:
function fv = Funval(f,varvec,varval)     
var = findsym(f);%找出表达式 即f函数包含的变量,即s,t
varc = findsym(varvec);%找出传递参数的变量,即[t s]中的t,s
s1 = length(var);%函数的个数,例子中即s t 2个
s2 = length(varc);%变量个数,即[t s]两个
m =floor((s1-1)/3+1);%floor(3.6)=3,即最靠近左边的整数
varv = zeros(1,m);
if s1 ~= s2
for i=0: ((s1-1)/3)
k = findstr(varc,var(3*i+1));
index = (k-1)/3;
varv(i+1) = varval(index+1);
end
fv = subs(f,var,varv);
else
fv = subs(f,varvec,varval);  %如果原来函数变量个数和传递的参数中变量个数一致 这调用subs函数 即计算在给点点处的函数值
end

现在在命令窗口输入上述命令,提示:
错误使用 minGN (line 6)
输入参数的数目不足。
谁能告诉我这是什么原因呢,参数数目应该是够的?另外,麻烦大侠再解释一下 Funval函数里m =floor((s1-1)/3+1);这条语句在函数的作用,尤其是为什么取((s1-1)/3+1)?谢谢了!刚接触matlab不久,希望大家帮忙下.新人没有多少金币。。
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 makechange74 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 328求调剂,英语六级551,有科研经历 +5 生物工程调剂 2026-03-17 9/450 2026-03-21 23:32 by zhujy1982
[考研] 一志愿北京化工大学070300 学硕336求调剂 +3 vv迷 2026-03-21 4/200 2026-03-21 23:05 by f19980501
[考研] 求调剂 +4 要好好无聊 2026-03-21 4/200 2026-03-21 18:57 by 学员8dgXkO
[考研] 297求调剂 +3 喜欢还是不甘心 2026-03-20 3/150 2026-03-21 18:33 by 学员8dgXkO
[考研] 297求调剂 +11 戏精丹丹丹 2026-03-17 12/600 2026-03-21 17:47 by ColorlessPI
[考研] 0856材料专硕353求调剂 +3 NIFFFfff 2026-03-20 3/150 2026-03-21 10:23 by luoyongfeng
[考研] 271材料工程求调剂 +8 .6lL 2026-03-18 8/400 2026-03-21 00:58 by JourneyLucky
[考研] 311求调剂 +5 冬十三 2026-03-18 5/250 2026-03-21 00:16 by JourneyLucky
[考研] 296求调剂 +6 www_q 2026-03-18 10/500 2026-03-20 23:56 by JourneyLucky
[考研] 274求调剂 +10 S.H1 2026-03-18 10/500 2026-03-20 23:51 by JourneyLucky
[考研] 294求调剂材料与化工专硕 +15 陌の森林 2026-03-18 15/750 2026-03-20 23:28 by JourneyLucky
[考研] 308求调剂 +3 阿姐阿姐家啊 2026-03-18 3/150 2026-03-20 23:24 by JourneyLucky
[考研] 353求调剂 +3 拉钩不许变 2026-03-20 3/150 2026-03-20 19:56 by JourneyLucky
[考研] 一志愿南理工085701环境302求调剂院校 +3 葵梓卫队 2026-03-20 3/150 2026-03-20 19:28 by zhukairuo
[论文投稿] 申请回稿延期一个月,编辑同意了。但系统上的时间没变,给编辑又写邮件了,没回复 10+3 wangf9518 2026-03-17 4/200 2026-03-19 23:55 by babero
[考研] 【同济软件】软件(085405)考研求调剂 +3 2026eternal 2026-03-18 3/150 2026-03-18 19:09 by 搏击518
[考研] 0854可跨调剂,一作一项核心论文五项专利,省、国级证书40+数一英一287 +8 小李0854 2026-03-16 8/400 2026-03-18 14:35 by 搏击518
[考研] 有没有道铁/土木的想调剂南林,给自己招师弟中~ +3 TqlXswl 2026-03-16 7/350 2026-03-17 15:23 by TqlXswl
[考研] 302求调剂 +4 小贾同学123 2026-03-15 8/400 2026-03-17 10:33 by 小贾同学123
[考研] 一志愿,福州大学材料专硕339分求调剂 +3 木子momo青争 2026-03-15 3/150 2026-03-17 07:52 by laoshidan
信息提示
请填处理意见