RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / user-592145

Michael's questions

Martin Hope
Michael
Asked: 2025-01-04 17:55:52 +0000 UTC

我无法找出最速下降方法

  • 5

我正在编写一个程序,使用最速下降法计算非线性方程的根。我在寻找导数时也遇到了问题(我将附上屏幕截图以更清楚地说明我在说什么)。我想使用numpy和sumpy方法,但由于距离考试时间不多,所以我匆忙地写了代码。

第一种情况是 x1 = -0.9,x2 = 0.7(根应该精确到 10^-6:x1 = -0.947718 和 x2 = 0.713550,但是却找到了完全不同的根)。

第二种情况是x1 = -0.1,x2 = 2.2(根必须精确到10^-6:x1 = -0.110086和x2 = 2.222477,就像牛顿法中的情况一样)。

非线性方程组:

非线性方程组

方程根的图形定位:

方程根的图形定位

该理论可以在这里看到:

最速下降法,第 1 页

最速下降法,第 2 页

我尝试解这个方程: 图3

程序代码,起点(-0.9,0.7):

import math

# первый корень
x1k = -0.9
x2k = 0.7

# второй корень
##x1k = -0.1
##x2k = 2.2

alpha = 0.25

##    fx1_x1k_x2k = round(2 * (math.cos(x1k + 1.5) * (math.sin(x1k + 1.5) + 2.9 - x2k) + x1k + math.cos(x2k - 2)), 6)
##    fx2_x1k_x2k = round(-2 * ((math.cos(x2k - 2) * math.sin(x2k - 2)) - x2k + math.sin(x1k + 1.5) + 2.9 + (x1k * math.sin(x1k + 1.5))), 6)

for k in range(1, 39):
    fx1_x1k_x2k = round((2 * math.sin(x1k + x2k) * math.cos(x1k + x2k)) + (3.38 * x1k) - (2.6 * math.sin(x1k + x2k)) - (2.6 * x1k * math.cos(x1k + x2k)) - (2 * math.cos(x1k + x2k)) + 2.6, 6)
    fx2_x1k_x2k = round(4 * x1k**3 + 0.16 * x2k**3 + (0.8 * x2k * x1k**2) + (0.4 * x2k**2 * 2 * x1k) - 4 * x1k - 0.8 * x2k, 6)
    
    x1_current = round(x1k - alpha * fx1_x1k_x2k, 6)
    x2_current = round(x2k - alpha * fx2_x1k_x2k, 6)

    print(f'------------------------------------ k = {k} ------------------------------------')
    
    print(f'x1_current = {x1_current}')
    print(f'x2_current = {x2_current}')

    print(f'|x1 - x1_current| = {round(abs(x1k - x1_current), 6)}')

    x1k = x1_current
    x2k = x2_current

找到第一个根的结果,我们得到 (-0.110084, 2.222471),而不是 (-0.947718, 0.713550),其中 k = 38:

------------------------------------ k = 1 ------------------------------------
x1_current = -0.904586
x2_current = 0.63008
|x1 - x1_current| = 0.004586
------------------------------------ k = 2 ------------------------------------
x1_current = -0.920633
x2_current = 0.550413
|x1 - x1_current| = 0.016047
------------------------------------ k = 3 ------------------------------------
x1_current = -0.950972
x2_current = 0.475969
|x1 - x1_current| = 0.030339
------------------------------------ k = 4 ------------------------------------
x1_current = -0.996371
x2_current = 0.432886
|x1 - x1_current| = 0.045399

...

------------------------------------ k = 38 ------------------------------------
x1_current = -0.110084
x2_current = 2.222471
|x1 - x1_current| = 1e-06

程序代码,起点(-0.1,2.2):

import math

# первый корень
##x1k = -0.9
##x2k = 0.7

# второй корень
x1k = -0.1
x2k = 2.2

alpha = 0.25

