💡 Инструкция: Выберите один ответ из пяти. На работу отведено 70 минут. После завершения откроются правильные ответы, объяснения и результаты по темам.
Вопрос 2 из 25
Какую проверку стоит добавить для участка с `F = cholesky(Symmetric(A))`?
Julia Julia · Факторизации Копировать
using LinearAlgebra
A = [4.0 1.0; 1.0 3.0]
F = cholesky(Symmetric(A))
b1 = [1.0, 2.0]
b2 = [2.0, 1.0]
@show F \ b1 F \ b2
Проверить на отдельном примере, что явное вычисление `inv(A)` перед умножением обычно точнее и быстрее, чем решение через `A \ b`.
Проверить на отдельном примере, что для системы `Ax=b` обычно используют `A \ b`, а не `inv(A)*b`: решатель выбирает факторизацию и избегает лишней работы и ошибки округления.
Проверить на отдельном примере, что чувствительность решения определяется обусловленностью и масштабом задачи; малый невязочный остаток сам по себе не гарантирует малую ошибку решения.
Проверить на отдельном примере, что диагностика включает размерности, ранг, обусловленность, невязку и проверку исходной модели; красивый числовой ответ без этих проверок может быть бессмысленным.
Проверить на отдельном примере, что факторизация `lu`, `qr`, `cholesky` или `svd` сохраняет структуру решения и позволяет повторно решать задачи без явного обращения матрицы.
Вопрос 4 из 25
Как проверить, что новая реализация `F = cholesky(Symmetric(A))` не изменила обещанное пользователю поведение?
A=LL^{\mathsf T}
Приёмка должна подтвердить, что явное вычисление `inv(A)` перед умножением обычно точнее и быстрее, чем решение через `A \ b`.
Приёмка должна подтвердить, что диагностика включает размерности, ранг, обусловленность, невязку и проверку исходной модели; красивый числовой ответ без этих проверок может быть бессмысленным.
Приёмка должна подтвердить, что чувствительность решения определяется обусловленностью и масштабом задачи; малый невязочный остаток сам по себе не гарантирует малую ошибку решения.
Приёмка должна подтвердить, что для системы `Ax=b` обычно используют `A \ b`, а не `inv(A)*b`: решатель выбирает факторизацию и избегает лишней работы и ошибки округления.
Приёмка должна подтвердить, что факторизация `lu`, `qr`, `cholesky` или `svd` сохраняет структуру решения и позволяет повторно решать задачи без явного обращения матрицы.
Вопрос 6 из 25
Какое объяснение для `D = Diagonal([1.0, 2.0, 4.0])` выдержит проверку на другом допустимом входе?
A=\operatorname{Diagonal}(d)
Julia Julia · Специальные матрицы Копировать
using LinearAlgebra, SparseArrays
D = Diagonal([1.0, 2.0, 4.0])
S = sparse([1, 2, 3], [1, 2, 3], [1.0, 2.0, 4.0])
@show det(D) nnz(S)
Чувствительность решения определяется обусловленностью и масштабом задачи; малый невязочный остаток сам по себе не гарантирует малую ошибку решения.
Для системы `Ax=b` обычно используют `A \ b`, а не `inv(A)*b`: решатель выбирает факторизацию и избегает лишней работы и ошибки округления.
Диагностика включает размерности, ранг, обусловленность, невязку и проверку исходной модели; красивый числовой ответ без этих проверок может быть бессмысленным.
Специальный тип матрицы служит только экономии памяти и не влияет на выбор алгоритма линейной алгебры.
Типы `Diagonal`, `Symmetric`, `Hermitian`, разреженные и другие специальные матрицы сохраняют математическую структуру и позволяют выбирать подходящие алгоритмы.
Вопрос 7 из 25
Что нужно подтвердить отдельным примером для `D = Diagonal([1.0, 2.0, 4.0])`?
Julia Julia · Специальные матрицы Копировать
using LinearAlgebra, SparseArrays
D = Diagonal([1.0, 2.0, 4.0])
S = sparse([1, 2, 3], [1, 2, 3], [1.0, 2.0, 4.0])
@show det(D) nnz(S)
Проверить на отдельном примере, что для системы `Ax=b` обычно используют `A \ b`, а не `inv(A)*b`: решатель выбирает факторизацию и избегает лишней работы и ошибки округления.
Проверить на отдельном примере, что диагностика включает размерности, ранг, обусловленность, невязку и проверку исходной модели; красивый числовой ответ без этих проверок может быть бессмысленным.
Проверить на отдельном примере, что типы `Diagonal`, `Symmetric`, `Hermitian`, разреженные и другие специальные матрицы сохраняют математическую структуру и позволяют выбирать подходящие алгоритмы.
Проверить на отдельном примере, что чувствительность решения определяется обусловленностью и масштабом задачи; малый невязочный остаток сам по себе не гарантирует малую ошибку решения.
Проверить на отдельном примере, что специальный тип матрицы служит только экономии памяти и не влияет на выбор алгоритма линейной алгебры.
Вопрос 8 из 25
Какой контракт следует закрепить при переработке строки `D = Diagonal([1.0, 2.0, 4.0])`?
Julia Julia · Специальные матрицы Копировать
using LinearAlgebra, SparseArrays
D = Diagonal([1.0, 2.0, 4.0])
S = sparse([1, 2, 3], [1, 2, 3], [1.0, 2.0, 4.0])
@show det(D) nnz(S)
Сохранить в реализации правило: Типы `Diagonal`, `Symmetric`, `Hermitian`, разреженные и другие специальные матрицы сохраняют математическую структуру и позволяют выбирать подходящие алгоритмы.
Сохранить в реализации правило: Чувствительность решения определяется обусловленностью и масштабом задачи; малый невязочный остаток сам по себе не гарантирует малую ошибку решения.
Сохранить в реализации правило: Диагностика включает размерности, ранг, обусловленность, невязку и проверку исходной модели; красивый числовой ответ без этих проверок может быть бессмысленным.
Сохранить в реализации правило: Специальный тип матрицы служит только экономии памяти и не влияет на выбор алгоритма линейной алгебры.
Сохранить в реализации правило: Для системы `Ax=b` обычно используют `A \ b`, а не `inv(A)*b`: решатель выбирает факторизацию и избегает лишней работы и ошибки округления.
Вопрос 9 из 25
При переносе кода с `D = Diagonal([1.0, 2.0, 4.0])` в библиотеку какой критерий нельзя заменять впечатлением «пример работает»?
A=\operatorname{Diagonal}(d)
Приёмка должна подтвердить, что для системы `Ax=b` обычно используют `A \ b`, а не `inv(A)*b`: решатель выбирает факторизацию и избегает лишней работы и ошибки округления.
Приёмка должна подтвердить, что типы `Diagonal`, `Symmetric`, `Hermitian`, разреженные и другие специальные матрицы сохраняют математическую структуру и позволяют выбирать подходящие алгоритмы.
Приёмка должна подтвердить, что диагностика включает размерности, ранг, обусловленность, невязку и проверку исходной модели; красивый числовой ответ без этих проверок может быть бессмысленным.
Приёмка должна подтвердить, что чувствительность решения определяется обусловленностью и масштабом задачи; малый невязочный остаток сам по себе не гарантирует малую ошибку решения.
Приёмка должна подтвердить, что специальный тип матрицы служит только экономии памяти и не влияет на выбор алгоритма линейной алгебры.
Вопрос 12 из 25
Какой контрольный тест лучше всего проверит правило, связанное с `@show x norm(A*x - b)`?
Julia Julia · Системы уравнений Копировать
using LinearAlgebra
A = [1.0 1.0; 1.0 1.0 + 1e-10]
b = [2.0, 2.0 + 1e-10]
x = A \ b
@show x norm(A*x - b)
Проверить на отдельном примере, что малый остаток `norm(A*x-b)` доказывает малую ошибку `x` независимо от обусловленности матрицы.
Проверить на отдельном примере, что для системы `Ax=b` обычно используют `A \ b`, а не `inv(A)*b`: решатель выбирает факторизацию и избегает лишней работы и ошибки округления.
Проверить на отдельном примере, что чувствительность решения определяется обусловленностью и масштабом задачи; малый невязочный остаток сам по себе не гарантирует малую ошибку решения.
Проверить на отдельном примере, что факторизация `lu`, `qr`, `cholesky` или `svd` сохраняет структуру решения и позволяет повторно решать задачи без явного обращения матрицы.
Проверить на отдельном примере, что диагностика включает размерности, ранг, обусловленность, невязку и проверку исходной модели; красивый числовой ответ без этих проверок может быть бессмысленным.
Вопрос 14 из 25
При переносе кода с `@show x norm(A*x - b)` в библиотеку какой критерий нельзя заменять впечатлением «пример работает»?
Ax=b
Приёмка должна подтвердить, что для системы `Ax=b` обычно используют `A \ b`, а не `inv(A)*b`: решатель выбирает факторизацию и избегает лишней работы и ошибки округления.
Приёмка должна подтвердить, что малый остаток `norm(A*x-b)` доказывает малую ошибку `x` независимо от обусловленности матрицы.
Приёмка должна подтвердить, что чувствительность решения определяется обусловленностью и масштабом задачи; малый невязочный остаток сам по себе не гарантирует малую ошибку решения.
Приёмка должна подтвердить, что факторизация `lu`, `qr`, `cholesky` или `svd` сохраняет структуру решения и позволяет повторно решать задачи без явного обращения матрицы.
Приёмка должна подтвердить, что диагностика включает размерности, ранг, обусловленность, невязку и проверку исходной модели; красивый числовой ответ без этих проверок может быть бессмысленным.
Вопрос 17 из 25
Какой эксперимент отличит настоящий механизм `@show cond(A) norm(A*x-b) norm(x)` от случайного результата одного запуска?
Julia Julia · Численная устойчивость Копировать
using LinearAlgebra
A = [1.0 1.0; 1.0 1.0 + 1e-12]
b = [2.0, 2.0]
x = A \ b
@show cond(A) norm(A*x-b) norm(x)
Проверить на отдельном примере, что факторизация `lu`, `qr`, `cholesky` или `svd` сохраняет структуру решения и позволяет повторно решать задачи без явного обращения матрицы.
Проверить на отдельном примере, что если размеры согласованы и решатель вернул число, проверка ранга и масштаба задачи не добавляет информации.
Проверить на отдельном примере, что для системы `Ax=b` обычно используют `A \ b`, а не `inv(A)*b`: решатель выбирает факторизацию и избегает лишней работы и ошибки округления.
Проверить на отдельном примере, что диагностика включает размерности, ранг, обусловленность, невязку и проверку исходной модели; красивый числовой ответ без этих проверок может быть бессмысленным.
Проверить на отдельном примере, что чувствительность решения определяется обусловленностью и масштабом задачи; малый невязочный остаток сам по себе не гарантирует малую ошибку решения.
Вопрос 19 из 25
Какой результат приёмочного теста подтвердит корректность участка с `@show cond(A) norm(A*x-b) norm(x)`?
\kappa(A)=\lVert A\rVert\lVert A^{-1}\rVert
Приёмка должна подтвердить, что факторизация `lu`, `qr`, `cholesky` или `svd` сохраняет структуру решения и позволяет повторно решать задачи без явного обращения матрицы.
Приёмка должна подтвердить, что диагностика включает размерности, ранг, обусловленность, невязку и проверку исходной модели; красивый числовой ответ без этих проверок может быть бессмысленным.
Приёмка должна подтвердить, что чувствительность решения определяется обусловленностью и масштабом задачи; малый невязочный остаток сам по себе не гарантирует малую ошибку решения.
Приёмка должна подтвердить, что если размеры согласованы и решатель вернул число, проверка ранга и масштаба задачи не добавляет информации.
Приёмка должна подтвердить, что для системы `Ax=b` обычно используют `A \ b`, а не `inv(A)*b`: решатель выбирает факторизацию и избегает лишней работы и ошибки округления.
Вопрос 21 из 25
Какое утверждение точнее всего объясняет участок с `return (; x, residual=norm(A*x-b), rank=rank(A), condition=cond(A))`?
r=b-A\hat{x}
Julia Julia · Диагностика результата Копировать
using LinearAlgebra
function solve_checked(A, b)
size(A, 1) == length(b) || throw(DimensionMismatch())
x = A \ b
return (; x, residual=norm(A*x-b), rank=rank(A), condition=cond(A))
end
@show solve_checked([2.0 0; 0 1], [2.0, 3.0])
Чувствительность решения определяется обусловленностью и масштабом задачи; малый невязочный остаток сам по себе не гарантирует малую ошибку решения.
Диагностика включает размерности, ранг, обусловленность, невязку и проверку исходной модели; красивый числовой ответ без этих проверок может быть бессмысленным.
Типы `Diagonal`, `Symmetric`, `Hermitian`, разреженные и другие специальные матрицы сохраняют математическую структуру и позволяют выбирать подходящие алгоритмы.
Если решатель вернул конечный вектор и малую невязку, ранг, обусловленность и масштаб исходной модели уже не влияют на надёжность ответа.
Для системы `Ax=b` обычно используют `A \ b`, а не `inv(A)*b`: решатель выбирает факторизацию и избегает лишней работы и ошибки округления.
Вопрос 22 из 25
Какой контрольный тест лучше всего проверит правило, связанное с `return (; x, residual=norm(A*x-b), rank=rank(A), condition=cond(A))`?
Julia Julia · Диагностика результата Копировать
using LinearAlgebra
function solve_checked(A, b)
size(A, 1) == length(b) || throw(DimensionMismatch())
x = A \ b
return (; x, residual=norm(A*x-b), rank=rank(A), condition=cond(A))
end
@show solve_checked([2.0 0; 0 1], [2.0, 3.0])
Проверить на отдельном примере, что чувствительность решения определяется обусловленностью и масштабом задачи; малый невязочный остаток сам по себе не гарантирует малую ошибку решения.
Проверить на отдельном примере, что если решатель вернул конечный вектор и малую невязку, ранг, обусловленность и масштаб исходной модели уже не влияют на надёжность ответа.
Проверить на отдельном примере, что для системы `Ax=b` обычно используют `A \ b`, а не `inv(A)*b`: решатель выбирает факторизацию и избегает лишней работы и ошибки округления.
Проверить на отдельном примере, что диагностика включает размерности, ранг, обусловленность, невязку и проверку исходной модели; красивый числовой ответ без этих проверок может быть бессмысленным.
Проверить на отдельном примере, что типы `Diagonal`, `Symmetric`, `Hermitian`, разреженные и другие специальные матрицы сохраняют математическую структуру и позволяют выбирать подходящие алгоритмы.
Вопрос 23 из 25
Какой контракт следует закрепить при переработке строки `return (; x, residual=norm(A*x-b), rank=rank(A), condition=cond(A))`?
Julia Julia · Диагностика результата Копировать
using LinearAlgebra
function solve_checked(A, b)
size(A, 1) == length(b) || throw(DimensionMismatch())
x = A \ b
return (; x, residual=norm(A*x-b), rank=rank(A), condition=cond(A))
end
@show solve_checked([2.0 0; 0 1], [2.0, 3.0])
Сохранить в реализации правило: Если решатель вернул конечный вектор и малую невязку, ранг, обусловленность и масштаб исходной модели уже не влияют на надёжность ответа.
Сохранить в реализации правило: Типы `Diagonal`, `Symmetric`, `Hermitian`, разреженные и другие специальные матрицы сохраняют математическую структуру и позволяют выбирать подходящие алгоритмы.
Сохранить в реализации правило: Чувствительность решения определяется обусловленностью и масштабом задачи; малый невязочный остаток сам по себе не гарантирует малую ошибку решения.
Сохранить в реализации правило: Диагностика включает размерности, ранг, обусловленность, невязку и проверку исходной модели; красивый числовой ответ без этих проверок может быть бессмысленным.
Сохранить в реализации правило: Для системы `Ax=b` обычно используют `A \ b`, а не `inv(A)*b`: решатель выбирает факторизацию и избегает лишней работы и ошибки округления.
Вопрос 24 из 25
Две реализации участка с `return (; x, residual=norm(A*x-b), rank=rank(A), condition=cond(A))` совпадают на обычных данных. Что необходимо проверить перед выпуском?
r=b-A\hat{x}
Приёмка должна подтвердить, что для системы `Ax=b` обычно используют `A \ b`, а не `inv(A)*b`: решатель выбирает факторизацию и избегает лишней работы и ошибки округления.
Приёмка должна подтвердить, что типы `Diagonal`, `Symmetric`, `Hermitian`, разреженные и другие специальные матрицы сохраняют математическую структуру и позволяют выбирать подходящие алгоритмы.
Приёмка должна подтвердить, что если решатель вернул конечный вектор и малую невязку, ранг, обусловленность и масштаб исходной модели уже не влияют на надёжность ответа.
Приёмка должна подтвердить, что чувствительность решения определяется обусловленностью и масштабом задачи; малый невязочный остаток сам по себе не гарантирует малую ошибку решения.
Приёмка должна подтвердить, что диагностика включает размерности, ранг, обусловленность, невязку и проверку исходной модели; красивый числовой ответ без этих проверок может быть бессмысленным.
Вопрос 25 из 25
Какое ограничение стоит прямо указать в документации к участку с `return (; x, residual=norm(A*x-b), rank=rank(A), condition=cond(A))`?
Указать в документации: Чувствительность решения определяется обусловленностью и масштабом задачи; малый невязочный остаток сам по себе не гарантирует малую ошибку решения.
Указать в документации: Если решатель вернул конечный вектор и малую невязку, ранг, обусловленность и масштаб исходной модели уже не влияют на надёжность ответа.
Указать в документации: Типы `Diagonal`, `Symmetric`, `Hermitian`, разреженные и другие специальные матрицы сохраняют математическую структуру и позволяют выбирать подходящие алгоритмы.
Указать в документации: Диагностика включает размерности, ранг, обусловленность, невязку и проверку исходной модели; красивый числовой ответ без этих проверок может быть бессмысленным.
Указать в документации: Для системы `Ax=b` обычно используют `A \ b`, а не `inv(A)*b`: решатель выбирает факторизацию и избегает лишней работы и ошибки округления.