Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
0 / 0 / 0
Регистрация: 29.03.2019
Сообщений: 14
1

Как избавиться от бесконечного цикла в матлаб?

18.10.2021, 11:44. Показов 2427. Ответов 4

Author24 — интернет-сервис помощи студентам
условие задачи: найти сумму ряда S(m)=1+1/(2*sqrt(2)) +...+1/(m*sqrt(m)) для такого m, что 1/(m*sqrt(m)) не превышает заданное число. Протестировать программу для числа 0.05

тоесть я вызываю s=tas2(0.05)
в выводе получаю 1
а если я введу s=task2(2)
получаеться бесконечный цикл

Мое решение:
Matlab M
1
2
3
4
5
6
function s=task2(m)
s=1;
while (m>(1/(m*sqrt(m))))
s=s+1/(m*sqrt(m));
endwhile
endfunction
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.10.2021, 11:44
Ответы с готовыми решениями:

Подскажите пожалуйста как избавиться от бесконечного цикла?
Код элемент функции int value = 1, grade = 1; double mean, total = 0; cout << "При...

Избавиться от бесконечного цикла while, который проверяет, появились ли данные на порту
Здравствуйте, решил перевести прогу сервера на чистый с++ до этого был фрейм ворк QT. Ситуация...

Рекурсивный обход дерева папок и файлов - избавиться от бесконечного цикла
Добрый день! Стоит задача рекурсивно обойти и сохранить имена папок и файлов в виде вектора. Моя...

Уважаемые программисты, как избавиться от бесконечного ветвления switch и if в игре?
Можно ли выражения вроде " y=Assets.mobs.pointOfRespMobWolfPosY;" , и им подобные, записать в...

Как избавиться от цикла?
Всем добрый вечер. Есть рабочая программа с циклом (фрагмент программы): rez=zeros(max(digits),1);...

4
1296 / 926 / 448
Регистрация: 21.10.2012
Сообщений: 2,601
18.10.2021, 13:18 2
Цитата Сообщение от Человек разум Посмотреть сообщение
не превышает заданное число
под этим числом подразумевается, скорее всего, какой-то порог (точность), что-то вроде 1е-8, например, а не ваше число m.
0
5411 / 2765 / 560
Регистрация: 07.11.2019
Сообщений: 4,517
18.10.2021, 18:53 3
Matlab M
1
2
3
4
eps=0.05
m=ceil(eps^(-2/3))
x=(1:m)
S=sum(1./(x.*sqrt(x)))
0
1471 / 826 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
18.10.2021, 19:18 4
Както-так:
Задаете m=...
Задаете точность, обычно ее называют эпсилон, eps=0.05
Задаете эталон с чем сверять max= 1/(m*sqrt(m))+eps

Пишите функцию while которая рекурсивно вычисляет сумму ряда и проверяет что новая сумма ряда<max.
Потом находят ошибку eror=max- найденная сумма ряда

В конце проги обычно выводят входные и выходные данные типа:
Задано m=
Задана точность eps=

Пройдено итераций=
Сумма ряда=
Ошибка eror=
0
Модератор
Эксперт CЭксперт С++
5192 / 2910 / 1507
Регистрация: 14.12.2018
Сообщений: 5,254
Записей в блоге: 1
19.10.2021, 14:52 5
Цитата Сообщение от Человек разум Посмотреть сообщение
условие задачи: найти сумму ряда S(m)=1+1/(2*sqrt(2)) +...+1/(m*sqrt(m)) для такого m, что 1/(m*sqrt(m)) не превышает заданное число. Протестировать программу для числа 0.05
Matlab M
1
2
3
4
5
6
7
8
9
10
11
clc;  clear all; close all;
s=task2(0.05)
 
function s = task2(eps)
    s=1; t=1; m=1;
    while (t>eps)
        m=m+1;
        t=1/(m*sqrt(m));
        s=s+t;
    end
end
0
19.10.2021, 14:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.10.2021, 14:52
Помогаю со студенческими работами здесь

Как выйти из бесконечного цикла?
Есть вот такая специфическая форма записи бесконечного цикла: for /L %%a in (0,0,0) do goto :nxt...

Как избавиться от вечного цикла в коде?
using System; namespace Laba2_without_parse { class rabota { static void...

Старый борланд: как выйти из бесконечного цикла по нажатию заданной клавиши?
Короче нужно сделать прогу которая считает сколько отрицательных,положительных,равных 0 ввел...

Как остановить, посмотреть резутат и запустить продолжение бесконечного цикла кнопкой?
Есть программа которая практически в бесконечном цикле считает данные массива подгоняя их под...

Как избавиться от цикла в самом конце? Нужны только матричные функции
// Функция proiz находит произведение элементов, //расположенных на четных местах в каждом столбце...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru