Форум программистов, компьютерный форум, киберфорум
Наши страницы
Matlab
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
Skillet102
1 / 1 / 0
Регистрация: 17.10.2012
Сообщений: 88
#1

хочу построить график барьерной емкости в чем моя ошибка?

06.05.2013, 13:24. Просмотров 745. Ответов 12
Метки нет (Все метки)

привет всем
хочу построить график барьерной емкости
в чем моя ошибка?
Matlab M
1
2
3
4
5
6
7
8
9
e0=9e-14;
e=12;
l0=8e-8;
f0=0.82;
for U=0:0.1:1;
C=((e0*e/l0)*(sqrt(f0/U)))
end;
plot(C,U);
grid;

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.05.2013, 13:24
Ответы с готовыми решениями:

В чем ошибка? График пилообразного сигнала
Доброго времени суток. Выходит ошибка "Syntax error, missing operator or `;`"....

Построить график экспоненты, декартов график в логарифмической шкале
построить график е в степени х,декартовый график в логорефмичной...

График 2D хочу показать направление построения
Проблема следующая: написал я программу для вычисления траектории частицы в...

Хочу вывести размер программы, а выводит всегда 255. В чем моя ошибка?
.model tiny .code ORG 100H start: mov ax,cx xor cx, cx ...

Как построить график (и в чем ошибка)
Здравствуйте, проделал обычный цикл и по полученным значениям необходимо...

12
R2D2
885 / 796 / 110
Регистрация: 23.11.2012
Сообщений: 2,353
06.05.2013, 15:51 #2
Здравствуйте! Ошибка в том, что Вы не накапливаете точки при построении графика. Так происходит потому, что plot стоит у Вас вне цикла и рисует он только точку рассчитанную на последней итерации цикла for. Да и при таком количестве точек (у Вас их 11) сплошного графика Вы не получите. Нужно или увеличивать количество точек или отображать точки маркерами. Ну и напоследок стоит заметить, что мисье тонкий извращенец, раз любит считать такие вещи в цикле . В общем я тут подправил кое что и свой вариант предложил.
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
%% Подправленый вариант
clear; close all; clc;
e0=9e-14;
e=12;
l0=8e-8;
f0=0.82;
k = 1;
for U=0:0.1:1;
C(k)=((e0*e/l0)*(sqrt(f0/U)));
plot(C(k),U, 'or'); hold on; grid on;
k = k+1;
end
%% Мой вариант
clear; close all; clc;
e0=9e-14; e=12; l0=8e-8; f0=0.82; U = 0:.1:1;
C = (e0*e/l0)*sqrt(f0./U);
plot(C, U, '-or'); grid on;
1
Skillet102
1 / 1 / 0
Регистрация: 17.10.2012
Сообщений: 88
06.05.2013, 18:51  [ТС] #3
спасибо,ошибку понял)
толк знаю

Добавлено через 36 минут
Matlab M
1
2
3
4
5
%Диффузионая емкость
Ie=1e-3;w=6e-8;q=1.6e-19;Nd=4e20;D=1e11; U = 0:.1:1;
Cd=((sqrt((e0*e)/(2*q*Nd)))*((Ie*w)/(D.*sqrt(U))))
figure(2);
plot(Cd,U,'-');grid on;
выдает ошибку
Matrix dimensions must agree.

определено же все
или нужно как-то иначе переопределить?
я отошел от циклов

Добавлено через 8 минут
хух,исправил
во всем виновата лишняя скоба)
0
R2D2
885 / 796 / 110
Регистрация: 23.11.2012
Сообщений: 2,353
06.05.2013, 18:58 #4
Ну тут все дело в волшебных точках .
Вот здесь:
Matlab M
1
D.*sqrt(U)
ее ставить не обязательно, т.к. в - это скаляр и матлаб воспримет запись без точки как умножение вектора sqrt(U) на вектор такой же длины, в котором все элементы равны D.
А вот при делении точку надо бы поставить:
Cd=((sqrt((e0*e)/(2*q*Nd)))*((Ie*w)./(D*sqrt(U))))
1
Skillet102
1 / 1 / 0
Регистрация: 17.10.2012
Сообщений: 88
06.05.2013, 22:03  [ТС] #5
упс
тяга у меня к ошибкам и недоделкам
Matlab M
1
2
3
4
%Распределение концентраций
Nis=5e16;X=2e-6;t=0:20:144;
n1=Nd*exp(-X^2./4*D*t);n2=Nis;
figure(4);semilogy(n1,'g',n2,'b');grid on;
хочу построить график распределения концентраций,но выдает ошибку
Not enough input arguments.

Добавлено через 1 час 8 минут
вот тут тоже строится распределение концентраций,но в моем случает отсутвует бор,а значит что Na у меня нет,как и Xk,Sk & DB
исходные данные здесь другие)
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
% Исходные данные
Nis=1e16;
Na=1e21;
Nd=4e18;
Xe=1.5e-4;
Xk=4e-4;
D=3.5e-13;
Se=50e-6;
Sk=100e-6;
q = 1.6e-19;
 