##    fx1_x1k_x2k = round(2 * (math.cos(x1k + 1.5) * (math.sin(x1k + 1.5) + 2.9 - x2k) + x1k + math.cos(x2k - 2)), 6)
##    fx2_x1k_x2k = round(-2 * ((math.cos(x2k - 2) * math.sin(x2k - 2)) - x2k + math.sin(x1k + 1.5) + 2.9 + (x1k * math.sin(x1k + 1.5))), 6)

for k in range(1, 39):
    fx1_x1k_x2k = round((2 * math.sin(x1k + x2k) * math.cos(x1k + x2k)) + (3.38 * x1k) - (2.6 * math.sin(x1k + x2k)) - (2.6 * x1k * math.cos(x1k + x2k)) - (2 * math.cos(x1k + x2k)) + 2.6, 6)
    fx2_x1k_x2k = round(4 * x1k**3 + 0.16 * x2k**3 + (0.8 * x2k * x1k**2) + (0.4 * x2k**2 * 2 * x1k) - 4 * x1k - 0.8 * x2k, 6)
    
    x1_current = round(x1k - alpha * fx1_x1k_x2k, 6)
    x2_current = round(x2k - alpha * fx2_x1k_x2k, 6)

    print(f'------------------------------------ k = {k} ------------------------------------')
    
    print(f'x1_current = {x1_current}')
    print(f'x2_current = {x2_current}')

    print(f'|x1 - x1_current| = {round(abs(x1k - x1_current), 6)}')

    x1k = x1_current
    x2k = x2_current

当 k = 21 时,求二阶根的结果是 (-0.110084, 2.222471):

------------------------------------ k = 1 ------------------------------------
x1_current = -0.106128
x2_current = 2.20748
|x1 - x1_current| = 0.006128
------------------------------------ k = 2 ------------------------------------
x1_current = -0.105683
x2_current = 2.212223
|x1 - x1_current| = 0.000445
------------------------------------ k = 3 ------------------------------------
x1_current = -0.108148
x2_current = 2.215606
|x1 - x1_current| = 0.002465
------------------------------------ k = 4 ------------------------------------
x1_current = -0.108136
x2_current = 2.217791
|x1 - x1_current| = 1.2e-05

...

------------------------------------ k = 21 ------------------------------------
x1_current = -0.110084
x2_current = 2.222471
|x1 - x1_current| = 1e-06
python
  • 1 个回答
  • 47 Views
Martin Hope
Michael
Asked: 2024-05-07 23:48:29 +0000 UTC

如何使按钮左对齐、居中对齐、右对齐?

  • 5

大家好!我有个问题。如何让“上一页”按钮位于左侧,页码计数器位于中间,“下一页”按钮位于右侧?在这种情况下,从“上一页”按钮到页面指示器的距离应该与从“下一页”按钮到页面指示器的距离相同。我通过按钮、通过 justify-content、通过左、右尝试了很多次,但不知何故没有帮助。看起来我使导航变得方便,但在所有三个页面上,我都有三个按钮,它们相对于水平方向分布不均匀。

“上一页”按钮到页面指示器的距离应与“下一页”按钮到页面指示器的距离相同的示例:

在此输入图像描述 我没有让它像这样工作: 在此输入图像描述

CSS代码:

.navbar {
    background-color: #FEFFA8;
    padding-top: 30px;
    padding-bottom: 30px;
}

.navbar a {
    display: inline;
}

.previous {
    background-color: whitesmoke;
    color: black;
    border: 1px solid black;
    padding: 4px 12px;
    text-decoration: none;
    margin-left: 14%;
}

.previous_hidden {
    background-color: #FEFFA8;
    color: #FEFFA8;
    border: 1px #FEFFA8;
    padding: 4px 12px;
    text-decoration: none;
    margin-left: 14%;
}

.counter {
    background-color: whitesmoke;
    color: black;
    border: 1px solid black;
    padding: 4px 8px;
    text-decoration: none;
    margin-left: 25%;
}

