MATLAB 程序老是报错,
MATLAB 程序老是报错,function CGG(x0,y0,eps)syms x ;syms y;k=0;X=[x,y];X0=[x0,y0];Q=[1 1;1 2];f=inline('x^2+2*y^2+2*x*y','x','y');%f=1/2*X*Q*X';fx=diff(f,x);fy=diff(f,y);G0=[subs(fx,{x,y},X0),subs(fx,{x,y},X0)];% j=jacobian(f,X);% G0=subs(j,X,X0);d0=-G0;t0=(G0*G0')/(d0*Q*d0');X1=X0+t0*d0;G1=[subs(fx,{x,y},X1),subs(fx,{x,y},X1)];%G1=subs(j,X,X1);temps=sqrt(G1(1)^2+G1(2)^2);while temps>epsal=(G1*Q*d0')/(d0*Q*d0');dk=-G1+al*d0;k=k+1;tk=(G1*G1')/(dk*Q*dk');X1=X1+tk*dk;G1=[subs(fx,{x,y},X1),subs(fx,{x,y},X1)];% G1=subs(j,X,X1);temps=sqrt(G1(1)^2+G1(2)^2); d0=-G1;endX1,k
最佳回答
存在的问题:1、下面这行把括号误写为中文的了,也就是 al=(G1*Q*d0')/(d0*Q*d0');应改为 al=(G1*Q*d0')/(d0*Q*d0'); 2、需要求导数不能用inline函数,而是应该用符号表达式,即 f=inline('x^2+2*y^2+2*x*y','x','y');%f=1/2*X*Q*X';应改为 f=x^2+2*y^2+2*x*y; 3、上面两个错误改完后,程序可以运行,但结果不对,那属于你的算法问题,自己再好好查查吧。
最新回答共有2条回答
-
2026-04-07 18:20:35俊秀的红牛
回复存在的问题:1、下面这行把括号误写为中文的了,也就是 al=(G1*Q*d0')/(d0*Q*d0');应改为 al=(G1*Q*d0')/(d0*Q*d0'); 2、需要求导数不能用inline函数,而是应该用符号表达式,即 f=inline('x^2+2*y^2+2*x*y','x','y');%f=1/2*X*Q*X';应改为 f=x^2+2*y^2+2*x*y; 3、上面两个错误改完后,程序可以运行,但结果不对,那属于你的算法问题,自己再好好查查吧。
热门文章
- 康达学院专转本五年制
- 高考一个考场分ab卷吗
- not only but also用法
- 某物体做自由落体运动,从释放开始计时,则物体在前2s内的平均速度为______m/s,物体下落2m时的速度大小为______m/s.
- 三角函数公式大全表格
- 地理中考必背知识点2022
- 2013-2014学年小学六年级科学上学期期末考试试卷及答案
- 人教版2014-2015学年小学五年级英语第二学期期中教学质量检测试卷及答案
- 【Linux驱动开发】设备树详解(二)设备树语法详解
- 别跟客户扯细节
- 在别的城市买房子能落户吗
- 卖房前要把装修贷还完吗
- 高中政治教学提高教学效果的方法探究
- “互联网+”背景下的初中英语课堂教学改革与创新策略研究
- 2022年终止合同范本
- 租房合同范本范文
- 如何挑选土豆
- 如何挑选土鸡