fprintf('Концентрации, в см^-3\n Np = %d\n Nn = %d\n No = %d\n',Na,Nd,Nis);
fprintf('Глубина залегания p-n переходов, в см\n Xa = %d\n Xd = %d\n',Xe,Xk);
DP = 3e-13;
DB = 1.3e-13;
fprintf('Коэффициенты диффузии фосфора и бора при T=1400 К, в см/с\n D_P = %d\n D_B = %d\n',DP,DB);
 
% Расчет времени диффузии фосфора
r  = 2e27;
td = 0;
  while (r>1e+013)
    td = td+1;
    N2 = Nd*exp(-(Xk^2)/(4*DP*td));
    r = abs(Nis-N2);
  end
fprintf('\nВремя диффузии фосфора, в с');
fprintf('\n td = %6.2f с',td);
td1 = fix(td/3600);
td2 = fix(rem(td,3600)/60);
td3 = fix(rem(rem(td,3600),60));
fprintf('  = %6.2f ч %6.2f мин %6.2f с',td1,td2,td3);
 
% Расчет времени диффузии бора 
r  = 2e27;
ta = 0;
    while (r>4.7e+015)
     ta = ta+1;
     N1 = Na*exp(-(Xe^2)/(4*DB*ta));
     N2 = Nd*exp(-(Xe^2)/(4*DP*td));
     r  = abs(N1-N2);        
   end
fprintf('\nВремя диффузии бора, в с');
fprintf('\n ta = %6.2f с',ta);
ta1 = fix(ta/3600);
ta2 = fix(rem(ta,3600)/60);
ta3 = fix(rem(rem(ta,3600),60));
fprintf('  = %6.2f ч %6.2f мин %6.2f с\n',ta1,ta2,ta3);
 
% Расчет концентраций примесей
i = 1; p1=0; n2=0;
 
   for x = 0:2e-7:6e-4;
     N1 = Na*exp(-(x^2)/(4*DB*ta));
     N2 = Nd*exp(-(x^2)/(4*DP*td));
     N3 = Nis;
 
     if (x <= Xe)
       N = N1-N2+N3;
       p1=p1+N;  % *0.1e-7
       if (x<Xe)
         N_ae=N/(Xe-x)*1e6 ;      
       end
     end
     if (x > Xe & x <= Xk)
         N = N2-N3-N1;
    if (x<=3.8e-4)
           n2=n2+N; %*0.1e-7   
           N_de=N/(x-Xe)*1e6;   
         end
         if (x>3.8e-4 & x<Xk)
           N_dk=N/(Xk-x)*1e6;  
         end
     end
 
      if (x > Xk)
         N = N1-N2+N3;
         N_ak=N/(x-Xk)*1e6;  
      end
 
  xx(i)  = x;
  yy1(i) = N1;
  yy2(i) = N2;
  yy3(i) = N3;
  yy(i)  = N;
  i = i+1;
 end
 
figure(1); title('Концентрации примесей в полупроводнике.'); 
semilogy(xx,yy1,'r',xx,yy2,'g',xx,yy3,'b'); grid;
figure(2); title('Результирующая концентрация примесей\n в полупроводнике.'); 
semilogy(xx,yy,'g'); grid;
Добавлено через 53 минуты
фигня какая-то получается
0
R2D2
885 / 796 / 110
Регистрация: 23.11.2012
Сообщений: 2,353
06.05.2013, 22:57 #6
В последней стоке пишите так:
Matlab M
1
semilogy(n1, n2,'ob')
Вот только по оси Y у Вас ничего не меняется... Впрочем Вам решать, правильно ли это...
0
Skillet102
1 / 1 / 0
Регистрация: 17.10.2012
Сообщений: 88
07.05.2013, 08:09  [ТС] #7
спасибо,буду думать)
0
Зосима
4920 / 3289 / 310
Регистрация: 02.04.2012
Сообщений: 6,202
Записей в блоге: 15
Завершенные тесты: 1
07.05.2013, 11:51 #8
Может ты хотел так:
Matlab M
1
semilogy(t,n1,'g', t,n2,'b')
0
Skillet102
1 / 1 / 0
Регистрация: 17.10.2012
Сообщений: 88
07.05.2013, 12:49  [ТС] #9
я хочу как тут,зависит от х-расстояния
тольок вот не знаю как решить проблемку с отсутствием бора

Добавлено через 10 минут
Matlab M
1
2
3
4
5
%Распределение концентраций
Nis=5e16;t=0:20:144;x = 0:2e-7:6e-4;
n1=Nd*exp(-x^2./4*D*t);n2=Nis;
figure(4);%semilogy(n1,n2,'-ob');
semilogy(n1,'g', n2,'b');grid on;
попробовал так,выдает ошибку
Matrix must be square.
0
Зосима
4920 / 3289 / 310
Регистрация: 02.04.2012
Сообщений: 6,202
Записей в блоге: 15
Завершенные тесты: 1
07.05.2013, 12:55 #10
Цитата Сообщение от Skillet102 Посмотреть сообщение
выдает ошибку
Забыл точку в n1=Nd*exp(-x.^2./(4*D*t) );
И еще у тебя t и x разных размерностей... что ты пытаешься изобрести?
0
Skillet102
1 / 1 / 0
Регистрация: 17.10.2012
Сообщений: 88
07.05.2013, 13:35  [ТС] #11
t это время,как его изменишь?
0
Skillet102
1 / 1 / 0
Регистрация: 17.10.2012
Сообщений: 88
07.05.2013, 14:34  [ТС] #12
хочу построить график барьерной емкости в чем моя ошибка?
по идее у меня должен получиться вот такой график,но только без красной линии и с моими данными
код у этого графика такой
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
format long;
 