.next {
    background-color: whitesmoke;
    color: black;
    border: 1px solid black;
    padding: 4px 12px;
    text-decoration: none;
    margin-left: 25%;
}

.next_hidden {
    background-color: #FEFFA8;
    color: #FEFFA8;
    border: 1px #FEFFA8;
    padding: 4px 12px;
    text-decoration: none;
    margin-left: 25%;
}

第一页代码:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <link href="css/style.css" rel="stylesheet" />
    <title>1.2. Политика безопасности</title>
    <style>
        span.bold {
            font-weight: bold;
        }
    </style>
</head>
<body>
    <header>
        <div class="navbar">
            <a class="previous_hidden">Предыдущая страница</a>
            <a class="counter">1</a> из 3
            <a href="index6_2.html" class="next">Следующая страница</a>
        </div>
    </header>
    <h1 align = "center">1.2. Политика безопасности</h1>
    <p>&emsp;&emsp;&emsp;С практической точки зрения политику безопасности целесообразно рассматривать на трех уровнях детализации. К верхнему уровню можно отнести решения, затрагивающие организацию в целом. Они носят весьма общий характер и, как правило, исходят от руководства организации. Примерный список подобных решений может включать в себя следующие элементы:</p>
    <p>- решение сформировать или пересмотреть комплексную программу обеспечения информационной безопасности, назначение ответственных за продвижение программы;</p>
    <p>- формулировка целей, которые преследует организация в области информационной безопасности, определение общих направлений в достижении этих целей;</p>
    <p>- обеспечение базы для соблюдения законов и правил;</p>
    <p>- формулировка административных решений по тем вопросам реализации программы безопасности, которые должны рассматриваться на уровне организации в целом.</p>
</body>
</html>

第二页代码:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <link href="css/style.css" rel="stylesheet" />
    <title>1.3. Программа безопасности</title>
    <style>
        span.bold {
            font-weight: bold;
        }
    </style>
</head>
<body>
    <header>
        <div class="navbar">
            <a href="index6_1.html" class="previous">Предыдущая страница</a>
            <a class="counter">2</a> из 3
            <a href="index6_3.html" class="next">Следующая страница</a>
        </div>
    </header>
    <h1 align = "center">1.3. Программа безопасности</h1>
    <p>&emsp;&emsp;&emsp;После того, как сформулирована политика безопасности, можно приступать к составлению программы ее реализации и собственно к реализации.</p>
    <p>&emsp;&emsp;&emsp;Чтобы понять и реализовать какую-либо программу, ее нужно структурировать по уровням, обычно в соответствии со структурой организации. В простейшем и самом распространенном случае достаточно двух уровней - верхнего, или центрального, который охватывает всю организацию, и нижнего, или служебного, который относится к отдельным услугам или группам однородных сервисов.</p>
    <p>&emsp;&emsp;&emsp;Программу верхнего уровня возглавляет лицо, отвечающее за информационную безопасность организации. У этой программы следующие главные цели:</p>
    <p>- управление рисками (оценка рисков, выбор эффективных средств защиты);</p>
    <p>- координация деятельности в области информационной безопасности, пополнение и распределение ресурсов;</p>
    <p>- стратегическое планирование;</p>
    <p>- контроль деятельности в области информационной безопасности.</p>
    <p>&emsp;&emsp;&emsp;В рамках программы верхнего уровня принимаются стратегические решения по обеспечению безопасности, оцениваются технологические новинки. Информационные технологии развиваются очень быстро, и необходимо иметь четкую политику отслеживания и внедрения новых средств.</p>
    <p>&emsp;&emsp;&emsp;Контроль деятельности в области безопасности имеет двустороннюю направленность. Во-первых, необходимо гарантировать, что действия организации не противоречат законам. При этом следует поддерживать контакты с внешними контролирующими организациями. Во-вторых, нужно постоянно отслеживать состояние безопасности внутри организации, реагировать на случаи нарушений и дорабатывать защитные меры с учетом изменения обстановки.</p>
    <p>&emsp;&emsp;&emsp;Следует подчеркнуть, что программа верхнего уровня должна занимать строго определенное место в деятельности организации, она должна официально приниматься и поддерживаться руководством, а также иметь определенный штат и бюджет.</p>
    <p>&emsp;&emsp;&emsp;Цель программы нижнего уровня - обеспечить надежную и экономичную защиту конкретного сервиса или группы однородных сервисов. На этом уровне решается, какие следует использовать механизмы защиты; закупаются и устанавливаются технические средства; выполняется повседневное администрирование; отслеживается состояние слабых мест и т.п. Обычно за программу нижнего уровня отвечают администраторы сервисов.</p>
</body>
</html>

第三页代码:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <link href="css/style.css" rel="stylesheet" />
    <title>1.4. Синхронизация программы безопасности с жизненным циклом систем</title>
    <style>
        span.bold {
            font-weight: bold;
        }
    </style>
</head>
<body>
    <header>
        <div class="navbar">
            <a href="index6_2.html" class="previous">Предыдущая страница</a>
            <a class="counter">3</a> из 3
            <a class="next_hidden">Следующая страница</a>
        </div>
    </header>
    <h1 align = "center">1.4. Синхронизация программы безопасности с жизненным циклом систем</h1>
    <p>&emsp;&emsp;&emsp;Если синхронизировать программу безопасности нижнего уровня с жизненным циклом защищаемого сервиса, можно добиться большего эффекта с меньшими затратами. Программисты знают, что добавить новую возможность к уже готовой системе на порядок сложнее, чем изначально спроектировать и реализовать ее. То же справедливо и для информационной безопасности.</p>
    <p>&emsp;&emsp;&emsp;В жизненном цикле информационного сервиса можно выделить следующие этапы:</p>
    <p>&emsp;&emsp;&emsp;<span class = "bold">Инициация.</span> Сервис устанавливается, конфигурируется, тестируется и вводится в эксплуатацию.</p>
    <p>&emsp;&emsp;&emsp;<span class = "bold">Закупка.</span> На данном этапе составляются спецификации, прорабатываются варианты приобретения, выполняется собственно закупка.</p>
    <p>&emsp;&emsp;&emsp;<span class = "bold">Установка.</span> Сервис устанавливается, конфигурируется, тестируется и вводится в эксплуатацию.</p>
    <p>&emsp;&emsp;&emsp;<span class = "bold">Эксплуатация.</span> На данном этапе сервис не только работает и администрируется, но и подвергается модификациям.</p>
    <p>&emsp;&emsp;&emsp;<span class = "bold">Выведение из эксплуатации.</span> Происходит переход на новый сервис.</p>
    <p>&emsp;&emsp;&emsp;Рассмотрим действия, выполняемые на каждом из этапов, более подробно.</p>
    <p>&emsp;&emsp;&emsp;На этапе инициации оформляется понимание того, что необходимо приобрести новый или значительно модернизировать существующий сервис; определяется, какими характеристиками и какой функциональностью он должен обладать; оцениваются финансовые и иные ограничения.</p>
    <p>&emsp;&emsp;&emsp;С точки зрения безопасности важнейшим действием здесь является оценка критичности как самого сервиса, так и информации, которая с его помощью будет обрабатываться. Требуется сформулировать ответы на следующие вопросы:</p>
    <p>- какого рода информация предназначается для обслуживания новым сервисом?</p>
    <p>- каковы возможные последствия нарушения конфиденциальности, целостности и доступности этой информации?</p>
    <p>- каковы угрозы, по отношению к которым сервис и информация будут наиболее уязвимы?</p>
    <p>- есть ли какие-либо особенности нового сервиса (например, территориальная распределенность компонентов), требующие принятия специальных процедурных мер?</p>
    <p>- каковы характеристики персонала, имеющие отношение к безопасности (квалификация, благонадежность)?</p>
    <p>- каковы законодательные положения и внутренние правила, которым должен соответствовать новый сервис?</p>
    <p>&emsp;&emsp;&emsp;Результаты оценки критичности являются отправной точкой в составлении спецификаций. Кроме того, они определяют ту меру внимания, которую служба безопасности организации должна уделять новому сервису на последующих этапах его жизненного цикла.</p>
    <p>&emsp;&emsp;&emsp;Этап закупки - один из самых сложных. Нужно окончательно сформулировать требования к защитным средствам нового сервиса, к компании, которая может претендовать на роль поставщика, и к квалификации, которой должен обладать персонал, использующий или обслуживающий закупаемый продукт. Все эти сведения оформляются в виде спецификации, куда входят не только аппаратура и программы, но и документация, обслуживание, обучение персонала. Разумеется, особое внимание должно уделяться вопросам совместимости нового сервиса с существующей конфигурацией. Подчеркнем также, что нередко средства безопасности являются необязательными компонентами коммерческих продуктов, и нужно проследить, чтобы соответствующие пункты не выпали из спецификации.</p>
    <p>&emsp;&emsp;&emsp;Когда продукт закуплен, его необходимо установить. Несмотря на кажущуюся простоту, установка является очень ответственным делом. Во-первых, новый продукт следует сконфигурировать. Как правило, коммерческие продукты поставляются с отключенными средствами безопасности; их необходимо включить и должным образом настроить. Для большой организации, где много пользователей и данных, начальная настройка может стать весьма трудоемким и ответственным делом.</p>
    <p>&emsp;&emsp;&emsp;Во-вторых, новый сервис нуждается в процедурных регуляторах. Следует позаботиться о чистоте и охране помещения, о документах, регламентирующих использование сервиса, о подготовке планов на случай экстренных ситуаций, об организации обучения пользователей и т.п.</p>
    <p>&emsp;&emsp;&emsp;После принятия перечисленных мер необходимо провести тестирование. Его полнота и комплексность могут служить гарантией безопасности эксплуатации в штатном режиме.</p>
    <p>&emsp;&emsp;&emsp;Период эксплуатации - самый длительный и сложный. С психологической точки зрения наибольшую опасность в это время представляют незначительные изменения в конфигурации сервиса, в поведении пользователей и администраторов. Если безопасность не поддерживать, она ослабевает. Пользователи не столь ревностно выполняют должностные инструкции, администраторы менее тщательно анализируют регистрационную информацию. То один, то другой пользователь получает дополнительные привилегии. Кажется, что в сущности ничего не изменилось; на самом же деле от былой безопасности не осталось и следа.</p>
    <p>&emsp;&emsp;&emsp;Для борьбы с эффектом медленных изменений приходится прибегать к периодическим проверкам безопасности сервиса. Разумеется, после значительных модификаций подобные проверки являются обязательными.</p>
    <p>&emsp;&emsp;&emsp;При выведении из эксплуатации затрагиваются аппаратно-программные компоненты сервиса и обрабатываемые им данные. Аппаратура продается, утилизируется или выбрасывается. Только в специфических случаях необходимо заботиться о физическом разрушении аппаратных компонентов, хранящих конфиденциальную информацию. Программы, вероятно, просто стираются, если иное не предусмотрено лицензионным соглашением.</p>
    <p>&emsp;&emsp;&emsp;При выведении данных из эксплуатации их обычно переносят на другую систему, архивируют, выбрасывают или уничтожают. Если архивирование производится с намерением впоследствии прочитать данные в другом месте, следует позаботиться об аппаратно-программной совместимости средств чтения и записи. Информационные технологии развиваются очень быстро, и через несколько лет устройств, способных прочитать старый носитель, может просто не оказаться. Если данные архивируются в зашифрованном виде, необходимо сохранить ключ и средства расшифровки. При архивировании и хранении архивной информации нельзя забывать о поддержании конфиденциальности данных.</p>
</body>
</html>
html
  • 1 个回答
  • 26 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5