Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/210: Рейтинг темы: голосов - 210, средняя оценка - 4.71
11 / 11 / 2
Регистрация: 26.09.2011
Сообщений: 185

Построить график функции двух переменных

25.11.2012, 14:40. Показов 43378. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!

Мне требуется минимизировать функцию:

https://www.cyberforum.ru/cgi-bin/latex.cgi?f(x_1,x_2) = \left(x_1^2 + x_2 - 11 \right)^2 + \left(x_1 + x_2^2 -7 \right)^2

Записал в файл fun1:
Matlab M
1
2
function f=fun1(x)
f=(x(1)^2+x(2)-11)^2+(x(1)+x(2)^2-7)^2;
Потом в матлабе сформировав вектор начального приближения x0
x0 = [-1 1];
и так далее x = fminunc( 'fun1' , x0 )
получил результат, как мне теперь сделать график по этим данным?

Спасибо!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.11.2012, 14:40
Ответы с готовыми решениями:

Построить график функции двух переменных
Здравствуйте. Помогите, пожалуйста. Задание: построить график функции двух переменных; Не могу правильно ввести формулу Z= clc ...

Как построить график функции двух переменных
Как построить график функции ? z={x}^{2}+{y}^{2}

Построить график функции трех переменных
Добрый день! Нужно построить 3D график функции потенциала v(x, y, z). Вроде в коде ошибок нет, но график не выводится, не понимаю...

5
 Аватар для Зосима
5245 / 3573 / 379
Регистрация: 02.04.2012
Сообщений: 6,477
Записей в блоге: 18
25.11.2012, 20:50
Попробуй так:
Matlab M
1
2
3
4
[x ,y] = meshgrid(-1:0.01:1);
z = (x.^2+y-11).^2+(x+y.^2-7).^2;
surf(x,y,z)
shading interp % эта команда сглаживает поверхность
1
11 / 11 / 2
Регистрация: 26.09.2011
Сообщений: 185
26.11.2012, 11:31  [ТС]
Цитата Сообщение от Зосима Посмотреть сообщение
Попробуй так:
Matlab M
1
2
3
4
[x ,y] = meshgrid(-1:0.01:1);
z = (x.^2+y-11).^2+(x+y.^2-7).^2;
surf(x,y,z)
shading interp % эта команда сглаживает поверхность
Большое спасибо, с этим у меня получилось построить, но когда я подставлюя другую функцию, выкидывает ошибку, что Z не должен быть скаляром или вектором
Matlab M
1
2
3
4
[x ,y] = meshgrid(-1:0.01:1);
z = x(1).^4+x(2).^4+2*x(1).^2*x(2).^2-4*x(1)+3;
surf(x,y,z)
shading interp
??? Error using ==> surf at 78
Z must be a matrix, not a scalar or vector.
0
 Аватар для Зосима
5245 / 3573 / 379
Регистрация: 02.04.2012
Сообщений: 6,477
Записей в блоге: 18
26.11.2012, 12:58
Чтобы сделать так, как ты хочешь нужно крепко извернуться
Вся проблема в том, что ф-ция fminsearch просит использование вектора переменных x(1), x(2)...
А при построении поверхности Z и X, Y должны быть матрицами! Но с учетом вышесказанного должно быть:
R(1) = X, R(2) = Y, тогда R - это выходит трехмерный массив! Чтобы из него вытянуть нужную матрицу мы и делаем преобразования (строки 9,10,12)
Чуток подправь функцию fun1.m:
Matlab M
1
2
3
4
5
6
function f = fun1(x)
if length(size(x))==2
    f = (x(1)^2+x(2)-11)^2+(x(1)+x(2)^2-7)^2;
else 
    f = (x(1,:,:).^2+x(2,:,:)-11).^2+(x(1,:,:)+x(2,:,:).^2-7).^2; 
end
Тогда программа построения поверхности:
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
clear
clc
 
% находим минимум
xmin = fminsearch('fun1',[-1 1])
 
% строим поверхность
[x,y] = meshgrid(-5:0.2:5);
R(1,:,:) = x;
R(2,:,:) = y;
z = fun1(R);
Q(:,:) = z(1,:,:);
surf(x,y,Q,'FaceAlpha',0.7)
shading interp

Поидее можно еще сделать расчет через циклы, но это уже другая история
2
11 / 11 / 2
Регистрация: 26.09.2011
Сообщений: 185
26.11.2012, 14:19  [ТС]
Это для другой функции уже я делал.
Не получается у меня что-то.
Подкорректировал файл:
Matlab M
1
2
3
4
5
6
function f=fun2(x)
if length(size(x))==2
f=x(1)^4+x(2)^4+2*x(1)^2*x(2)^2-4*x(1)+3;
else
    f=x(1,:,:).^4+x(2,:,:).^4+2*x(1,:,:).^2*x(2,:,:).^2-4*x(1,:,:)+3;
end
Потом стал строить поверхность и получил ошибку

Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
xmin = fminsearch('fun2',[-1 1])
 [x,y] = meshgrid(-5:0.2:5);
R(1,:,:) = x;
R(2,:,:) = y;
z = fun2(R);
Q(:,:) = z(1,:,:);
surf(x,y,Q,'FaceAlpha',0.7)
shading interp
 
xmin =
 
    1.0000   -0.0000
Code
1
2
3
4
5
??? Error using ==> mtimes
Input arguments must be 2-D.
 
Error in ==> fun2 at 5
    f=x(1,:,:).^4+x(2,:,:).^4+2*x(1,:,:).^2*x(2,:,:).^2-4*x(1,:,:)+3;
0
 Аватар для Зосима
5245 / 3573 / 379
Регистрация: 02.04.2012
Сообщений: 6,477
Записей в блоге: 18
26.11.2012, 15:18
Цитата Сообщение от Mutlu Посмотреть сообщение
Matlab M
1
2
3
4
...
else
   f=x(1,:,:).^4+x(2,:,:).^4+2*x(1,:,:).^2*x(2,:,:).^2-4*x(1,:,:)+3;
end
Цитата Сообщение от Mutlu Посмотреть сообщение
...x(1,:,:).^2*x(2,:,:)...
Точку забыл поставить перед умножением! :)
Должно быть:
Matlab M
1
f = x(1,:,:).^4 + x(2,:,:).^4 + 2*x(1,:,:).^2.*x(2,:,:).^2 -.4*x(1,:,:) + 3;
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.11.2012, 15:18
Помогаю со студенческими работами здесь

График функции двух переменных
помогите с задачами 1) x,y= график 3x2-2sin2(y)y2 >> x=; >> y=; >> z=(3*(x*x))-2*(sin*sin)*y*(y*y); ??? Error using ==>...

график функции двух переменных
x\epsilon y z ...

График функции двух переменных
Помогите построить график функции. Всю ночь просидела, не поняла как его делать, а завтра сдавать. :gsorry: u0=2; a=5740; ...

График функции одной и двух переменных
Добрый вечер! Столкнулась с "матлаб" впервые, несколько графиков построила без проблем, а с этими двумя сижу уже два дня. ...

График из функции 3-х переменных
Здравствуйте! Мне не понятно как строить графики из 3-х переменных в матлабе. Функция следующая: F(x,y,z)=x^2+y^2+z^2+xy+xz+yz+x+y+z. В...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru