首页 > 其他分享 >工程数学实验二

工程数学实验二

时间:2023-05-11 11:57:28浏览次数:32  
标签:定义 工程 iter alpha 实验 1.2 数学 fprintf x0

clear all;
close all;
clc;

% 定义目标函数
f = @(x) 100*(x(1)^2 - x(2))^2 + (x(1) - 1)^2;

% 定义梯度函数
grad_f = @(x) [400*x(1)*(x(1)^2 - x(2)) + 2*(x(1) - 1); -200*(x(1)^2 - x(2))];

% 定义终止准则
epsilon = 1e-5;

% 定义最大迭代次数
max_iter = 1000;

% 定义初始点
initial_points = [0.8 0.8; -1.2 1.0; -0.2 -0.2; 1.2 1.2; 0.0 0.5];

% 遍历每个初始点
for i = 1:size(initial_points, 1)
x0 = initial_points(i, :)'; % 初始点
x = x0;
iter = 0;
alpha = 0.01; % 步长

% 开始迭代
while norm(grad_f(x)) > epsilon && iter < max_iter
d = -grad_f(x); % 负梯度方向
x_new = x + alpha * d; % 更新点
if f(x_new) < f(x)
x = x_new;
else
alpha = alpha / 2; % 步长减半
end
iter = iter + 1;
end

% 输出结果
fprintf('初始点: [%f, %f]\n', x0(1), x0(2));
fprintf('迭代次数: %d\n', iter);
fprintf('最优解: [%f, %f]\n', x(1), x(2));
fprintf('最优函数值: %f\n', f(x));
fprintf('\n');
end

 

标签:定义,工程,iter,alpha,实验,1.2,数学,fprintf,x0
From: https://www.cnblogs.com/psh888/p/17390631.html

相关文章

  • 实验5
    1.实验任务1task1_1.c#include<stdio.h>#defineN4intmain(){intx[N]={1,9,8,4};inti;int*p;//方式1:通过数组名和下标遍历输出数组元素for(i=0;i<N;++i)printf("%d",x[i]);printf("\n");//方式2:通过指针变量遍历输出数组元素(写法1)for(p=......
  • 该模型采用龙贝格观测器进行无传感器控制 其利用 PMSM 数学模型构造观测
    该模型采用龙贝格观测器进行无传感器控制其利用PMSM数学模型构造观测器模型,根据输出的偏差反馈信号来修正状态变量。当观测的电流实现与实际电流跟随时,可以从观测的反电势计算得到电机的转子位置信息,形成跟踪闭环估计。龙伯格观测器采用线性控制策略代替了SMO的变结构控制,有效......
  • 该模型基于id=0控制 ,通过电机的基本数学模型对其定子电阻R, 永磁磁链ψf, dq轴电感Ls进
    该模型基于id=0控制,通过电机的基本数学模型对其定子电阻R,永磁磁链ψf,dq轴电感Ls进行递推最小二乘法辨识,仿真结果表明了该方法的有效性ID:8330669177527757......
  • 17.爱因斯坦的数学问题
       代码实现:#include<stdio.h>intmain(){inti;//阶梯数intcount=0;//记录满足条件的阶梯个数for(i=1;i<1000;i++){if(i%2==1&&i%3==2&&i%4==3&&i%5==4&&i%6==......
  • 软件工程日报——开始进行学习
    最近这几天开始放松自我了,五一放假到现在项目还没有特别大的进展。建民老师在本周的软件工程课上给我们开了一次运动会,用来鼓舞我们小组的士气,为第二阶段做准备今天,我打开了我的idea,熟悉了之前我写的代码,捋了捋之前的思路,准备为接下来的换班操作打基础临近期末考试,我今天还复习......
  • 2.7 爱因斯坦的数学题
    第一部曲:思路:通过枚举每个数,在一到n范围内循环,如果满足条件就记录下来,然后输出,循环结束之后输出个数。第二部曲:  第三部曲:while(scanf("%d",&n)!=EOF)//处理到文件尾 { intsum=0; for(x=1;x<=n;x++) { if(x%7==0)//判断是否满足条件 { if(x%6==5) { if(x%5=......
  • 学校的数据结构实验_二叉树c语言实现
    二叉树的实现包括二叉树的构建,和二叉树的前中后序便利,二叉树的层序非递归遍历,求二叉树的总结点,求二叉树的最大深度和求二叉树的最大宽度,因为实验主要是对二叉树的各个属性数据测量,所以这里手动链接了一颗二叉树.随后用调用函数接口传参二叉树的根节点测量二叉树的属性.递......
  • 学校数据结构实验_线性表:纯C语言版
    首先分别声明链表和顺序表的结构单位,  1:插入实现:顺序表插入比较简单,直接访问下表找到插入位置,然后移动所有后面的数据将插入的位置空出来,然后将需要插入的数据插入,链表的插入:因为一般链表都是调用头插或者尾插,但是为了和顺序表相比较,再插入的时候增加了随机位置......
  • 2.10马克思手稿中的纯数学题
    1.问题描述马克思手稿中有一道趣味数学问题:有30个人,其中有男人、女人和小孩,他们在同一家饭馆吃饭,总共花了50先令。已知每个男人吃饭需要花3先令,每个女人吃饭需要花2先令,每个小孩吃饭需要花1先令,请编程求出男人、女人和小孩各有几人。2.#include<stdio.h>intmain(){ intx,y,z; ......
  • 实验四 Web综合应用程序设计
    实验项目名称:实验四Web综合应用程序设计一、实验目的通过使用JavaMVC模式设计简单的数据库管理系统,巩固使用JDBC技术访问数据库的方法,学习使用Java语言对服务器端进行编程,深入理解MVC网站设计模式的基本概念和框架结构。二、实验内容和基本要求从以下列举的四个数据库中,任......