% Исходные данные
Nis=1e16;
Na=1e21;
Nd=4e18;
Xe=1.5e-4;
Xk=4e-4;
D=3.5e-13;
Se=50e-6;
Sk=100e-6;
q = 1.6e-19;
 
fprintf('Концентрации, в см^-3\n Np = %d\n Nn = %d\n No = %d\n',Na,Nd,Nis);
fprintf('Глубина залегания p-n переходов, в см\n Xa = %d\n Xd = %d\n',Xe,Xk);
DP = 3e-13;
DB = 1.3e-13;
fprintf('Коэффициенты диффузии фосфора и бора при T=1400 К, в см/с\n D_P = %d\n D_B = %d\n',DP,DB);
 
% Расчет времени диффузии фосфора
r  = 2e27;
td = 0;
  while (r>1e+013)
    td = td+1;
    N2 = Nd*exp(-(Xk^2)/(4*DP*td));
    r = abs(Nis-N2);
  end
fprintf('\nВремя диффузии фосфора, в с');
fprintf('\n td = %6.2f с',td);
td1 = fix(td/3600);
td2 = fix(rem(td,3600)/60);
td3 = fix(rem(rem(td,3600),60));
fprintf('  = %6.2f ч %6.2f мин %6.2f с',td1,td2,td3);
 
% Расчет времени диффузии бора 
r  = 2e27;
ta = 0;
    while (r>4.7e+015)
     ta = ta+1;
     N1 = Na*exp(-(Xe^2)/(4*DB*ta));
     N2 = Nd*exp(-(Xe^2)/(4*DP*td));
     r  = abs(N1-N2);        
   end
fprintf('\nВремя диффузии бора, в с');
fprintf('\n ta = %6.2f с',ta);
ta1 = fix(ta/3600);
ta2 = fix(rem(ta,3600)/60);
ta3 = fix(rem(rem(ta,3600),60));
fprintf('  = %6.2f ч %6.2f мин %6.2f с\n',ta1,ta2,ta3);
 
% Расчет концентраций примесей
i = 1; p1=0; n2=0;
 
   for x = 0:2e-7:6e-4;
     N1 = Na*exp(-(x^2)/(4*DB*ta));
     N2 = Nd*exp(-(x^2)/(4*DP*td));
     N3 = Nis;
 
     if (x <= Xe)
       N = N1-N2+N3;
       p1=p1+N;  % *0.1e-7
       if (x<Xe)
         N_ae=N/(Xe-x)*1e6 ;      
       end
     end
     if (x > Xe & x <= Xk)
         N = N2-N3-N1;
    if (x<=3.8e-4)
           n2=n2+N; %*0.1e-7   
           N_de=N/(x-Xe)*1e6;   
         end
         if (x>3.8e-4 & x<Xk)
           N_dk=N/(Xk-x)*1e6;  
         end
     end
 
      if (x > Xk)
         N = N1-N2+N3;
         N_ak=N/(x-Xk)*1e6;  
      end
 
  xx(i)  = x;
  yy1(i) = N1;
  yy2(i) = N2;
  yy3(i) = N3;
  yy(i)  = N;
  i = i+1;
 end
 
figure(1); title('Концентрации примесей в полупроводнике.'); 
semilogy(xx,yy1,'r',xx,yy2,'g',xx,yy3,'b'); grid;
figure(2); title('Результирующая концентрация примесей\n в полупроводнике.'); 
semilogy(xx,yy,'g'); grid;
0
Skillet102
1 / 1 / 0
Регистрация: 17.10.2012
Сообщений: 88
07.05.2013, 14:36  [ТС] #13
я смог получить вот такой график
хочу построить график барьерной емкости в чем моя ошибка?

с таким кодом
Matlab M
1
2
3
4
5
%Распределение концентраций
Nis=5e16;t=144;x = 0:2e-7:6e-4;
n1=Nd*exp(-x.^2./4*D*t);n2=Nis;
figure(4);%semilogy(n1,n2,'-ob');
semilogy(x,n1,'g', x,n2,'b');grid on;
0
07.05.2013, 14:36
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.05.2013, 14:36

Не получается построить график, в чем ошибка. Функция rkfixed
Помогите. Не получается построить график. Что я делаю не так?

В чем моя ошибка?
Нужно получить листинг. Подскажите, пожалуйста, что не правильно Пишу...

В чем моя ошибка?
Добрый день уважаемые гуру. Я в программировании еще новичок, и тут с одним...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru